parent
e89e11f95e
commit
2a27b2481c
@ -1,23 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 29756 BLAKE2B ae068718e8c28b863d8866640c14dd68604ae0315a562fed9a86577fe21352d073a639e3ce4ef3c5ec8ff08433500abff45f1b3fc1f7e4f4bc0bd5eac4da20e4 SHA512 041ef8a747b6124abb14856d4813c9227549b21d355be2c875f1ab64012d85244b748fe74bc75654ffbeec0221926a9891a8ddf79f1d63817f0bc36b58d48a3f
|
||||
TIMESTAMP 2024-11-20T09:40:15Z
|
||||
MANIFEST Manifest.files.gz 29761 BLAKE2B d4300a64ec67a9c23c7442acd8f1b3c2754b03a853b4c03dbd60b39db171ddf7fcbac0c4842382cbfc88756746b38b9e3c1c1be136c5c289d3c5423816901c61 SHA512 479134d6720ceb18f788e300ee2c4ea751bf27da8bc451a15fd840e1b2820e289b6fc51fb5f5534937c60a5409ea2542dab91d437acc2949528b3e3930ac31b5
|
||||
TIMESTAMP 2024-11-20T13:17:53Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmc9rn9fFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmc94YFfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klAg+g/9GRFmRjb9UTBKiu/EejLVZ/ysaYUPzfQM8RjhZyf+Wu4yFTCz7q2hjJlk
|
||||
jEjaGARZZ61BvlBXXho+vRklcERpcVFL63ovmLRShv6GZ0HU6OFDHYioluAWst7Q
|
||||
w09B2WkoyT22zZbsxbUZtGe4PMZRQezA8wTfebdmYUlW6a8J6VtM8+XRHJwAOjuC
|
||||
3X5KNex/sqNeV6x1t7WtyZZJvo4K71/hUl33hgUmLWRz5wtVkmKBXENs2qsCiXaG
|
||||
ElmdKG98TOF23OgIT8Qjee2hu1MlzMzRanqgdn8tpbU/t5+/X7H0WTBt3r1xWmzU
|
||||
Z1V/Emuyp8F20U7SzfR9RwBgCx1AR6ZxkBjDugEYp/07XBV6Dt3PoSsWw2g+3mv0
|
||||
9nkaDf+H8NneHy1eijwSXrMNR4hX2kLzZBHOxnUExp2liUwAKPybwk9/QUrJb1If
|
||||
a9daV3rHAo1BtY+i7YAOLD87eDZnV4zghCj8JkkasCDxCJ2HWlMvf1HdwRTvMTNy
|
||||
kokul+C4tu19UlPGLFD0tg3rSYlBhA8u1czxIy51x4qNlZRGVbLRtxbF6LkAGjvu
|
||||
/7Vh9Nui44K1g8+O/Hgf60u14KcTdcVdSmkp+fQpRmGKu+cvSLbmnPo3AuTS09KM
|
||||
j2KQapEizrliZMlDS6VWdfSDmKcjcot62gQrDyl8FyXO3EIZomc=
|
||||
=juMn
|
||||
klBHUw//XfrQdORLoh57LmUeLyqzqlTWgCHCF4gn2E/N6oxSe5g8RVklxJjcKWhu
|
||||
DryWznVasLP6iyzUHx3bPGxqUhwnGNMJ5wW5HkDFTOcXvCJdc+kbcx1beyhZVTGO
|
||||
ZeOhylMCNZaxo9Z51MKxtq4w4zGKT604lTqXSp3CYIKHTh2OERlJSZNL/gtmTbXL
|
||||
qgsUAJn6LJ0hTpuotKiTxWTNT/WmSj4o197DccOTGT1LnQrA4f6ZrnxNxAsODdVj
|
||||
KrrXU90HcImypHPFyOoTT0LvgFkB7EqN0Judt9rHadQNNpy5nGY1BOU7lKUG+boq
|
||||
YWSbOjOgWrPb8uVSWJ2DZC35I47nc0XL5S0BK3F3hmcCh4UnNykcfSHa58YyfIDP
|
||||
6Gh90BbqWDI5cctLt7NxMRs3OlIeag5WaPkk7O1y9bMFpxj5MXjH1Li0nsDMQu0u
|
||||
K6NcwBj3LmTgrc+4nYlcIY3pIoUIn0MowJfF+S8zH323TTQVlsUkj1NX4n3IkdL5
|
||||
SRxUMSRHsiZ1XpQEFLVnyvzg07FMdNmJDfQXiDN6T+zjmott5utzYAbqfEBaHk1Y
|
||||
EzYKOjST7DME8ZddGuWbOtcbgUCUcFvlrM2ZgcRHv6W+isFkBjNC1QLkJLla6SBg
|
||||
dyr/05evDWr8FPrpi1VgjC1fXN0fCXWNX1vytysfsv+R0pJNGDw=
|
||||
=RpMF
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,625 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools elisp-common flag-o-matic readme.gentoo-r1 toolchain-funcs
|
||||
|
||||
if [[ ${PV##*.} = 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/emacs.git"
|
||||
EGIT_BRANCH="emacs-29"
|
||||
EGIT_CHECKOUT_DIR="${WORKDIR}/emacs"
|
||||
S="${EGIT_CHECKOUT_DIR}"
|
||||
SLOT="${PV%%.*}-vcs"
|
||||
else
|
||||
# FULL_VERSION keeps the full version number, which is needed in
|
||||
# order to determine some path information correctly for copy/move
|
||||
# operations later on
|
||||
FULL_VERSION="${PV%%_*}"
|
||||
SRC_URI="mirror://gnu/emacs/${P}.tar.xz"
|
||||
S="${WORKDIR}/emacs-${FULL_VERSION}"
|
||||
# PV can be in any of the following formats:
|
||||
# 27.1 released version (slot 27)
|
||||
# 27.1_rc1 upstream release candidate (27)
|
||||
# 27.0.9999 live ebuild (slot 27-vcs)
|
||||
# 27.0.90 upstream prerelease snapshot (27-vcs)
|
||||
# 27.0.50_pre20191223 snapshot by Gentoo developer (27-vcs)
|
||||
if [[ ${PV} == *_pre* ]]; then
|
||||
SRC_URI="https://dev.gentoo.org/~ulm/distfiles/${P}.tar.xz"
|
||||
S="${WORKDIR}/emacs"
|
||||
elif [[ ${PV//[0-9]} != "." ]]; then
|
||||
SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz"
|
||||
fi
|
||||
# Patchset from proj/emacs-patches.git
|
||||
SRC_URI+=" https://dev.gentoo.org/~ulm/emacs/${P}-patches-3.tar.xz"
|
||||
PATCHES=("${WORKDIR}/patch")
|
||||
SLOT="${PV%%.*}"
|
||||
[[ ${PV} == *.*.* ]] && SLOT+="-vcs"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
||||
fi
|
||||
|
||||
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
|
||||
HOMEPAGE="https://www.gnu.org/software/emacs/"
|
||||
|
||||
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
|
||||
IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source sqlite ssl svg systemd +threads tiff toolkit-scroll-bars tree-sitter valgrind webp wide-int +X Xaw3d xft +xpm zlib"
|
||||
|
||||
X_DEPEND="x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXi
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libxcb
|
||||
x11-libs/xcb-util
|
||||
x11-misc/xbitmaps
|
||||
xpm? ( x11-libs/libXpm )
|
||||
xft? (
|
||||
media-libs/fontconfig
|
||||
media-libs/freetype
|
||||
x11-libs/libXrender
|
||||
cairo? ( >=x11-libs/cairo-1.12.18[X] )
|
||||
!cairo? ( x11-libs/libXft )
|
||||
harfbuzz? ( media-libs/harfbuzz:0= )
|
||||
m17n-lib? (
|
||||
>=dev-libs/libotf-0.9.4
|
||||
>=dev-libs/m17n-lib-1.5.1
|
||||
)
|
||||
)
|
||||
gtk? ( x11-libs/gtk+:3 )
|
||||
!gtk? (
|
||||
motif? (
|
||||
>=x11-libs/motif-2.3:0
|
||||
x11-libs/libXpm
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXt
|
||||
)
|
||||
!motif? (
|
||||
Xaw3d? (
|
||||
x11-libs/libXaw3d
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXt
|
||||
)
|
||||
!Xaw3d? ( athena? (
|
||||
x11-libs/libXaw
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXt
|
||||
) )
|
||||
)
|
||||
)"
|
||||
|
||||
RDEPEND="app-emacs/emacs-common[games?,gui(-)?]
|
||||
sys-libs/ncurses:0=
|
||||
acl? ( virtual/acl )
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
dbus? ( sys-apps/dbus )
|
||||
games? ( acct-group/gamestat )
|
||||
gmp? ( dev-libs/gmp:0= )
|
||||
gpm? ( sys-libs/gpm )
|
||||
!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
|
||||
jit? (
|
||||
sys-devel/gcc:=[jit(-)]
|
||||
sys-libs/zlib
|
||||
)
|
||||
json? ( dev-libs/jansson:= )
|
||||
kerberos? ( virtual/krb5 )
|
||||
lcms? ( media-libs/lcms:2 )
|
||||
libxml2? ( >=dev-libs/libxml2-2.2.0 )
|
||||
mailutils? ( net-mail/mailutils[clients] )
|
||||
!mailutils? ( acct-group/mail net-libs/liblockfile )
|
||||
selinux? ( sys-libs/libselinux )
|
||||
sqlite? ( dev-db/sqlite:3 )
|
||||
ssl? ( net-libs/gnutls:0= )
|
||||
systemd? ( sys-apps/systemd )
|
||||
tree-sitter? ( dev-libs/tree-sitter:= )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
zlib? ( sys-libs/zlib )
|
||||
gui? (
|
||||
gif? ( media-libs/giflib:0= )
|
||||
jpeg? ( media-libs/libjpeg-turbo:0= )
|
||||
png? ( >=media-libs/libpng-1.4:0= )
|
||||
svg? ( >=gnome-base/librsvg-2.0 )
|
||||
tiff? ( media-libs/tiff:= )
|
||||
webp? ( media-libs/libwebp:0= )
|
||||
imagemagick? ( media-gfx/imagemagick:0=[jpeg?,png?,svg?,tiff?] )
|
||||
!aqua? (
|
||||
gsettings? (
|
||||
app-emacs/emacs-common[gsettings(-)]
|
||||
>=dev-libs/glib-2.28.6
|
||||
)
|
||||
gtk? ( !X? (
|
||||
media-libs/fontconfig
|
||||
media-libs/freetype
|
||||
>=x11-libs/cairo-1.12.18
|
||||
x11-libs/gtk+:3
|
||||
harfbuzz? ( media-libs/harfbuzz:0= )
|
||||
m17n-lib? (
|
||||
>=dev-libs/libotf-0.9.4
|
||||
>=dev-libs/m17n-lib-1.5.1
|
||||
)
|
||||
) )
|
||||
!gtk? ( ${X_DEPEND} )
|
||||
X? ( ${X_DEPEND} )
|
||||
)
|
||||
)"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
gui? ( !aqua? (
|
||||
!gtk? ( x11-base/xorg-proto )
|
||||
X? ( x11-base/xorg-proto )
|
||||
) )"
|
||||
|
||||
BDEPEND="sys-apps/texinfo
|
||||
virtual/pkgconfig
|
||||
gzip-el? ( app-arch/gzip )"
|
||||
|
||||
IDEPEND="app-eselect/eselect-emacs"
|
||||
|
||||
RDEPEND+=" ${IDEPEND}"
|
||||
|
||||
EMACS_SUFFIX="emacs-${SLOT}"
|
||||
SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
|
||||
|
||||
# Suppress false positive QA warnings #898304 #925091
|
||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||
malloc_set_state malloc_get_state MIN static_assert alignof
|
||||
statvfs64 re_set_syntax re_compile_pattern re_search re_match
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if [[ ${PV##*.} = 9999 ]]; then
|
||||
FULL_VERSION=$(sed -n 's/^AC_INIT([^,]*,[^0-9.]*\([0-9.]*\).*/\1/p' \
|
||||
configure.ac)
|
||||
[[ ${FULL_VERSION} ]] || die "Cannot determine current Emacs version"
|
||||
einfo "Emacs branch: ${EGIT_BRANCH}"
|
||||
einfo "Commit: ${EGIT_VERSION}"
|
||||
einfo "Emacs version number: ${FULL_VERSION}"
|
||||
[[ ${FULL_VERSION} =~ ^${PV%.*}(\..*)?$ ]] \
|
||||
|| die "Upstream version number changed to ${FULL_VERSION}"
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
if use jit; then
|
||||
find lisp -type f -name "*.elc" -delete || die
|
||||
|
||||
# These files ignore LDFLAGS. We assign the variable here, because
|
||||
# for live ebuilds FULL_VERSION doesn't exist in global scope
|
||||
QA_FLAGS_IGNORED="usr/$(get_libdir)/emacs/${FULL_VERSION}/native-lisp/.*"
|
||||
|
||||
# gccjit doesn't play well with ccache or distcc #801580
|
||||
# For now, work around the problem with an explicit LIBRARY_PATH
|
||||
has ccache ${FEATURES} || has distcc ${FEATURES} && tc-is-gcc \
|
||||
&& export LIBRARY_PATH=$("$(tc-getCC)" -print-search-dirs \
|
||||
| sed -n '/^libraries:/{s:^[^/]*::;p}')
|
||||
fi
|
||||
|
||||
# Fix filename reference in redirected man page
|
||||
sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 || die
|
||||
|
||||
# libseccomp is detected by configure but doesn't appear to have any
|
||||
# effect on the installed image. Suppress it by supplying pkg-config
|
||||
# with a wrong library name.
|
||||
sed -i -e "/CHECK_MODULES/s/libseccomp/DiSaBlE&/" configure.ac || die
|
||||
|
||||
# Tests that use bubblewrap don't work in the sandbox:
|
||||
# "bwrap: setting up uid map: Permission denied"
|
||||
# So, disrupt the search for the bwrap executable.
|
||||
sed -i -e 's/(executable-find "bwrap")/nil/' test/src/emacs-tests.el \
|
||||
test/lisp/emacs-lisp/bytecomp-tests.el || die
|
||||
|
||||
AT_M4DIR=m4 eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
replace-flags "-O[3-9]" -O2 #839405
|
||||
|
||||
# We want floating-point arithmetic to be correct #933380
|
||||
replace-flags -Ofast -O2
|
||||
append-flags -fno-fast-math -ffp-contract=off
|
||||
|
||||
local myconf
|
||||
|
||||
# Prevents e.g. tests interfering with running Emacs.
|
||||
unset EMACS_SOCKET_NAME
|
||||
|
||||
if use alsa; then
|
||||
use sound || ewarn \
|
||||
"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
|
||||
myconf+=" --with-sound=alsa"
|
||||
else
|
||||
myconf+=" --with-sound=$(usex sound oss)"
|
||||
fi
|
||||
|
||||
if use jit; then
|
||||
use zlib || ewarn \
|
||||
"USE flag \"jit\" overrides \"-zlib\"; enabling zlib support."
|
||||
myconf+=" --with-zlib"
|
||||
else
|
||||
myconf+=" $(use_with zlib)"
|
||||
fi
|
||||
|
||||
# Emacs supports these window systems:
|
||||
# X11, pure GTK (without X11), or Nextstep (Aqua/Cocoa).
|
||||
# General GUI support is enabled by the "gui" USE flag, then
|
||||
# the window system is selected as follows:
|
||||
# "aqua" -> Nextstep
|
||||
# "gtk -X" -> pure GTK
|
||||
# otherwise -> X11
|
||||
# For X11 there is the further choice of toolkits GTK, Motif,
|
||||
# Athena (Lucid), or no toolkit. They are enabled (in order of
|
||||
# preference) with the "gtk", "motif", "Xaw3d", and "athena" flags.
|
||||
|
||||
if ! use gui; then
|
||||
einfo "Configuring to build without window system support"
|
||||
myconf+=" --without-x --without-pgtk --without-ns"
|
||||
elif use aqua; then
|
||||
einfo "Configuring to build with Nextstep (Macintosh Cocoa) support"
|
||||
myconf+=" --with-ns --disable-ns-self-contained"
|
||||
myconf+=" --without-x --without-pgtk"
|
||||
elif use gtk && ! use X; then
|
||||
einfo "Configuring to build with pure GTK (without X11) support"
|
||||
myconf+=" --with-pgtk --without-x --without-ns"
|
||||
myconf+=" --with-toolkit-scroll-bars" #836392
|
||||
myconf+=" --without-gconf"
|
||||
myconf+=" --without-xwidgets"
|
||||
myconf+=" $(use_with gsettings)"
|
||||
myconf+=" $(use_with harfbuzz)"
|
||||
myconf+=" $(use_with m17n-lib libotf)"
|
||||
myconf+=" $(use_with m17n-lib m17n-flt)"
|
||||
else
|
||||
# X11
|
||||
myconf+=" --with-x --without-pgtk --without-ns"
|
||||
myconf+=" --without-gconf"
|
||||
myconf+=" $(use_with gsettings)"
|
||||
myconf+=" $(use_with toolkit-scroll-bars)"
|
||||
myconf+=" $(use_with xpm)"
|
||||
|
||||
if use xft; then
|
||||
myconf+=" --with-xft"
|
||||
myconf+=" $(use_with cairo)"
|
||||
myconf+=" $(use_with harfbuzz)"
|
||||
myconf+=" $(use_with m17n-lib libotf)"
|
||||
myconf+=" $(use_with m17n-lib m17n-flt)"
|
||||
else
|
||||
myconf+=" --without-xft"
|
||||
myconf+=" --without-cairo"
|
||||
myconf+=" --without-libotf --without-m17n-flt"
|
||||
use cairo && ewarn \
|
||||
"USE flag \"cairo\" has no effect if \"xft\" is not set."
|
||||
use m17n-lib && ewarn \
|
||||
"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
|
||||
fi
|
||||
|
||||
local f line
|
||||
if use gtk; then
|
||||
einfo "Configuring to build with GIMP Toolkit (GTK+)"
|
||||
while read line; do ewarn "${line}"; done <<-EOF
|
||||
Your version of GTK+ will have problems with closing open
|
||||
displays. This is no problem if you just use one display, but
|
||||
if you use more than one and close one of them Emacs may crash.
|
||||
See <https://gitlab.gnome.org/GNOME/gtk/-/issues/221> and
|
||||
<https://gitlab.gnome.org/GNOME/gtk/-/issues/2315>.
|
||||
If you intend to use more than one display, then it is strongly
|
||||
recommended that you compile Emacs with the Athena/Lucid or the
|
||||
Motif toolkit instead.
|
||||
EOF
|
||||
myconf+=" --with-x-toolkit=gtk3 --without-xwidgets"
|
||||
for f in motif Xaw3d athena; do
|
||||
use ${f} && ewarn \
|
||||
"USE flag \"${f}\" has no effect if \"gtk\" is set."
|
||||
done
|
||||
elif use motif; then
|
||||
einfo "Configuring to build with Motif toolkit"
|
||||
myconf+=" --with-x-toolkit=motif"
|
||||
for f in Xaw3d athena; do
|
||||
use ${f} && ewarn \
|
||||
"USE flag \"${f}\" has no effect if \"motif\" is set."
|
||||
done
|
||||
elif use athena || use Xaw3d; then
|
||||
einfo "Configuring to build with Athena/Lucid toolkit"
|
||||
myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
|
||||
else
|
||||
einfo "Configuring to build with no toolkit"
|
||||
myconf+=" --with-x-toolkit=no"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use gui; then
|
||||
# Common flags recognised for all GUIs
|
||||
myconf+=" $(use_with gif)"
|
||||
myconf+=" $(use_with jpeg)"
|
||||
myconf+=" $(use_with png)"
|
||||
myconf+=" $(use_with svg rsvg)"
|
||||
myconf+=" $(use_with tiff)"
|
||||
myconf+=" $(use_with webp)"
|
||||
myconf+=" $(use_with imagemagick)"
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Configure a CBUILD directory when cross-compiling to make tools
|
||||
mkdir -p "${S}-build" && pushd "${S}-build" >/dev/null || die
|
||||
ECONF_SOURCE="${S}" econf_build --without-all --without-x-toolkit
|
||||
popd >/dev/null || die
|
||||
# Don't try to execute the binary for dumping during the build
|
||||
myconf+=" --with-dumping=none"
|
||||
elif use m68k; then
|
||||
# Workaround for https://debbugs.gnu.org/44531
|
||||
myconf+=" --with-dumping=unexec"
|
||||
else
|
||||
myconf+=" --with-dumping=pdumper"
|
||||
fi
|
||||
|
||||
econf \
|
||||
--program-suffix="-${EMACS_SUFFIX}" \
|
||||
--includedir="${EPREFIX}"/usr/include/${EMACS_SUFFIX} \
|
||||
--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
|
||||
--localstatedir="${EPREFIX}"/var \
|
||||
--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
|
||||
--without-compress-install \
|
||||
--without-hesiod \
|
||||
--without-pop \
|
||||
--with-file-notification=$(usev inotify || usev gfile || echo no) \
|
||||
--with-pdumper \
|
||||
$(use_enable acl) \
|
||||
$(use_with dbus) \
|
||||
$(use_with dynamic-loading modules) \
|
||||
$(use_with games gameuser ":gamestat") \
|
||||
$(use_with gmp libgmp) \
|
||||
$(use_with gpm) \
|
||||
$(use_with jit native-compilation aot) \
|
||||
$(use_with json) \
|
||||
$(use_with kerberos) $(use_with kerberos kerberos5) \
|
||||
$(use_with lcms lcms2) \
|
||||
$(use_with libxml2 xml2) \
|
||||
$(use_with mailutils) \
|
||||
$(use_with selinux) \
|
||||
$(use_with sqlite sqlite3) \
|
||||
$(use_with ssl gnutls) \
|
||||
$(use_with systemd libsystemd) \
|
||||
$(use_with threads) \
|
||||
$(use_with tree-sitter) \
|
||||
$(use_with wide-int) \
|
||||
${myconf}
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export ac_cv_header_valgrind_valgrind_h=$(usex valgrind)
|
||||
append-cppflags -DUSE_VALGRIND=$(usex valgrind)
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Build native tools for compiling lisp etc.
|
||||
emake -C "${S}-build" src
|
||||
emake lib # Cross-compile dependencies first for timestamps
|
||||
# Save native build tools in the cross-directory
|
||||
cp "${S}-build"/lib-src/make-{docfile,fingerprint} lib-src || die
|
||||
# Specify the native Emacs to compile lisp
|
||||
EMACS_EMAKE_ARGS=( EMACS="${S}-build/src/emacs" )
|
||||
emake "${EMACS_EMAKE_ARGS[@]}" actual-all
|
||||
else
|
||||
EMACS_EMAKE_ARGS=()
|
||||
emake
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# List .el test files with a comment above listing the exact
|
||||
# subtests which caused failure. Elements should begin with a %.
|
||||
# e.g. %lisp/gnus/mml-sec-tests.el.
|
||||
local exclude_tests=(
|
||||
# Reason: permission denied on /nonexistent
|
||||
# (vc-*-bzr only fails if breezy is installed, as they
|
||||
# try to access cache dirs under /nonexistent)
|
||||
#
|
||||
# rmail-undigest-test-multipart-mixed-digest
|
||||
# rmail-undigest-test-rfc1153-less-strict-digest
|
||||
# rmail-undigest-test-rfc1153-sloppy-digest
|
||||
# rmail-undigest-test-rfc934-digest
|
||||
# vc-test-bzr02-state
|
||||
# vc-test-bzr05-rename-file
|
||||
# vc-test-bzr06-version-diff
|
||||
# vc-bzr-test-bug9781
|
||||
%lisp/mail/undigest-tests.el
|
||||
%lisp/vc/vc-tests.el
|
||||
%lisp/vc/vc-bzr-tests.el
|
||||
|
||||
# Reason: tries to access network
|
||||
# internet-is-working
|
||||
%src/process-tests.el
|
||||
|
||||
# Reason: fails with stable version of tree-sitter-json due to
|
||||
# ast changes. Bug #922525
|
||||
%src/treesit-tests.log
|
||||
|
||||
# Reason: test is not skipped if tree-sitter-tsx is not installed
|
||||
# Bug #922525
|
||||
%lisp/progmodes/typescript-ts-mode-tests.el
|
||||
)
|
||||
use threads || exclude_tests+=(
|
||||
%lisp/server-tests.el
|
||||
%lisp/progmodes/eglot-tests.el
|
||||
%src/emacs-module-tests.el
|
||||
%src/keyboard-tests.el
|
||||
)
|
||||
use xpm || exclude_tests+=( %src/image-tests.el )
|
||||
|
||||
# Some tests hang with gnupg-2.2.42
|
||||
local gpgver=$(best_version app-crypt/gnupg)
|
||||
gpgver=${gpgver#*gnupg-}
|
||||
[[ -n ${gpgver} ]] \
|
||||
&& ver_test "${gpgver}" -ge 2.2.42 && ver_test "${gpgver}" -lt 2.3 \
|
||||
&& exclude_tests+=(
|
||||
%lisp/epg-tests.el
|
||||
%lisp/gnus/mml-sec-tests.el
|
||||
)
|
||||
|
||||
# Redirect GnuPG's sockets, in order not to exceed the 108 char limit
|
||||
# for socket paths on Linux.
|
||||
mkdir -p "${T}"/gpg || die
|
||||
local f
|
||||
for f in browser extra ssh; do
|
||||
printf "%%Assuan%%\nsocket=%s\n" "${T}/gpg/S.${f}" \
|
||||
> "test/lisp/gnus/mml-sec-resources/S.gpg-agent.${f}" || die
|
||||
done
|
||||
|
||||
# See test/README for possible options
|
||||
emake \
|
||||
EMACS_TEST_VERBOSE=1 \
|
||||
EXCLUDE_TESTS="${exclude_tests[*]}" \
|
||||
TERM=dumb \
|
||||
TEST_BACKTRACE_LINE_LENGTH=nil \
|
||||
check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake \
|
||||
"${EMACS_EMAKE_ARGS[@]}" \
|
||||
DESTDIR="${D}" \
|
||||
NO_BIN_LINK=t \
|
||||
BLESSMAIL_TARGET="" \
|
||||
install
|
||||
|
||||
mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} || die
|
||||
mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 || die
|
||||
mv "${ED}"/usr/share/metainfo/{emacs-,}${EMACS_SUFFIX}.metainfo.xml || die
|
||||
|
||||
# dissuade Portage from removing our dir file #257260
|
||||
touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
|
||||
docompress -x /usr/share/info/${EMACS_SUFFIX}/dir
|
||||
|
||||
# movemail must be setgid mail
|
||||
if ! use mailutils; then
|
||||
fowners root:mail /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
|
||||
fperms 2751 /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
|
||||
fi
|
||||
|
||||
# avoid collision between slots, see bug #169033 e.g.
|
||||
rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el || die
|
||||
rm -rf "${ED}"/usr/share/{applications,icons} || die
|
||||
rm -rf "${ED}"/usr/share/glib-2.0 || die #911117
|
||||
rm -rf "${ED}/usr/$(get_libdir)/systemd" || die
|
||||
rm -rf "${ED}"/var || die
|
||||
|
||||
# remove unused <version>/site-lisp dir
|
||||
rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp || die
|
||||
|
||||
# remove COPYING file (except for etc/COPYING used by describe-copying)
|
||||
rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING || die
|
||||
|
||||
if use systemd; then
|
||||
insinto /usr/lib/systemd/user
|
||||
sed -e "/^##/d" \
|
||||
-e "/^ExecStart/s,emacs,${EPREFIX}/usr/bin/${EMACS_SUFFIX}," \
|
||||
-e "/^ExecStop/s,emacsclient,${EPREFIX}/usr/bin/&-${EMACS_SUFFIX}," \
|
||||
etc/emacs.service | newins - ${EMACS_SUFFIX}.service
|
||||
assert
|
||||
fi
|
||||
|
||||
if use gzip-el; then
|
||||
# compress .el files when a corresponding .elc exists
|
||||
find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
|
||||
-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
|
||||
assert "gzip .el failed"
|
||||
fi
|
||||
|
||||
local cdir
|
||||
if use source; then
|
||||
cdir="/usr/share/emacs/${FULL_VERSION}/src"
|
||||
insinto "${cdir}"
|
||||
# This is not meant to install all the source -- just the
|
||||
# C source you might find via find-function
|
||||
doins src/*.{c,h,m}
|
||||
elif has installsources ${FEATURES}; then
|
||||
cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
|
||||
fi
|
||||
|
||||
sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF || die
|
||||
X
|
||||
;;; ${EMACS_SUFFIX} site-lisp configuration
|
||||
X
|
||||
(when (string-equal emacs-version "${FULL_VERSION}")
|
||||
Y (setq find-function-C-source-directory
|
||||
Y "${EPREFIX}${cdir}")
|
||||
X (let ((path (getenv "INFOPATH"))
|
||||
X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
|
||||
X (re "\\\\\`${EPREFIX}/usr/share\\\\>"))
|
||||
X (and path
|
||||
X ;; move Emacs Info dir before anything else in /usr/share
|
||||
X (let* ((p (cons nil (split-string path ":" t))) (q p))
|
||||
X (while (and (cdr q) (not (string-match re (cadr q))))
|
||||
X (setq q (cdr q)))
|
||||
X (setcdr q (cons dir (delete dir (cdr q))))
|
||||
X (setenv "INFOPATH" (mapconcat 'identity (cdr p) ":"))))))
|
||||
EOF
|
||||
elisp-site-file-install "${T}/${SITEFILE}" || die
|
||||
|
||||
dodoc README BUGS CONTRIBUTE
|
||||
|
||||
if use gui && use aqua; then
|
||||
dodir /Applications/Gentoo
|
||||
rm -rf "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
|
||||
mv nextstep/Emacs.app \
|
||||
"${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
|
||||
fi
|
||||
|
||||
local DOC_CONTENTS="You can set the version to be started by
|
||||
/usr/bin/emacs through the Emacs eselect module, which also
|
||||
redirects man and info pages. Therefore, several Emacs versions can
|
||||
be installed at the same time. \"man emacs.eselect\" for details.
|
||||
\\n\\nIf you upgrade from a previous major version of Emacs, then
|
||||
it is strongly recommended that you use app-admin/emacs-updater
|
||||
to rebuild all byte-compiled elisp files of the installed Emacs
|
||||
packages."
|
||||
if use gui; then
|
||||
DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
|
||||
Installing media-fonts/font-adobe-{75,100}dpi on the X server's
|
||||
machine would satisfy basic Emacs requirements under X11.
|
||||
See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
|
||||
for how to enable anti-aliased fonts."
|
||||
use aqua && DOC_CONTENTS+="\\n\\n${EMACS_SUFFIX^}.app is in
|
||||
\"${EPREFIX}/Applications/Gentoo\". You may want to copy or
|
||||
symlink it into /Applications by yourself."
|
||||
fi
|
||||
if ! use mailutils; then
|
||||
DOC_CONTENTS+="\\n\\nThe mailutils USE flag is disabled. If Emacs'
|
||||
own e-mail features are going to be used as an e-mail client
|
||||
(e.g. Rmail), you are strongly encouraged to enable it. If not,
|
||||
Emacs will use its own implementation of movemail; which has
|
||||
fewer features and is less secure. For more information see:
|
||||
https://www.gnu.org/software/emacs/manual/html_node/emacs/Movemail.html"
|
||||
fi
|
||||
tc-is-cross-compiler && DOC_CONTENTS+="\\n\\nEmacs did not write
|
||||
a portable dump file due to being cross-compiled.
|
||||
To create this file at run time, execute the following command:
|
||||
\\n${EMACS_SUFFIX} --batch -Q --eval='(dump-emacs-portable
|
||||
\"/usr/libexec/emacs/${FULL_VERSION}/${CHOST}/emacs.pdmp\")'"
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# verify that the PM hasn't removed our Info directory index #257260
|
||||
local infodir="${ED}/usr/share/info/${EMACS_SUFFIX}"
|
||||
[[ -f ${infodir}/dir || ! -d ${infodir} ]] || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elisp-site-regen
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if use livecd; then
|
||||
# force an update of the emacs symlink for the livecd/dvd,
|
||||
# because some microemacs packages set it with USE=livecd
|
||||
eselect emacs update
|
||||
else
|
||||
eselect emacs update ifunset
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
elisp-site-regen
|
||||
eselect emacs update ifunset
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,5 +1,3 @@
|
||||
DIST command-not-found-0.0.6.tar.gz 10290 BLAKE2B 352a77790539acca9d54902e8078b580a5f4a789d61c395944363b4a42f8750cd518e3d8a22f69c409c8ab090cf6345677c324f3faa1e67071439cd6f600c7a3 SHA512 9396b7cb1cbcbc53047928ede0f77613e7f5ad3d5855f6476c40642c52a419aa6227e9b329d8d73d267fbd946e36f21740420ea854555025ddd2ea7eb1dbcec2
|
||||
DIST command-not-found-0.0.7.tar.gz 10310 BLAKE2B 02ff8cd66f7aa39bc4990eb57cbf84a83fb37af72cf8c231e89e77b9859f1668edb8ac6be2d606643b7b54dda00b2df47de8c64afa933f208cd8bf6cc0245a1c SHA512 95cc7a2237928fac0015f21529697d6f878c9c756800d30c435b1cd2116cb522020eb63896fcd1f32091944969f07c4811d8a2d7fa1f1c36d54728bd582c44a1
|
||||
EBUILD command-not-found-0.0.6.ebuild 1118 BLAKE2B 6afe42b5ea89f27bf79e4532cbcaa394c85e3012b45e5a4884d862ab00df8506590f06c98671efce4df4778d968b6c07668980404b9a4c3593611bd450339903 SHA512 b371b3a4ac799baf5d5244a90613d27e0d845f40e0151ec1a8a892f947ba9e39573bdefee29ec3ad000127c41f03b404fabdfd447da35a45f388e4d0297663f4
|
||||
EBUILD command-not-found-0.0.7.ebuild 1126 BLAKE2B 406a7ea5cea082f2027634c1cbacf1c7bbc09c36aab7b0a1eb34ea37c356b7915899105f819ee87ab24cabd1fefe7811ced0de9aadc359c76d46a01f2459c42b SHA512 1a3b76e63c9d71c6392b016d4793e91ad1a3a914b97a95c95b37168af6c07335a7d36547b83bc006f31f35190601412439ea40d510768453fe513db4c53fb1cc
|
||||
EBUILD command-not-found-0.0.7.ebuild 1118 BLAKE2B 6afe42b5ea89f27bf79e4532cbcaa394c85e3012b45e5a4884d862ab00df8506590f06c98671efce4df4778d968b6c07668980404b9a4c3593611bd450339903 SHA512 b371b3a4ac799baf5d5244a90613d27e0d845f40e0151ec1a8a892f947ba9e39573bdefee29ec3ad000127c41f03b404fabdfd447da35a45f388e4d0297663f4
|
||||
MISC metadata.xml 374 BLAKE2B 8fe04ba1b335959998694361bf8a46704ef4fbc9948d42d012ff0a7e9249b7486152f55283eae6b327fd9a4e7f31a779f24d9046eaaa528219c7f478c8f5d3de SHA512 ef245a2961df1954fed1ef6753a33d525585ce3ed95875c92ab2b7e3b1f7a3fad6fb00b6fceb9ab5950ac8185ab321d8504173ade91bfacf8ba277ac3a605821
|
||||
|
@ -1,40 +0,0 @@
|
||||
# Copyright 2019-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit optfeature python-r1
|
||||
|
||||
DESCRIPTION="Command-not-found handler for Gentoo"
|
||||
HOMEPAGE="https://github.com/Nowa-Ammerlaan/command-not-found-gentoo"
|
||||
SRC_URI="https://github.com/Nowa-Ammerlaan/command-not-found-gentoo/archive/${PV}.tar.gz
|
||||
-> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${PN}-gentoo-${PV}"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv sparc x86"
|
||||
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
RDEPEND="${PYTHON_DEPS}"
|
||||
|
||||
src_install() {
|
||||
python_foreach_impl python_doscript command-not-found
|
||||
|
||||
insinto /etc/bash/bashrc.d
|
||||
doins command-not-found.sh
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "${PN} is automatically setup for app-shells/bash, see"
|
||||
elog " /usr/share/doc/${PF}/README.md"
|
||||
elog "for instructions on how to set it up for various other shells."
|
||||
elog
|
||||
optfeature "suggesting snaps providing the missing command" "app-containers/snapd"
|
||||
optfeature "suggesting ebuilds providing the missing command" "app-portage/pfl"
|
||||
}
|
Binary file not shown.
@ -0,0 +1,662 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
LLVM_COMPAT=( 18 )
|
||||
LLVM_OPTIONAL=1
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic linux-info llvm-r1
|
||||
inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs
|
||||
inherit verify-sig
|
||||
|
||||
MY_PV=${PV/_alpha/a}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER="$(ver_cut 1-2)t"
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="Freethreading (no-GIL) version of Python 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.sigstore
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm jit
|
||||
libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-libs/mpdecimal:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
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? (
|
||||
dev-python/ensurepip-pip
|
||||
dev-python/ensurepip-setuptools
|
||||
dev-python/ensurepip-wheel
|
||||
)
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
jit? (
|
||||
$(llvm_gen_dep '
|
||||
sys-devel/clang:${LLVM_SLOT}
|
||||
sys-devel/llvm:${LLVM_SLOT}
|
||||
')
|
||||
)
|
||||
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
|
||||
|
||||
# https://www.python.org/downloads/metadata/sigstore/
|
||||
VERIFY_SIG_METHOD=sigstore
|
||||
VERIFY_SIG_CERT_IDENTITY=hugo@python.org
|
||||
VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER%t}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
declare -rgA PYTHON_KERNEL_CHECKS=(
|
||||
["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589
|
||||
["DNOTIFY"]="test_fcntl" # bug 938662
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if use pgo || use test; then
|
||||
check-reqs_pkg_pretend
|
||||
fi
|
||||
|
||||
ewarn "Freethreading build is considered experimental upstream. Using it"
|
||||
ewarn "could lead to unexpected breakage, including race conditions"
|
||||
ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless"
|
||||
ewarn "you can reproduce the problem with dev-lang/python. Instead,"
|
||||
ewarn "please consider reporting freethreading problems upstream."
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if [[ ${MERGE_TYPE} != binary ]]; then
|
||||
use jit && llvm-r1_pkg_setup
|
||||
if use test || use pgo; then
|
||||
check-reqs_pkg_setup
|
||||
|
||||
local CONFIG_CHECK
|
||||
for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do
|
||||
CONFIG_CHECK+="~${f} "
|
||||
done
|
||||
linux-info_pkg_setup
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
|
||||
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
|
||||
|
||||
# breaks tests when using --with-wheel-pkg-dir
|
||||
rm -r Lib/test/wheeldata || 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
|
||||
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() {
|
||||
# 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
|
||||
|
||||
# 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
|
||||
|
||||
# Set baseline test skip flags.
|
||||
COMMON_TEST_SKIPS=(
|
||||
# this is actually test_gdb.test_pretty_print
|
||||
-x test_pretty_print
|
||||
# https://bugs.gentoo.org/933840
|
||||
-x test_perf_profiler
|
||||
)
|
||||
|
||||
# Arch-specific skips. See #931888 for a collection of these.
|
||||
case ${CHOST} in
|
||||
alpha*)
|
||||
COMMON_TEST_SKIPS+=(
|
||||
-x test_builtin
|
||||
-x test_capi
|
||||
-x test_cmath
|
||||
-x test_float
|
||||
# timeout
|
||||
-x test_free_threading
|
||||
-x test_math
|
||||
-x test_numeric_tower
|
||||
-x test_random
|
||||
-x test_statistics
|
||||
# bug 653850
|
||||
-x test_resource
|
||||
-x test_strtod
|
||||
)
|
||||
;;
|
||||
mips*)
|
||||
COMMON_TEST_SKIPS+=(
|
||||
-x test_ctypes
|
||||
-x test_external_inspection
|
||||
-x test_statistics
|
||||
)
|
||||
;;
|
||||
powerpc64-*) # big endian
|
||||
COMMON_TEST_SKIPS+=(
|
||||
-x test_gdb
|
||||
)
|
||||
;;
|
||||
riscv*)
|
||||
COMMON_TEST_SKIPS+=(
|
||||
-x test_urllib2
|
||||
)
|
||||
;;
|
||||
sparc*)
|
||||
COMMON_TEST_SKIPS+=(
|
||||
# bug 788022
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
-x test_multiprocessing_spawn
|
||||
|
||||
-x test_ctypes
|
||||
-x test_gdb
|
||||
# bug 931908
|
||||
-x test_exceptions
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
# Kernel-config specific skips
|
||||
for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do
|
||||
if ! linux_config_exists || ! linux_chkconfig_present "${option}"
|
||||
then
|
||||
COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" )
|
||||
fi
|
||||
done
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && COMMON_TEST_SKIPS+=(
|
||||
# various musl locale deficiencies
|
||||
-x test__locale
|
||||
-x test_c_locale_coercion
|
||||
-x test_locale
|
||||
-x test_re
|
||||
|
||||
# known issues with find_library on musl
|
||||
# https://bugs.python.org/issue21622
|
||||
-x test_ctypes
|
||||
|
||||
# fpathconf, ttyname errno values
|
||||
-x test_os
|
||||
)
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
--verbose3
|
||||
-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
|
||||
|
||||
"${COMMON_TEST_SKIPS[@]}"
|
||||
|
||||
-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
|
||||
|
||||
# Fails in profiling run, passes in src_test().
|
||||
-x test_capi
|
||||
-x test_embed
|
||||
-x test_external_inspection
|
||||
)
|
||||
|
||||
# Arch-specific skips. See #931888 for a collection of these.
|
||||
case ${CHOST} in
|
||||
alpha*)
|
||||
profile_task_flags+=(
|
||||
-x test_os
|
||||
)
|
||||
;;
|
||||
hppa*)
|
||||
profile_task_flags+=(
|
||||
-x test_descr
|
||||
# bug 931908
|
||||
-x test_exceptions
|
||||
-x test_os
|
||||
)
|
||||
;;
|
||||
powerpc64-*) # big endian
|
||||
profile_task_flags+=(
|
||||
# bug 931908
|
||||
-x test_exceptions
|
||||
)
|
||||
;;
|
||||
riscv*)
|
||||
profile_task_flags+=(
|
||||
-x test_statistics
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
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
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-libmpdec
|
||||
--with-platlibdir=lib
|
||||
--with-pkg-config=yes
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
--disable-gil
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable jit experimental-jit)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
# 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}
|
||||
|
||||
# Gentoo hack to disable accessing system site-packages
|
||||
export GENTOO_CPYTHON_BUILD=1
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
local -x TMPDIR=/tmp
|
||||
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=(
|
||||
--verbose3
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
"${COMMON_TEST_SKIPS[@]}"
|
||||
)
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
local -x TMPDIR=/tmp
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
[[ ${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}" TEST_MODULES=no altinstall
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
# Fix collision with GIL-enabled build.
|
||||
rm "${ED}/usr/bin/python${PYVER%t}" || die
|
||||
mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die
|
||||
mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || 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 sqlite; then
|
||||
rm -r "${libdir}/"sqlite3 || die
|
||||
fi
|
||||
if use tk; then
|
||||
# rename to avoid collision with dev-lang/python
|
||||
mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die
|
||||
else
|
||||
rm -r "${ED}/usr/bin/idle${PYVER%t}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter} || 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
|
||||
# pydoc
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
@ -0,0 +1,654 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
LLVM_COMPAT=( 18 )
|
||||
LLVM_OPTIONAL=1
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic linux-info llvm-r1
|
||||
inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs
|
||||
inherit verify-sig
|
||||
|
||||
MY_PV=${PV/_alpha/a}
|
||||
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.sigstore
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm jit
|
||||
libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-libs/mpdecimal:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
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? (
|
||||
dev-python/ensurepip-pip
|
||||
dev-python/ensurepip-setuptools
|
||||
dev-python/ensurepip-wheel
|
||||
)
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
jit? (
|
||||
$(llvm_gen_dep '
|
||||
sys-devel/clang:${LLVM_SLOT}
|
||||
sys-devel/llvm:${LLVM_SLOT}
|
||||
')
|
||||
)
|
||||
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
|
||||
|
||||
# https://www.python.org/downloads/metadata/sigstore/
|
||||
VERIFY_SIG_METHOD=sigstore
|
||||
VERIFY_SIG_CERT_IDENTITY=hugo@python.org
|
||||
VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER%t}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
declare -rgA PYTHON_KERNEL_CHECKS=(
|
||||
["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589
|
||||
["DNOTIFY"]="test_fcntl" # bug 938662
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if use pgo || use test; then
|
||||
check-reqs_pkg_pretend
|
||||
fi
|
||||
|
||||
if use jit; then
|
||||
ewarn "USE=jit is considered experimental upstream. Using it"
|
||||
ewarn "could lead to unexpected breakage, including race conditions"
|
||||
ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless"
|
||||
ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead,"
|
||||
ewarn "please consider reporting JIT problems upstream."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if [[ ${MERGE_TYPE} != binary ]]; then
|
||||
use jit && llvm-r1_pkg_setup
|
||||
if use test || use pgo; then
|
||||
check-reqs_pkg_setup
|
||||
|
||||
local CONFIG_CHECK
|
||||
for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do
|
||||
CONFIG_CHECK+="~${f} "
|
||||
done
|
||||
linux-info_pkg_setup
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
|
||||
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
|
||||
|
||||
# breaks tests when using --with-wheel-pkg-dir
|
||||
rm -r Lib/test/wheeldata || 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
|
||||
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() {
|
||||
# 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
|
||||
|
||||
# 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
|
||||
|
||||
# Set baseline test skip flags.
|
||||
COMMON_TEST_SKIPS=(
|
||||
# this is actually test_gdb.test_pretty_print
|
||||
-x test_pretty_print
|
||||
# https://bugs.gentoo.org/933840
|
||||
-x test_perf_profiler
|
||||
)
|
||||
|
||||
# Arch-specific skips. See #931888 for a collection of these.
|
||||
case ${CHOST} in
|
||||
alpha*)
|
||||
COMMON_TEST_SKIPS+=(
|
||||
-x test_builtin
|
||||
-x test_capi
|
||||
-x test_cmath
|
||||
-x test_float
|
||||
# timeout
|
||||
-x test_free_threading
|
||||
-x test_math
|
||||
-x test_numeric_tower
|
||||
-x test_random
|
||||
-x test_statistics
|
||||
# bug 653850
|
||||
-x test_resource
|
||||
-x test_strtod
|
||||
)
|
||||
;;
|
||||
mips*)
|
||||
COMMON_TEST_SKIPS+=(
|
||||
-x test_ctypes
|
||||
-x test_external_inspection
|
||||
-x test_statistics
|
||||
)
|
||||
;;
|
||||
powerpc64-*) # big endian
|
||||
COMMON_TEST_SKIPS+=(
|
||||
-x test_gdb
|
||||
)
|
||||
;;
|
||||
riscv*)
|
||||
COMMON_TEST_SKIPS+=(
|
||||
-x test_urllib2
|
||||
)
|
||||
;;
|
||||
sparc*)
|
||||
COMMON_TEST_SKIPS+=(
|
||||
# bug 788022
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
-x test_multiprocessing_spawn
|
||||
|
||||
-x test_ctypes
|
||||
-x test_gdb
|
||||
# bug 931908
|
||||
-x test_exceptions
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
# Kernel-config specific skips
|
||||
for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do
|
||||
if ! linux_config_exists || ! linux_chkconfig_present "${option}"
|
||||
then
|
||||
COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" )
|
||||
fi
|
||||
done
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && COMMON_TEST_SKIPS+=(
|
||||
# various musl locale deficiencies
|
||||
-x test__locale
|
||||
-x test_c_locale_coercion
|
||||
-x test_locale
|
||||
-x test_re
|
||||
|
||||
# known issues with find_library on musl
|
||||
# https://bugs.python.org/issue21622
|
||||
-x test_ctypes
|
||||
|
||||
# fpathconf, ttyname errno values
|
||||
-x test_os
|
||||
)
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
--verbose3
|
||||
-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
|
||||
|
||||
"${COMMON_TEST_SKIPS[@]}"
|
||||
|
||||
-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
|
||||
|
||||
# Fails in profiling run, passes in src_test().
|
||||
-x test_capi
|
||||
-x test_embed
|
||||
)
|
||||
|
||||
# Arch-specific skips. See #931888 for a collection of these.
|
||||
case ${CHOST} in
|
||||
alpha*)
|
||||
profile_task_flags+=(
|
||||
-x test_os
|
||||
)
|
||||
;;
|
||||
hppa*)
|
||||
profile_task_flags+=(
|
||||
-x test_descr
|
||||
# bug 931908
|
||||
-x test_exceptions
|
||||
-x test_os
|
||||
)
|
||||
;;
|
||||
powerpc64-*) # big endian
|
||||
profile_task_flags+=(
|
||||
# bug 931908
|
||||
-x test_exceptions
|
||||
)
|
||||
;;
|
||||
riscv*)
|
||||
profile_task_flags+=(
|
||||
-x test_statistics
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
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
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-libmpdec
|
||||
--with-platlibdir=lib
|
||||
--with-pkg-config=yes
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
--enable-gil
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable jit experimental-jit)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
# 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}
|
||||
|
||||
# Gentoo hack to disable accessing system site-packages
|
||||
export GENTOO_CPYTHON_BUILD=1
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
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=(
|
||||
--verbose3
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
"${COMMON_TEST_SKIPS[@]}"
|
||||
)
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
[[ ${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}" TEST_MODULES=no 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 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} || 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
|
||||
# pydoc
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
DIST autovivification-0.18.tar.gz 55854 BLAKE2B 3f429ca462b685c4b02de265b7bdc5e3ccc9a2fcfd7a182834252a1a46a8e173657613c4e1391df8c9139f9b0716c10c25767d419343275b8e64b37aaef78cad SHA512 f5058bf1672a53281d70431cbb2bdd1a37dda8dc3d4191ca3c68c469089c5a1f2a36522f2a0b5d19847d91296f43e49cf6296c87b78940e786f0d0ac106a539e
|
||||
EBUILD autovivification-0.180.0-r1.ebuild 588 BLAKE2B ff7a897c7f614f54cbd809e843b493d60279bede93a9f61a608e75aae4f186e452eeb4bcc52b658e3dfe63a06cb2ba9369802e011674b3724582881dce5f6960 SHA512 8212f7ff3b545c99a19608d1c97bccb7f82450f1f9cd8f385c2934dcd566b300d50f7d9d868d2dc445612faa1f4ce3c9e903d3cfbfaad408bba32e8776031719
|
||||
EBUILD autovivification-0.180.0-r2.ebuild 495 BLAKE2B 6919b3b792f1b873fc589e9a6e9e702b0d1e07dfb4106264b48a7fe7018d8165199accb5ba7ea37d651f7762ecd54a3c05ad5b5f8a7864afc126634e4fee62ca SHA512 5a45ce2d4799fc7736b7c02759189e06437592408d9d738da34e41e2a4b4f0c067bf3f6aa7af9024e9baefe1a16a13234b8508bf9a553e65209d43e585adcbe5
|
||||
EBUILD autovivification-0.180.0-r2.ebuild 494 BLAKE2B 6c7499b6c5b3f4c1fa9bc46daa805ce0904d6d78570d17c7fd8eb199f540763ced27fe9f03f31aa6e375ccd085c73aebed2c0714f5e6a45d747aaf8573e12a1a SHA512 49962c44f76c71e8ded7430b258106859631169247291e4101d28485a70e2e79f049411a659a849c56fee446c8a361dfd1983d10c8bbdd36bd296866ecd1f6d7
|
||||
MISC metadata.xml 357 BLAKE2B 9ed9b4f9d12b94921019519ee4959dc86cc7849d870f57ac8fee5f47dde7eb70f5affd2ce1c090f9b353c1ecbeff7faace6b5d8b51ecfba01fa86b392c62efc3 SHA512 5aeead68116aee7b39643e626983fa46f8cc986c803cbb4b2f05f270a33182dbf4bf7ba72c087bd20bcd49c1dc7d01deb2958cb6ffbc2038a451c4e5ea6a57ea
|
||||
|
Binary file not shown.
@ -1,8 +1,3 @@
|
||||
AUX meson-python-0.16.0-pyproject-metadata-0.8.patch 2372 BLAKE2B 5bd4cde26e7d814699a2757b319817273e6d19ce456d9c9460ae4d2f224fd0fb329fc3bd5e0eaae076039d9224225f02b22592de149b41ec15c71d371b6e949f SHA512 8ddaf35d35966a4f89da4fe123a4985fff296c303a3fbaf7fb849ac4a3f00f72817f5f7e29b0ac2e103ac9163cc2752736fd0a7ebfb86362151653d5a91e4d26
|
||||
DIST meson-python-0.16.0.gh.tar.gz 74975 BLAKE2B af74d62a4567bc0a7524e815f1bb4ef3ae7290ccea38c00c3b0013f5e7777d6a41c1631b0c1d83fdd930836599752e3bba3c381c137d275103409a986df4e040 SHA512 99ea4304f15e2e13adf031e7c8cacbbc48c0c80f42a81f9d84242b6279ac9c1a13e3f162be5f472a1e498dc7cf3cba6799bf765b3fd441ac10cd87dc0db38678
|
||||
DIST meson-python-0.17.0.gh.tar.gz 79243 BLAKE2B f7eb63b1b6575b03d0a8e218b478a557260bd259206517155ba51f32aa3b168d6e999087ece5695c47addb8313227a24243b88d170ce4a1d0fbdef2cdcc492b2 SHA512 ae1466e6f7c6e1d57353be55d9f6dbba6cb532bf6581f8cf03bc2c13f2bd564f4c5ffee561cf1c46293e208da254dc56ec7311b148d2bf507ce5df875b4909de
|
||||
DIST meson-python-0.17.1.gh.tar.gz 79456 BLAKE2B 88bda9aadc74d186aab41c9b3a2fe5ba7d51b5997c1c043cf4ea9448395d0c5c5763ccf35358ab867d32a4537a4041a3cf480d82c9ec5cd8d1b5d6bc67d35fc8 SHA512 bd5f4c807468b81b3630eeb6973c2a574473c22298eb2c43d30b67b7503ce77fd79d4509a8f1b0186197622d281279a9c3aa5d9d1c2286d46b7aea1ff2461ae5
|
||||
EBUILD meson-python-0.16.0-r1.ebuild 1182 BLAKE2B 62070e32a181fcef0af7cd0844ee0ba568a0cc25bd40c2028d50998b87b842ff2def46e5f11110b457ba223b8cf2272728feb5277f61dfd5c4ce5984a61c4427 SHA512 560c712ec52bd99c6f9d1f54f88f35e1a030fe6f1fa41a55e98ee8c57fbc96fb281a8ff15e4ecda79ce3f37d4d9fd16092f1b69cd2dbd063fcb14bbcc351d59e
|
||||
EBUILD meson-python-0.17.0.ebuild 1480 BLAKE2B ed2af9f9969f84743e3e756edef96e16535f704c63aab4494b8b1572e49b5c0a75fd0c9a87341492b6be6bdd1af0a5aa1355bdf191c15f43f945bfd1192789c2 SHA512 eaf96029f6f32df129d3fd1b2c9944068393ff5a6f51f67fba1ad625bf112d2cf7a314426a6adedc88620740da101ce9516dbae438d19c83754b40b8bfb28444
|
||||
EBUILD meson-python-0.17.1.ebuild 1390 BLAKE2B 860bb2ef656cff8c1ee0b924ff26f6d3ee89cd52d8418fe4e3b7c3f65a85b5a0273b56e21c1f1b0009c9a63d13ef78f3bc114b672cd6ce5f2dba2894650efa18 SHA512 fa6741670afa18dbaac6eba5356102e9b77a3db6484b1749fbd756b3c06460387d213e905574435ec6f92af41957db1e8909d59045ec0567a4bb038ce45078b3
|
||||
EBUILD meson-python-0.17.1.ebuild 1389 BLAKE2B cbb4884dc42909c718e8e6149cac7356d173d140671b6902ec80908ac7d0865384faee5205ceb5356d7590f53c3d97a3b4ec7084007d98ac78607691db7fdc5b SHA512 c904b58b462c6ae3fc173f85202a05c4613afbb6b9be843dbe99c92eec784b7ffe135e7b446ae91a4b89f1c8eb98ff60436075c89fc6a3bec63a6f343146a217
|
||||
MISC metadata.xml 411 BLAKE2B 8a7344d7bab741106c4eaf5ccabbbdbe359e3c4f4b4a1a94390820392e0508244652b23a170739d43ccff2e82d1593274bfdaf94171cfcd5a6ec748b2ade482c SHA512 05b9171f27ee6707c893c4f3efbac5c16ca9899134b54e94ef3cad9cce620a03cbbadfbdc134f066abc139631c9b6637614ff5e135e0944dc61c5447ec70c129
|
||||
|
@ -1,68 +0,0 @@
|
||||
From ba14bfdffceb571a5e8c1406c76b7b77634bcb7f Mon Sep 17 00:00:00 2001
|
||||
From: Daniele Nicolodi <daniele@grinta.net>
|
||||
Date: Mon, 15 Apr 2024 22:34:36 +0200
|
||||
Subject: [PATCH 2/2] TST: Adapt to changes in pyproject-metadata 0.8.0
|
||||
|
||||
---
|
||||
tests/test_metadata.py | 8 +++++++-
|
||||
tests/test_sdist.py | 9 +++++++--
|
||||
2 files changed, 14 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tests/test_metadata.py b/tests/test_metadata.py
|
||||
index 0c278da6..088e82f7 100644
|
||||
--- a/tests/test_metadata.py
|
||||
+++ b/tests/test_metadata.py
|
||||
@@ -3,6 +3,7 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import pathlib
|
||||
+import re
|
||||
|
||||
import packaging.version
|
||||
import pyproject_metadata
|
||||
@@ -48,5 +49,10 @@ def test_missing_version(package_missing_version):
|
||||
pyproject = {'project': {
|
||||
'name': 'missing-version',
|
||||
}}
|
||||
- with pytest.raises(pyproject_metadata.ConfigurationError, match='Required "project.version" field is missing'):
|
||||
+ match = '|'.join((
|
||||
+ re.escape('Required "project.version" field is missing'),
|
||||
+ # pyproject-metatadata 0.8.0 and later
|
||||
+ re.escape('Field "project.version" missing and "version" not specified in "project.dynamic"'),
|
||||
+ ))
|
||||
+ with pytest.raises(pyproject_metadata.ConfigurationError, match=match):
|
||||
Metadata.from_pyproject(pyproject, pathlib.Path())
|
||||
diff --git a/tests/test_sdist.py b/tests/test_sdist.py
|
||||
index 6e337617..fb698b53 100644
|
||||
--- a/tests/test_sdist.py
|
||||
+++ b/tests/test_sdist.py
|
||||
@@ -3,6 +3,7 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import os
|
||||
+import re
|
||||
import stat
|
||||
import sys
|
||||
import tarfile
|
||||
@@ -30,7 +31,7 @@ def test_pep621(sdist_full_metadata):
|
||||
with tarfile.open(sdist_full_metadata, 'r:gz') as sdist:
|
||||
sdist_pkg_info = sdist.extractfile('full_metadata-1.2.3/PKG-INFO').read().decode()
|
||||
|
||||
- assert sdist_pkg_info == textwrap.dedent('''\
|
||||
+ metadata = re.escape(textwrap.dedent('''\
|
||||
Metadata-Version: 2.1
|
||||
Name: full-metadata
|
||||
Version: 1.2.3
|
||||
@@ -65,7 +66,11 @@ def test_pep621(sdist_full_metadata):
|
||||
# full-metadata
|
||||
|
||||
An example package with all of the PEP 621 metadata!
|
||||
- ''')
|
||||
+ '''))
|
||||
+
|
||||
+ # pyproject-metadata 0.8.0 and later uses a comma to separate keywords
|
||||
+ expr = metadata.replace(r'Keywords:\ full\ metadata', r'Keywords:\ full[ ,]metadata')
|
||||
+ assert re.fullmatch(expr, sdist_pkg_info)
|
||||
|
||||
|
||||
def test_dynamic_version(sdist_dynamic_version):
|
@ -1,53 +0,0 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=standalone
|
||||
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Meson PEP 517 Python build backend"
|
||||
HOMEPAGE="
|
||||
https://pypi.org/project/meson-python/
|
||||
https://github.com/mesonbuild/meson-python/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/mesonbuild/meson-python/archive/${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/pyproject-metadata-0.7.1[${PYTHON_USEDEP}]
|
||||
>=dev-build/meson-0.63.0
|
||||
!kernel_Darwin? ( dev-util/patchelf )
|
||||
$(python_gen_cond_dep '
|
||||
>=dev-python/tomli-1.0.0[${PYTHON_USEDEP}]
|
||||
' 3.10)
|
||||
"
|
||||
BDEPEND="
|
||||
>=dev-python/cython-0.29.34[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
dev-python/pytest-mock[${PYTHON_USEDEP}]
|
||||
dev-vcs/git
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
PATCHES=(
|
||||
# https://github.com/mesonbuild/meson-python/pull/612
|
||||
"${FILESDIR}/${P}-pyproject-metadata-0.8.patch"
|
||||
)
|
||||
|
||||
python_test() {
|
||||
unset NINJA
|
||||
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
epytest -p pytest_mock
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=standalone
|
||||
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Meson PEP 517 Python build backend"
|
||||
HOMEPAGE="
|
||||
https://pypi.org/project/meson-python/
|
||||
https://github.com/mesonbuild/meson-python/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/mesonbuild/meson-python/archive/${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/pyproject-metadata-0.7.1[${PYTHON_USEDEP}]
|
||||
>=dev-build/meson-0.63.0
|
||||
!kernel_Darwin? ( dev-util/patchelf )
|
||||
$(python_gen_cond_dep '
|
||||
>=dev-python/tomli-1.0.0[${PYTHON_USEDEP}]
|
||||
' 3.10)
|
||||
"
|
||||
# pyproject-metadata: https://github.com/mesonbuild/meson-python/issues/667
|
||||
BDEPEND="
|
||||
>=dev-python/cython-0.29.34[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
<dev-python/pyproject-metadata-0.9[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-mock[${PYTHON_USEDEP}]
|
||||
dev-vcs/git
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_test() {
|
||||
# required by tests/test_sdist.py::test_reproducible
|
||||
git config --global user.email "test@example.com" || die
|
||||
git config --global user.name "The Test Suite" || die
|
||||
git init -q || die
|
||||
git add -A || die
|
||||
git commit -m init -q || die
|
||||
|
||||
distutils-r1_src_test
|
||||
}
|
||||
|
||||
python_test() {
|
||||
unset NINJA
|
||||
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
epytest -p pytest_mock
|
||||
}
|
@ -1,3 +1,5 @@
|
||||
DIST pytest-rerunfailures-14.0.tar.gz 21350 BLAKE2B bb273d77a732c0296ca041b4cbd91fd48052076e9f76839b862b03de9f448208a216483bc486f23542cd99a12ef2934a46e3ea4162ca87bfd5c0904f2d114179 SHA512 8aa23a57206b0e6af133c716517c3c96cc156cc2f86b06c0fa80e9fea2b11f32e98cfb41f6a5fb05b38bab7496258160ba42fe6ae00d7bef8024159a8ed4a3f5
|
||||
DIST pytest-rerunfailures-15.0.tar.gz 21816 BLAKE2B 75c42cec3a9cc0208e045be82c1b6660d56fff898ac0e97e992a020229a095a619eb1e87eeca8af7fba4f455f044ddd9729943becd90d185356e7bddb9ab1c6b SHA512 c03f430f9e24e0b149391e08ae6f38450d731d1f6a28294173e75f8776dc596230422e2082bbbc74cf31ea7e4c3105f5d8d57825dc418c4ce1c5538d84c861c3
|
||||
EBUILD pytest-rerunfailures-14.0.ebuild 1373 BLAKE2B 07c44b649a1070cab20868d738ea8e4c9b6c1c9f9bae98bfef0afe099a35c460026b1fc607637bf1788133e58947323a53ad4fbf04643414a52c85c88b903a68 SHA512 21f86f18e5e78f12effe3ef51042c285971d4bd95f6ef589274bb6d1b83e1f82a15ecb9e0c36aba429262fd0b75a529cf4ee107322ccb95ac0ddf24da7fe0ab7
|
||||
EBUILD pytest-rerunfailures-15.0.ebuild 779 BLAKE2B ca919e4d8dd3f369c1de26c27258014f2ef9a08cf79fd5e580e984719741edb9cb5ed54cb58aed4bc7c296c9d6418dc32f699b9a944ce29dfb341a2dc9def4a3 SHA512 b7f0d504c320452fb464b86eb04f65f76d382b0d7d767bd3eae6e5591ea634ba9f391d32dd8899a283c79e6f569dcef3988aa5edc6c0125f703e522159ca71a9
|
||||
MISC metadata.xml 432 BLAKE2B 3bbb0bd303a26d2a336563f187160b3b023e6d7a3a776922dee4853164d7461f395e840b2c0ba1349687d24050ccb5fd18166aeec397c9b21a1aa0e6b536b795 SHA512 f372a1f73a4dc3e60f66bd6049cddb4d8cd8fe53bebff2a6d194eb3d5872adab9b7ac226971696fb24a8d4e4744427c4d4148054fc51a94f63320d428ef80d52
|
||||
|
@ -0,0 +1,32 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYPI_NO_NORMALIZE=1
|
||||
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
||||
|
||||
inherit distutils-r1 pypi
|
||||
|
||||
DESCRIPTION="pytest plugin to re-run tests to eliminate flaky failures"
|
||||
HOMEPAGE="
|
||||
https://github.com/pytest-dev/pytest-rerunfailures/
|
||||
https://pypi.org/project/pytest-rerunfailures/
|
||||
"
|
||||
|
||||
LICENSE="MPL-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/packaging-17.1[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_test() {
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
local -x PYTEST_PLUGINS=pytest_rerunfailures
|
||||
epytest
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
AUX python-json-logger-2.0.7-py312.patch 1072 BLAKE2B 4b1409028046ed0b0ed41a221f8cc5957103fdb84c68037bea2b33a16e17e40814d44839b51a16bf122ed82b2ab9dce191850be8df7590a0581af270ab74a8ac SHA512 1497285bb76ec96d6d3a3316e8c03833dc78655add76f382331acfbb0a0d2b2e5a17f2bf596352dba39d3f6c44b0351144680e61e6361002a905db7e79b1c46b
|
||||
AUX python-json-logger-2.0.7-py313.patch 1037 BLAKE2B 7f060bbb3ed61a7504b665c2412f46d7853729c6bd8550a5fa4c0311585e8283d58f2c1776e892af1cc6bfaa9937db7933e4c4b5d675f3b75842c618e53f5af6 SHA512 78e67dc60f7bf4c00dfbb34daf5c0eab9af8063c69872974cab62d82f0c7cd1eafe3e32424fe836cd63688d241a5c65e369f757f0690529b47e8ecabbc0214f5
|
||||
DIST python-json-logger-2.0.7.tar.gz 10508 BLAKE2B 818abaa8007db2226beb7e9f9b6326c4c59e11827c740496bfde491a495b8580b74c483b4bead58525942009ae84643758b8fec4dc0ba85e2c1c2deff2445bcf SHA512 a3056f6c07386410204e65d027504df49d890b5c4577a0460077bc698c9104ab8720d6db107153766611f4f22141c0b2b57dbdacba75a7078638945937922f5e
|
||||
EBUILD python-json-logger-2.0.7-r1.ebuild 809 BLAKE2B 5aee363bd2c772920b8700cc7d4e357e98ebf11ac3be221419ee95ab675449f8e6648963e6c80cff6a046dd71c2fe830dedbafa95a86b7aecb918cad25fadcf7 SHA512 fc5c36a249e8fb1f61b654515a881516aec39a89f840c09d241b3c0257047c2ae491d8e888c41b5097795cac86efd9a05f95c6ee8e3f7e446935795778e6e935
|
||||
EBUILD python-json-logger-2.0.7.ebuild 940 BLAKE2B f127a304a3ab73bc2b7991799ba998dbe8c00493eb8a0f216f202ea312798ffbbe93486b7638eb47de4867998548b2c9c50999e22c500aade173640173386dab SHA512 8862fccb0aa3ee84ad69945742bf6033e315f26ad23f4cd37075ea9f5e3aa59145b58070bc1b3bc4bf7da13a2c7dbc6d2970f19781e9ba9f211c3c59dba32ca9
|
||||
EBUILD python-json-logger-2.0.7-r1.ebuild 808 BLAKE2B 94178c37db913496775db050707247180384ebe54d7044b41b5dd272c49f7c81a220d2653109762a6837e6a066f42d21a3a270783d37d8f2c73c16b10ba45dd8 SHA512 7278c9add55fa72a0dff9cd60490926503d19a402fb32b203fc70c21d3fdc34d87ad919ee07376d8eba429d289e4b9e64288c3f5a319253dac8295585209033e
|
||||
MISC metadata.xml 649 BLAKE2B 08ae72a3035d22e511be62554fb1bac5a7bd9b450a557d7eadf21ac3061f8ed97a6fae7980b9c0fecc85cd36e9733f71a723e694812a27a1248c6dac37033a68 SHA512 476d71374f5c6d13bdaac2d0a7713943dca9273afe6d598e289f7eea57bd0c73f2e149f62889c99e885b880ce965205d2eae5a9bb6577693fce672b2031d6359
|
||||
|
@ -1,38 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYPI_NO_NORMALIZE=1
|
||||
PYTHON_COMPAT=( python3_{10..12} pypy3 )
|
||||
|
||||
inherit distutils-r1 pypi
|
||||
|
||||
DESCRIPTION="Standard python logging to output log data as json objects"
|
||||
HOMEPAGE="
|
||||
https://github.com/madzak/python-json-logger/
|
||||
https://pypi.org/project/python-json-logger/
|
||||
"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_test() {
|
||||
local EPYTEST_DESELECT=()
|
||||
case ${EPYTHON} in
|
||||
python3.12)
|
||||
EPYTEST_DESELECT+=(
|
||||
tests/test_jsonlogger.py::TestJsonLogger::test_custom_object_serialization
|
||||
tests/test_jsonlogger.py::TestJsonLogger::test_percentage_format
|
||||
tests/test_jsonlogger.py::TestJsonLogger::test_rename_reserved_attrs
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
epytest
|
||||
}
|
@ -1,9 +1,3 @@
|
||||
DIST time-machine-2.14.1.gh.tar.gz 29600 BLAKE2B b118e3a2f08f75cc6cd89181a9e533c89bc6e5312a520b2a854fb8aa7ac59f1570e48a85788261f781ef83f9864380318074724f6eadab9cda7a3374b2322e7d SHA512 42a127e2dc5a86e33896010e6d141fc9248fe685d3477ec71ec8a72315914cea99ae4a4d6623a59fd69505d935d2feadcfd831a7fff5617c3f98a93d48652ecf
|
||||
DIST time-machine-2.14.2.gh.tar.gz 29671 BLAKE2B a53804ab324fcef3d5a387de6451ecd031310eefa17f6d2279fe70f0af3ff8f001ea581ac392c9e72f259dba49ae03eb82279804874a49f6131e5c6cf0131aa0 SHA512 b1996f762aabd161d7f66720265d520ff419a08525da603d805e95e5035cef4576e57d87b6c71a98dddc7cfb33d27e11f7b3d7999ca1be25b81ec0ab502f7012
|
||||
DIST time-machine-2.15.0.gh.tar.gz 29696 BLAKE2B c1008957e1206d4297ff63f1146f7411e96aae5805a7217af0989b7c77adfe8f447c1c0a36d8b488fd5b25370aebc92a511eeaad85005b5b0c7410480497e229 SHA512 3221a131ffe042f2e222950ca3241050e3275ac209c0df806da290b63c5fc43efbfb202ae030096c29c6390a6467bc05d476d4a3cef9465ea63473e50e3629c7
|
||||
DIST time-machine-2.16.0.gh.tar.gz 30522 BLAKE2B 71b1d2848bd0a72d193b262299976da4aeac3deb52776ebcc855dfc9e6eabc8d9459c123980d7b0b9e29bc2df66193f287a4817ec351ae43994b969731da7bc9 SHA512 19b764cccdff07056a7d42841da576d90037661a9f124e3fbab408bfa61dccf4b51b88a7e0741c87b03e7a8cc3306bb0ed32bd66588e45c9ab7e9d9cb5ba44ae
|
||||
EBUILD time-machine-2.14.1.ebuild 667 BLAKE2B fb1754304eaf42b5d68e6059f5e87c56ae064641a9d2d1842c39b257fa8d001c4a7b6ac7621c384f8b5a12073b1b9faa77b956a63cfd8921d2975b2605f43a69 SHA512 acab5900c9b05e924a2c074a3ce3aaa25ff16ce734b2e6a0cb186dd582c6fc64dbe7913489b23c541e63335194681186b812e9096fe7d124db09379c7da8d623
|
||||
EBUILD time-machine-2.14.2.ebuild 668 BLAKE2B a4eff3442de80467d96e8cc4be312774122e3d113b8ced2af889385d12f0aaba1fc9172f355c9f67ffda0b81d28233a240846db3190592caaedf89e14f3519ed SHA512 42ab2b5ba46cb717cbd99006007c742737b79ddb7b3c3cb3844c5a72507699cbeb480747219e39fb545e8134cf7beec56b5fe6143de585c2b1b780d8c7ca081d
|
||||
EBUILD time-machine-2.15.0.ebuild 668 BLAKE2B a4eff3442de80467d96e8cc4be312774122e3d113b8ced2af889385d12f0aaba1fc9172f355c9f67ffda0b81d28233a240846db3190592caaedf89e14f3519ed SHA512 42ab2b5ba46cb717cbd99006007c742737b79ddb7b3c3cb3844c5a72507699cbeb480747219e39fb545e8134cf7beec56b5fe6143de585c2b1b780d8c7ca081d
|
||||
EBUILD time-machine-2.16.0.ebuild 668 BLAKE2B a4eff3442de80467d96e8cc4be312774122e3d113b8ced2af889385d12f0aaba1fc9172f355c9f67ffda0b81d28233a240846db3190592caaedf89e14f3519ed SHA512 42ab2b5ba46cb717cbd99006007c742737b79ddb7b3c3cb3844c5a72507699cbeb480747219e39fb545e8134cf7beec56b5fe6143de585c2b1b780d8c7ca081d
|
||||
EBUILD time-machine-2.16.0.ebuild 667 BLAKE2B fb1754304eaf42b5d68e6059f5e87c56ae064641a9d2d1842c39b257fa8d001c4a7b6ac7621c384f8b5a12073b1b9faa77b956a63cfd8921d2975b2605f43a69 SHA512 acab5900c9b05e924a2c074a3ce3aaa25ff16ce734b2e6a0cb186dd582c6fc64dbe7913489b23c541e63335194681186b812e9096fe7d124db09379c7da8d623
|
||||
MISC metadata.xml 379 BLAKE2B 98883d810d13745555166c9901f0ac15bd1ace4754e67ddb090983d97808a8362f61d91e82e7c903920cf42037c3df2655b211caaff904fb3ac4d2494ebf2fd3 SHA512 74d7de420c0bc5c03a3524bfe9b888fec8e5ec353d89b8a8e5d5d2dbd736ef8d34c45f026fe493dfe87ebcc7754c30d9b3ef7fda1abea91cbf9599bdeb4ed3c9
|
||||
|
@ -1,30 +0,0 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_EXT=1
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Travel through time in your tests"
|
||||
HOMEPAGE="
|
||||
https://github.com/adamchainz/time-machine/
|
||||
https://pypi.org/project/time-machine/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/python-dateutil[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
@ -1,30 +0,0 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_EXT=1
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Travel through time in your tests"
|
||||
HOMEPAGE="
|
||||
https://github.com/adamchainz/time-machine/
|
||||
https://pypi.org/project/time-machine/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/python-dateutil[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
@ -1,30 +0,0 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_EXT=1
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Travel through time in your tests"
|
||||
HOMEPAGE="
|
||||
https://github.com/adamchainz/time-machine/
|
||||
https://pypi.org/project/time-machine/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/python-dateutil[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,15 @@
|
||||
--- a/src/Tools/SubWCRev.py
|
||||
+++ b/src/Tools/SubWCRev.py
|
||||
@@ -509,12 +509,6 @@ def main():
|
||||
bindir = a
|
||||
|
||||
vcs = [
|
||||
- GitControl(),
|
||||
- DebianGitHub(),
|
||||
- BazaarControl(),
|
||||
- Subversion(),
|
||||
- MercurialControl(),
|
||||
- DebianChangelog(),
|
||||
UnknownControl(),
|
||||
]
|
||||
for i in vcs:
|
@ -1,394 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit check-reqs cmake flag-o-matic optfeature python-single-r1 qmake-utils xdg
|
||||
|
||||
DESCRIPTION="QT based Computer Aided Design application"
|
||||
HOMEPAGE="https://www.freecad.org/ https://github.com/FreeCAD/FreeCAD"
|
||||
|
||||
MY_PN=FreeCAD
|
||||
MY_PV="${PV/_/}"
|
||||
|
||||
if [[ ${PV} = *9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
|
||||
S="${WORKDIR}/freecad-${PV}"
|
||||
else
|
||||
SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64"
|
||||
S="${WORKDIR}/FreeCAD-${MY_PV}"
|
||||
fi
|
||||
|
||||
# code is licensed LGPL-2
|
||||
# examples are licensed CC-BY-SA (without note of specific version)
|
||||
LICENSE="LGPL-2 CC-BY-SA-4.0"
|
||||
SLOT="0"
|
||||
IUSE="debug designer +gui +qt6 test"
|
||||
|
||||
FREECAD_EXPERIMENTAL_MODULES="cloud netgen pcl"
|
||||
FREECAD_STABLE_MODULES="addonmgr fem idf image inspection material
|
||||
openscad part-design path points raytracing robot show smesh
|
||||
surface techdraw tux"
|
||||
|
||||
for module in ${FREECAD_STABLE_MODULES}; do
|
||||
IUSE="${IUSE} +${module}"
|
||||
done
|
||||
for module in ${FREECAD_EXPERIMENTAL_MODULES}; do
|
||||
IUSE="${IUSE} ${module}"
|
||||
done
|
||||
unset module
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-cpp/gtest
|
||||
dev-cpp/yaml-cpp
|
||||
dev-libs/OpenNI2[opengl(+)]
|
||||
dev-libs/boost:=
|
||||
dev-libs/libfmt:=
|
||||
dev-libs/libspnav[X]
|
||||
dev-libs/xerces-c[icu]
|
||||
dev-ruby/asciidoctor
|
||||
!qt6? (
|
||||
dev-qt/qtconcurrent:5
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtnetwork:5
|
||||
dev-qt/qtxml:5
|
||||
dev-qt/qtxmlpatterns:5
|
||||
)
|
||||
qt6? (
|
||||
dev-qt/qtbase:6[concurrent,network,xml]
|
||||
)
|
||||
media-libs/freetype
|
||||
media-libs/qhull:=
|
||||
sci-libs/hdf5:=[fortran,zlib]
|
||||
>=sci-libs/med-4.0.0-r1
|
||||
sci-libs/opencascade:=[json,vtk]
|
||||
sci-libs/orocos_kdl:=
|
||||
sys-libs/zlib
|
||||
virtual/libusb:1
|
||||
cloud? (
|
||||
dev-libs/openssl:=
|
||||
net-misc/curl
|
||||
)
|
||||
fem? (
|
||||
!qt6? ( sci-libs/vtk:=[qt5,rendering] )
|
||||
qt6? ( sci-libs/vtk:=[-qt5,qt6,rendering] )
|
||||
)
|
||||
gui? (
|
||||
>=media-libs/coin-4.0.0
|
||||
virtual/glu
|
||||
virtual/opengl
|
||||
!qt6? (
|
||||
dev-qt/designer:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtopengl:5
|
||||
dev-qt/qtprintsupport:5
|
||||
dev-qt/qtsvg:5
|
||||
dev-qt/qtwebengine:5[widgets]
|
||||
dev-qt/qtwidgets:5
|
||||
dev-qt/qtx11extras:5
|
||||
pcl? ( sci-libs/pcl[qt5] )
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/matplotlib[${PYTHON_USEDEP}]
|
||||
>=dev-python/pivy-0.6.5[${PYTHON_USEDEP}]
|
||||
dev-python/pyside2:=[gui,svg,webchannel,webengine,${PYTHON_USEDEP}]
|
||||
dev-python/shiboken2:=[${PYTHON_USEDEP}]
|
||||
' python3_{10..11} )
|
||||
)
|
||||
qt6? (
|
||||
designer? ( dev-qt/qttools:6[designer] )
|
||||
dev-qt/qt5compat:6
|
||||
dev-qt/qttools:6[widgets]
|
||||
dev-qt/qtbase:6[gui,opengl,widgets]
|
||||
dev-qt/qtsvg:6
|
||||
dev-qt/qtwebengine:6[widgets]
|
||||
pcl? ( sci-libs/pcl[-qt5,qt6(-)] )
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/matplotlib[${PYTHON_USEDEP}]
|
||||
>=dev-python/pivy-0.6.5[${PYTHON_USEDEP}]
|
||||
dev-python/pyside6:=[gui,svg,webchannel,webengine,${PYTHON_USEDEP}]
|
||||
dev-python/shiboken6:=[${PYTHON_USEDEP}]
|
||||
' )
|
||||
)
|
||||
)
|
||||
netgen? ( media-gfx/netgen[opencascade] )
|
||||
openscad? ( media-gfx/openscad )
|
||||
pcl? ( sci-libs/pcl:=[opengl,openni2,vtk] )
|
||||
smesh? (
|
||||
!qt6? ( sci-libs/vtk:=[qt5] )
|
||||
qt6? ( sci-libs/vtk:=[-qt5,qt6] )
|
||||
)
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/numpy[${PYTHON_USEDEP}]
|
||||
dev-python/pybind11[${PYTHON_USEDEP}]
|
||||
addonmgr? ( dev-python/GitPython[${PYTHON_USEDEP}] )
|
||||
fem? ( dev-python/ply[${PYTHON_USEDEP}] )
|
||||
')
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
>=dev-cpp/eigen-3.3.1:3
|
||||
dev-cpp/ms-gsl
|
||||
test? (
|
||||
$(python_gen_cond_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
|
||||
!qt6? ( dev-qt/qttest:5 )
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
app-text/dos2unix
|
||||
dev-lang/swig
|
||||
test? (
|
||||
$(python_gen_cond_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
|
||||
!qt6? ( dev-qt/qttest:5 )
|
||||
dev-cpp/gtest
|
||||
)
|
||||
"
|
||||
|
||||
# To get required dependencies:
|
||||
# 'grep REQUIRES_MODS cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake'
|
||||
# We set the following requirements by default:
|
||||
# arch, draft, drawing, import, mesh, part, qt5, sketcher, spreadsheet, start, web.
|
||||
#
|
||||
# Additionally, we auto-enable mesh_part, flat_mesh and smesh
|
||||
# Fem actually needs smesh, but as long as we don't have a smesh package, we enable
|
||||
# smesh through the mesh USE flag. Note however, the fem<-smesh dependency isn't
|
||||
# reflected by the REQUIRES_MODS macro, but at
|
||||
# cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake:187.
|
||||
#
|
||||
# The increase in auto-enabled workbenches is due to their need in parts of the
|
||||
# test suite when compiled with a minimal set of USE flags.
|
||||
REQUIRED_USE="
|
||||
${PYTHON_REQUIRED_USE}
|
||||
designer? ( gui )
|
||||
inspection? ( points )
|
||||
path? ( robot )
|
||||
python_single_target_python3_12? ( gui? ( qt6 ) )
|
||||
"
|
||||
# There is no py3.12 support planned for pyside2
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-9999-Gentoo-specific-don-t-check-vcs.patch
|
||||
"${FILESDIR}"/${PN}-0.21.0-0001-Gentoo-specific-disable-ccache-usage.patch
|
||||
"${FILESDIR}"/${PN}-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch
|
||||
)
|
||||
|
||||
DOCS=( CODE_OF_CONDUCT.md README.md )
|
||||
|
||||
CHECKREQS_DISK_BUILD="2G"
|
||||
|
||||
pkg_setup() {
|
||||
check-reqs_pkg_setup
|
||||
python-single-r1_pkg_setup
|
||||
[[ -z ${CASROOT} ]] && die "\${CASROOT} not set, please run eselect opencascade"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Fix desktop file
|
||||
sed -e 's/Exec=FreeCAD/Exec=freecad/' -i src/XDGData/org.freecad.FreeCAD.desktop || die
|
||||
|
||||
find "${S}" -type f -exec dos2unix -q {} \; || die "failed to convert to unix line endings"
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# -Werror=odr, -Werror=lto-type-mismatch
|
||||
# https://bugs.gentoo.org/875221
|
||||
# https://github.com/FreeCAD/FreeCAD/issues/13173
|
||||
filter-lto
|
||||
|
||||
# Fix building tests
|
||||
append-ldflags -Wl,--copy-dt-needed-entries
|
||||
|
||||
local mycmakeargs=(
|
||||
-DBUILD_ADDONMGR=$(usex addonmgr)
|
||||
-DBUILD_ARCH=ON
|
||||
-DBUILD_ASSEMBLY=OFF # Requires OndselSolver
|
||||
-DBUILD_CLOUD=$(usex cloud)
|
||||
-DBUILD_COMPLETE=OFF # deprecated
|
||||
-DBUILD_DRAFT=ON
|
||||
-DBUILD_DESIGNER_PLUGIN=$(usex designer)
|
||||
-DBUILD_ENABLE_CXX_STD:STRING="C++17" # needed for current git master
|
||||
-DBUILD_FEM=$(usex fem)
|
||||
-DBUILD_FEM_NETGEN=$(usex netgen)
|
||||
-DBUILD_FLAT_MESH=ON
|
||||
-DBUILD_FORCE_DIRECTORY=ON # force building in a dedicated directory
|
||||
-DBUILD_FREETYPE=ON # automagic dep
|
||||
-DBUILD_GUI=$(usex gui)
|
||||
-DBUILD_IDF=$(usex idf)
|
||||
-DBUILD_IMAGE=$(usex image)
|
||||
-DBUILD_IMPORT=ON # import module for various file formats
|
||||
-DBUILD_INSPECTION=$(usex inspection)
|
||||
-DBUILD_JTREADER=OFF # code has been removed upstream, but option is still there
|
||||
-DBUILD_MATERIAL=$(usex material)
|
||||
-DBUILD_MESH=ON
|
||||
-DBUILD_MESH_PART=ON
|
||||
-DBUILD_OPENSCAD=$(usex openscad)
|
||||
-DBUILD_PART=ON
|
||||
-DBUILD_PART_DESIGN=$(usex part-design)
|
||||
-DBUILD_PATH=$(usex path)
|
||||
-DBUILD_POINTS=$(usex points)
|
||||
-DBUILD_RAYTRACING=$(usex raytracing)
|
||||
-DBUILD_REVERSEENGINEERING=OFF # currently only an empty sandbox
|
||||
-DBUILD_ROBOT=$(usex robot)
|
||||
-DBUILD_SHOW=$(usex show)
|
||||
-DBUILD_SKETCHER=ON # needed by draft workspace
|
||||
-DBUILD_SMESH=$(usex smesh)
|
||||
-DBUILD_SPREADSHEET=ON
|
||||
-DBUILD_START=ON
|
||||
-DBUILD_SURFACE=$(usex surface)
|
||||
-DBUILD_TECHDRAW=$(usex techdraw)
|
||||
-DBUILD_TEST=ON # always build test workbench for run-time testing
|
||||
-DBUILD_TUX=$(usex tux)
|
||||
-DBUILD_VR=OFF
|
||||
-DBUILD_WEB=ON # needed by start workspace
|
||||
-DBUILD_WITH_CONDA=OFF
|
||||
|
||||
-DCMAKE_INSTALL_DATADIR=/usr/share/${PN}/data
|
||||
-DCMAKE_INSTALL_DOCDIR=/usr/share/doc/${PF}
|
||||
-DCMAKE_INSTALL_INCLUDEDIR=/usr/include/${PN}
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/$(get_libdir)/${PN}
|
||||
|
||||
-DFREECAD_BUILD_DEBIAN=OFF
|
||||
|
||||
-DFREECAD_USE_EXTERNAL_KDL=ON
|
||||
-DFREECAD_USE_EXTERNAL_SMESH=OFF # no package in Gentoo
|
||||
-DFREECAD_USE_EXTERNAL_ZIPIOS=OFF # doesn't work yet, also no package in Gentoo tree
|
||||
-DFREECAD_USE_FREETYPE=ON
|
||||
-DFREECAD_USE_OCC_VARIANT:STRING="Official Version"
|
||||
-DFREECAD_USE_PCL=$(usex pcl)
|
||||
-DFREECAD_USE_PYBIND11=ON
|
||||
-DFREECAD_USE_QT_FILEDIALOG=ON
|
||||
-DFREECAD_USE_QTWEBMODULE:STRING="Qt WebEngine"
|
||||
|
||||
# install python modules to site-packages' dir. True only for the main package,
|
||||
# sub-packages will still be installed inside /usr/lib64/freecad
|
||||
-DINSTALL_TO_SITEPACKAGES=ON
|
||||
|
||||
# Use the version of shiboken2 that matches the selected python version
|
||||
-DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
|
||||
-DPython3_EXECUTABLE=${PYTHON}
|
||||
)
|
||||
|
||||
if use debug; then
|
||||
# BUILD_SANDBOX currently broken, see
|
||||
# https://forum.freecadweb.org/viewtopic.php?f=4&t=36071&start=30#p504595
|
||||
mycmakeargs+=(
|
||||
-DBUILD_SANDBOX=OFF
|
||||
-DBUILD_TEMPLATE=ON
|
||||
)
|
||||
else
|
||||
mycmakeargs+=(
|
||||
-DBUILD_SANDBOX=OFF
|
||||
-DBUILD_TEMPLATE=OFF
|
||||
)
|
||||
fi
|
||||
|
||||
if use qt6; then
|
||||
mycmakeargs+=(
|
||||
-DFREECAD_QT_MAJOR_VERSION=6
|
||||
-DFREECAD_QT_VERSION=6
|
||||
-DQT_DEFAULT_MAJOR_VERSION=6
|
||||
-DQt6Core_MOC_EXECUTABLE="$(qt6_get_bindir)/moc"
|
||||
-DQt6Core_RCC_EXECUTABLE="$(qt6_get_bindir)/rcc"
|
||||
-DBUILD_QT5=OFF
|
||||
# Drawing module unmaintained and not ported to qt6
|
||||
-DBUILD_DRAWING=OFF
|
||||
)
|
||||
else
|
||||
mycmakeargs+=(
|
||||
-DFREECAD_QT_MAJOR_VERSION=5
|
||||
-DFREECAD_QT_VERSION=5
|
||||
-DQT_DEFAULT_MAJOR_VERSION=5
|
||||
-DQt5Core_MOC_EXECUTABLE="$(qt5_get_bindir)/moc"
|
||||
-DQt5Core_RCC_EXECUTABLE="$(qt5_get_bindir)/rcc"
|
||||
-DBUILD_QT5=ON
|
||||
# Drawing module unmaintained and not ported to qt6
|
||||
-DBUILD_DRAWING=ON
|
||||
)
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
# We use the FreeCADCmd binary instead of the FreeCAD binary here
|
||||
# for two reasons:
|
||||
# 1. It works out of the box with USE=-gui as well, not needing a guard
|
||||
# 2. We don't need virtualx.eclass and it's dependencies
|
||||
# The exported environment variables are needed, so freecad does know
|
||||
# where to save it's temporary files, and where to look and write it's
|
||||
# configuration. Without those, there are sandbox violation, when it
|
||||
# tries to create /var/lib/portage/home/.FreeCAD directory.
|
||||
src_test() {
|
||||
pushd "${BUILD_DIR}" > /dev/null || die
|
||||
export FREECAD_USER_HOME="${HOME}"
|
||||
export FREECAD_USER_DATA="${T}"
|
||||
export FREECAD_USER_TEMP="${T}"
|
||||
nonfatal ./bin/FreeCADCmd --run-test 0
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
dobin src/Tools/freecad-thumbnailer
|
||||
|
||||
if use gui; then
|
||||
newbin - freecad <<- _EOF_
|
||||
#!/bin/sh
|
||||
# https://github.com/coin3d/coin/issues/451
|
||||
: \${QT_QPA_PLATFORM:=xcb}
|
||||
export QT_QPA_PLATFORM
|
||||
exec /usr/$(get_libdir)/${PN}/bin/FreeCAD "\${@}"
|
||||
_EOF_
|
||||
mv "${ED}"/usr/$(get_libdir)/${PN}/share/* "${ED}"/usr/share || die "failed to move shared resources"
|
||||
fi
|
||||
dosym -r /usr/$(get_libdir)/${PN}/bin/FreeCADCmd /usr/bin/freecadcmd
|
||||
|
||||
rm -r "${ED}"/usr/$(get_libdir)/${PN}/include/E57Format || die "failed to drop unneeded include directory E57Format"
|
||||
|
||||
python_optimize "${ED}"/usr/share/${PN}/data/Mod/Start/StartPage "${ED}"/usr/$(get_libdir)/${PN}{/Ext,/Mod}/
|
||||
# compile main package in python site-packages as well
|
||||
python_optimize
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
|
||||
einfo "You can load a lot of additional workbenches using the integrated"
|
||||
einfo "AddonManager."
|
||||
|
||||
# ToDo: check opencv, pysolar (::science), elmerfem (::science)
|
||||
# ifc++, ifcopenshell, z88 (no pkgs), calculix-ccx (::waebbl)
|
||||
einfo "There are a lot of additional tools, for which FreeCAD has builtin"
|
||||
einfo "support. Some of them are available in Gentoo. Take a look at"
|
||||
einfo "https://wiki.freecadweb.org/Installing#External_software_supported_by_FreeCAD"
|
||||
optfeature_header "Computational utilities"
|
||||
optfeature "BLAS library" sci-libs/openblas
|
||||
optfeature "Statistical computation with Python" dev-python/pandas
|
||||
optfeature "Use scientific computation with Python" dev-python/scipy
|
||||
optfeature "Use symbolic math with Python" dev-python/sympy
|
||||
optfeature_header "Imaging, Plotting and Rendering utilities"
|
||||
optfeature "Dependency graphs" media-gfx/graphviz
|
||||
optfeature "PBR Rendering" media-gfx/povray
|
||||
optfeature_header "Import / Export"
|
||||
optfeature "Interact with git repositories" dev-python/GitPython
|
||||
optfeature "Work with COLLADA documents" dev-python/pycollada
|
||||
optfeature "YAML importer and emitter" dev-python/pyyaml
|
||||
optfeature "Importing and exporting 2D AutoCAD DWG files" media-gfx/libredwg
|
||||
optfeature "Importing and exporting geospatial data formats" sci-libs/gdal
|
||||
optfeature "Working with projection data" sci-libs/proj
|
||||
optfeature_header "Meshing and FEM"
|
||||
optfeature "FEM mesh generator" sci-libs/gmsh
|
||||
optfeature "Triangulating meshes" sci-libs/gts
|
||||
optfeature "Visualization" sci-visualization/paraview
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_pkg_postrm
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
Wed, 20 Nov 2024 09:40:11 +0000
|
||||
Wed, 20 Nov 2024 13:15:26 +0000
|
||||
|
@ -1 +1 @@
|
||||
Wed, 20 Nov 2024 09:40:11 +0000
|
||||
Wed, 20 Nov 2024 13:16:02 +0000
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,16 @@
|
||||
BDEPEND=sys-apps/texinfo virtual/pkgconfig gzip-el? ( app-arch/gzip ) >=app-portage/elt-patches-20240116 sys-devel/gnuconfig || ( >=dev-build/automake-1.17-r1:1.17 >=dev-build/automake-1.16.5:1.16 ) || ( >=dev-build/autoconf-2.72-r1:2.72 >=dev-build/autoconf-2.71-r6:2.71 ) >=dev-build/libtool-2.4.7-r3
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-emacs/emacs-common[games?,gui(-)?] sys-libs/ncurses:0= acl? ( virtual/acl ) alsa? ( media-libs/alsa-lib ) dbus? ( sys-apps/dbus ) games? ( acct-group/gamestat ) gmp? ( dev-libs/gmp:0= ) gpm? ( sys-libs/gpm ) !inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) ) jit? ( sys-devel/gcc:=[jit(-)] sys-libs/zlib ) json? ( dev-libs/jansson:= ) kerberos? ( virtual/krb5 ) lcms? ( media-libs/lcms:2 ) libxml2? ( >=dev-libs/libxml2-2.2.0 ) mailutils? ( net-mail/mailutils[clients] ) !mailutils? ( acct-group/mail net-libs/liblockfile ) selinux? ( sys-libs/libselinux ) sqlite? ( dev-db/sqlite:3 ) ssl? ( net-libs/gnutls:0= ) systemd? ( sys-apps/systemd ) tree-sitter? ( dev-libs/tree-sitter:= ) valgrind? ( dev-debug/valgrind ) zlib? ( sys-libs/zlib ) gui? ( gif? ( media-libs/giflib:0= ) jpeg? ( media-libs/libjpeg-turbo:0= ) png? ( >=media-libs/libpng-1.4:0= ) svg? ( >=gnome-base/librsvg-2.0 ) tiff? ( media-libs/tiff:= ) webp? ( media-libs/libwebp:0= ) imagemagick? ( media-gfx/imagemagick:0=[jpeg?,png?,svg?,tiff?] ) !aqua? ( gsettings? ( app-emacs/emacs-common[gsettings(-)] >=dev-libs/glib-2.28.6 ) gtk? ( !X? ( media-libs/fontconfig media-libs/freetype >=x11-libs/cairo-1.12.18 x11-libs/gtk+:3 harfbuzz? ( media-libs/harfbuzz:0= ) m17n-lib? ( >=dev-libs/libotf-0.9.4 >=dev-libs/m17n-lib-1.5.1 ) ) ) !gtk? ( x11-libs/libICE x11-libs/libSM x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXext x11-libs/libXfixes x11-libs/libXi x11-libs/libXinerama x11-libs/libXrandr x11-libs/libxcb x11-libs/xcb-util x11-misc/xbitmaps xpm? ( x11-libs/libXpm ) xft? ( media-libs/fontconfig media-libs/freetype x11-libs/libXrender cairo? ( >=x11-libs/cairo-1.12.18[X] ) !cairo? ( x11-libs/libXft ) harfbuzz? ( media-libs/harfbuzz:0= ) m17n-lib? ( >=dev-libs/libotf-0.9.4 >=dev-libs/m17n-lib-1.5.1 ) ) gtk? ( x11-libs/gtk+:3 ) !gtk? ( motif? ( >=x11-libs/motif-2.3:0 x11-libs/libXpm x11-libs/libXmu x11-libs/libXt ) !motif? ( Xaw3d? ( x11-libs/libXaw3d x11-libs/libXmu x11-libs/libXt ) !Xaw3d? ( athena? ( x11-libs/libXaw x11-libs/libXmu x11-libs/libXt ) ) ) ) ) X? ( x11-libs/libICE x11-libs/libSM x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXext x11-libs/libXfixes x11-libs/libXi x11-libs/libXinerama x11-libs/libXrandr x11-libs/libxcb x11-libs/xcb-util x11-misc/xbitmaps xpm? ( x11-libs/libXpm ) xft? ( media-libs/fontconfig media-libs/freetype x11-libs/libXrender cairo? ( >=x11-libs/cairo-1.12.18[X] ) !cairo? ( x11-libs/libXft ) harfbuzz? ( media-libs/harfbuzz:0= ) m17n-lib? ( >=dev-libs/libotf-0.9.4 >=dev-libs/m17n-lib-1.5.1 ) ) gtk? ( x11-libs/gtk+:3 ) !gtk? ( motif? ( >=x11-libs/motif-2.3:0 x11-libs/libXpm x11-libs/libXmu x11-libs/libXt ) !motif? ( Xaw3d? ( x11-libs/libXaw3d x11-libs/libXmu x11-libs/libXt ) !Xaw3d? ( athena? ( x11-libs/libXaw x11-libs/libXmu x11-libs/libXt ) ) ) ) ) ) ) gui? ( !aqua? ( !gtk? ( x11-base/xorg-proto ) X? ( x11-base/xorg-proto ) ) )
|
||||
DESCRIPTION=The extensible, customizable, self-documenting real-time display editor
|
||||
EAPI=8
|
||||
HOMEPAGE=https://www.gnu.org/software/emacs/
|
||||
IDEPEND=app-eselect/eselect-emacs
|
||||
INHERIT=autotools elisp-common flag-o-matic readme.gentoo-r1 toolchain-funcs
|
||||
IUSE=acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source sqlite ssl svg systemd +threads tiff toolkit-scroll-bars tree-sitter valgrind webp wide-int +X Xaw3d xft +xpm zlib
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos
|
||||
LICENSE=GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2
|
||||
RDEPEND=app-emacs/emacs-common[games?,gui(-)?] sys-libs/ncurses:0= acl? ( virtual/acl ) alsa? ( media-libs/alsa-lib ) dbus? ( sys-apps/dbus ) games? ( acct-group/gamestat ) gmp? ( dev-libs/gmp:0= ) gpm? ( sys-libs/gpm ) !inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) ) jit? ( sys-devel/gcc:=[jit(-)] sys-libs/zlib ) json? ( dev-libs/jansson:= ) kerberos? ( virtual/krb5 ) lcms? ( media-libs/lcms:2 ) libxml2? ( >=dev-libs/libxml2-2.2.0 ) mailutils? ( net-mail/mailutils[clients] ) !mailutils? ( acct-group/mail net-libs/liblockfile ) selinux? ( sys-libs/libselinux ) sqlite? ( dev-db/sqlite:3 ) ssl? ( net-libs/gnutls:0= ) systemd? ( sys-apps/systemd ) tree-sitter? ( dev-libs/tree-sitter:= ) valgrind? ( dev-debug/valgrind ) zlib? ( sys-libs/zlib ) gui? ( gif? ( media-libs/giflib:0= ) jpeg? ( media-libs/libjpeg-turbo:0= ) png? ( >=media-libs/libpng-1.4:0= ) svg? ( >=gnome-base/librsvg-2.0 ) tiff? ( media-libs/tiff:= ) webp? ( media-libs/libwebp:0= ) imagemagick? ( media-gfx/imagemagick:0=[jpeg?,png?,svg?,tiff?] ) !aqua? ( gsettings? ( app-emacs/emacs-common[gsettings(-)] >=dev-libs/glib-2.28.6 ) gtk? ( !X? ( media-libs/fontconfig media-libs/freetype >=x11-libs/cairo-1.12.18 x11-libs/gtk+:3 harfbuzz? ( media-libs/harfbuzz:0= ) m17n-lib? ( >=dev-libs/libotf-0.9.4 >=dev-libs/m17n-lib-1.5.1 ) ) ) !gtk? ( x11-libs/libICE x11-libs/libSM x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXext x11-libs/libXfixes x11-libs/libXi x11-libs/libXinerama x11-libs/libXrandr x11-libs/libxcb x11-libs/xcb-util x11-misc/xbitmaps xpm? ( x11-libs/libXpm ) xft? ( media-libs/fontconfig media-libs/freetype x11-libs/libXrender cairo? ( >=x11-libs/cairo-1.12.18[X] ) !cairo? ( x11-libs/libXft ) harfbuzz? ( media-libs/harfbuzz:0= ) m17n-lib? ( >=dev-libs/libotf-0.9.4 >=dev-libs/m17n-lib-1.5.1 ) ) gtk? ( x11-libs/gtk+:3 ) !gtk? ( motif? ( >=x11-libs/motif-2.3:0 x11-libs/libXpm x11-libs/libXmu x11-libs/libXt ) !motif? ( Xaw3d? ( x11-libs/libXaw3d x11-libs/libXmu x11-libs/libXt ) !Xaw3d? ( athena? ( x11-libs/libXaw x11-libs/libXmu x11-libs/libXt ) ) ) ) ) X? ( x11-libs/libICE x11-libs/libSM x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXext x11-libs/libXfixes x11-libs/libXi x11-libs/libXinerama x11-libs/libXrandr x11-libs/libxcb x11-libs/xcb-util x11-misc/xbitmaps xpm? ( x11-libs/libXpm ) xft? ( media-libs/fontconfig media-libs/freetype x11-libs/libXrender cairo? ( >=x11-libs/cairo-1.12.18[X] ) !cairo? ( x11-libs/libXft ) harfbuzz? ( media-libs/harfbuzz:0= ) m17n-lib? ( >=dev-libs/libotf-0.9.4 >=dev-libs/m17n-lib-1.5.1 ) ) gtk? ( x11-libs/gtk+:3 ) !gtk? ( motif? ( >=x11-libs/motif-2.3:0 x11-libs/libXpm x11-libs/libXmu x11-libs/libXt ) !motif? ( Xaw3d? ( x11-libs/libXaw3d x11-libs/libXmu x11-libs/libXt ) !Xaw3d? ( athena? ( x11-libs/libXaw x11-libs/libXmu x11-libs/libXt ) ) ) ) ) ) ) app-eselect/eselect-emacs
|
||||
SLOT=29
|
||||
SRC_URI=mirror://gnu/emacs/emacs-29.4.tar.xz https://dev.gentoo.org/~ulm/emacs/emacs-29.4-patches-3.tar.xz
|
||||
_eclasses_=autotools 7d91cc798a8afd8f4e0c6e9587296ebe elisp-common abb2dda42f680fce87602c8273f832c7 flag-o-matic f14aba975c94ccaa9f357a27e3b17ffe gnuconfig ddeb9f8caff1b5f71a09c75b7534df79 libtool 6b28392a775f807c8be5fc7ec9a605b9 multilib b2a329026f2e404e9e371097dda47f96 readme.gentoo-r1 b045f3acf546393ab6b3170781875358 toolchain-funcs d3d42b22a610ce81c267b644bcec9b87
|
||||
_md5_=4eba4813f0d1f4b8f36ab4928748e16e
|
Binary file not shown.
Binary file not shown.
@ -1,14 +0,0 @@
|
||||
DEFINED_PHASES=install postinst
|
||||
DESCRIPTION=Command-not-found handler for Gentoo
|
||||
EAPI=8
|
||||
HOMEPAGE=https://github.com/Nowa-Ammerlaan/command-not-found-gentoo
|
||||
INHERIT=optfeature python-r1
|
||||
IUSE=python_targets_python3_10 python_targets_python3_11 python_targets_python3_12
|
||||
KEYWORDS=~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv sparc x86
|
||||
LICENSE=GPL-2+
|
||||
RDEPEND=python_targets_python3_10? ( dev-lang/python:3.10 ) python_targets_python3_11? ( dev-lang/python:3.11 ) python_targets_python3_12? ( dev-lang/python:3.12 )
|
||||
REQUIRED_USE=|| ( python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 )
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/Nowa-Ammerlaan/command-not-found-gentoo/archive/0.0.6.tar.gz -> command-not-found-0.0.6.tar.gz
|
||||
_eclasses_=multibuild 4650a65187015567b4e041bb9bfdb364 multilib b2a329026f2e404e9e371097dda47f96 multiprocessing 1e32df7deee68372153dca65f4a7c21f optfeature 222cb475c5a4f7ae7cfb0bf510a6fe54 out-of-source-utils dbf9e34ee8964084651e25907fa8f52c python-r1 2def7a4ce233dfa344f613025c619a23 python-utils-r1 2fee95c11e5f883024588d4837db6802 toolchain-funcs d3d42b22a610ce81c267b644bcec9b87
|
||||
_md5_=dd5a68536eea6055c32e8c57c5c9276c
|
Binary file not shown.
@ -0,0 +1,16 @@
|
||||
BDEPEND=dev-build/autoconf-archive app-alternatives/awk virtual/pkgconfig jit? ( llvm_slot_18? ( sys-devel/clang:18 sys-devel/llvm:18 ) ) verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) >=app-portage/elt-patches-20240116 sys-devel/gnuconfig || ( >=dev-build/automake-1.17-r1:1.17 >=dev-build/automake-1.16.5:1.16 ) || ( >=dev-build/autoconf-2.72-r1:2.72 >=dev-build/autoconf-2.71-r6:2.71 ) verify-sig? ( app-crypt/gnupg >=app-portage/gemato-20 )
|
||||
DEFINED_PHASES=compile configure install prepare pretend setup test unpack
|
||||
DEPEND=app-arch/bzip2:= app-arch/xz-utils:= >=dev-libs/expat-2.1:= dev-libs/libffi:= dev-libs/mpdecimal:= dev-python/gentoo-common >=sys-libs/zlib-1.1.3:= 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? ( net-wireless/bluez ) test? ( dev-python/ensurepip-pip dev-python/ensurepip-setuptools dev-python/ensurepip-wheel ) valgrind? ( dev-debug/valgrind )
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=8
|
||||
HOMEPAGE=https://www.python.org/ https://github.com/python/cpython/
|
||||
INHERIT=autotools check-reqs flag-o-matic linux-info llvm-r1 multiprocessing pax-utils python-utils-r1 toolchain-funcs verify-sig
|
||||
IUSE=bluetooth build debug +ensurepip examples gdbm jit libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind +llvm_slot_18 verify-sig
|
||||
LICENSE=PSF-2
|
||||
RDEPEND=app-arch/bzip2:= app-arch/xz-utils:= >=dev-libs/expat-2.1:= dev-libs/libffi:= dev-libs/mpdecimal:= dev-python/gentoo-common >=sys-libs/zlib-1.1.3:= 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 ) !build? ( app-misc/mime-types )
|
||||
REQUIRED_USE=jit? ( ^^ ( llvm_slot_18 ) )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.14
|
||||
SRC_URI=https://www.python.org/ftp/python/3.14.0/Python-3.14.0a2.tar.xz https://dev.gentoo.org/~mgorny/dist/python/python-gentoo-patches-3.14.0a2.tar.xz verify-sig? ( https://www.python.org/ftp/python/3.14.0/Python-3.14.0a2.tar.xz.sigstore )
|
||||
_eclasses_=autotools 7d91cc798a8afd8f4e0c6e9587296ebe check-reqs 2a9731073c152554078a9a8df8fc0f1b flag-o-matic f14aba975c94ccaa9f357a27e3b17ffe gnuconfig ddeb9f8caff1b5f71a09c75b7534df79 libtool 6b28392a775f807c8be5fc7ec9a605b9 linux-info ea4122ba1d8791a12b78e53f9510a2e3 llvm-r1 c6f5dcc9d729a7028f3884ff342d280c llvm-utils c989cff79c0976415f459e367a83dff9 multilib b2a329026f2e404e9e371097dda47f96 multiprocessing 1e32df7deee68372153dca65f4a7c21f pax-utils 5555f2e75744739fe100ee62c22d28fe python-utils-r1 2fee95c11e5f883024588d4837db6802 toolchain-funcs d3d42b22a610ce81c267b644bcec9b87 verify-sig 745dccb7d4656514f1e966cce314d7db
|
||||
_md5_=7e1becc1b5d281316ac66dfa25f83849
|
@ -0,0 +1,16 @@
|
||||
BDEPEND=dev-build/autoconf-archive app-alternatives/awk virtual/pkgconfig jit? ( llvm_slot_18? ( sys-devel/clang:18 sys-devel/llvm:18 ) ) verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) >=app-portage/elt-patches-20240116 sys-devel/gnuconfig || ( >=dev-build/automake-1.17-r1:1.17 >=dev-build/automake-1.16.5:1.16 ) || ( >=dev-build/autoconf-2.72-r1:2.72 >=dev-build/autoconf-2.71-r6:2.71 ) verify-sig? ( app-crypt/gnupg >=app-portage/gemato-20 )
|
||||
DEFINED_PHASES=compile configure install prepare pretend setup test unpack
|
||||
DEPEND=app-arch/bzip2:= app-arch/xz-utils:= >=dev-libs/expat-2.1:= dev-libs/libffi:= dev-libs/mpdecimal:= dev-python/gentoo-common >=sys-libs/zlib-1.1.3:= 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? ( net-wireless/bluez ) test? ( dev-python/ensurepip-pip dev-python/ensurepip-setuptools dev-python/ensurepip-wheel ) valgrind? ( dev-debug/valgrind )
|
||||
DESCRIPTION=Freethreading (no-GIL) version of Python programming language
|
||||
EAPI=8
|
||||
HOMEPAGE=https://www.python.org/ https://github.com/python/cpython/
|
||||
INHERIT=autotools check-reqs flag-o-matic linux-info llvm-r1 multiprocessing pax-utils python-utils-r1 toolchain-funcs verify-sig
|
||||
IUSE=bluetooth build debug +ensurepip examples gdbm jit libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind +llvm_slot_18 verify-sig
|
||||
LICENSE=PSF-2
|
||||
RDEPEND=app-arch/bzip2:= app-arch/xz-utils:= >=dev-libs/expat-2.1:= dev-libs/libffi:= dev-libs/mpdecimal:= dev-python/gentoo-common >=sys-libs/zlib-1.1.3:= 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 ) !build? ( app-misc/mime-types )
|
||||
REQUIRED_USE=jit? ( ^^ ( llvm_slot_18 ) )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.14t
|
||||
SRC_URI=https://www.python.org/ftp/python/3.14.0/Python-3.14.0a2.tar.xz https://dev.gentoo.org/~mgorny/dist/python/python-gentoo-patches-3.14.0a2.tar.xz verify-sig? ( https://www.python.org/ftp/python/3.14.0/Python-3.14.0a2.tar.xz.sigstore )
|
||||
_eclasses_=autotools 7d91cc798a8afd8f4e0c6e9587296ebe check-reqs 2a9731073c152554078a9a8df8fc0f1b flag-o-matic f14aba975c94ccaa9f357a27e3b17ffe gnuconfig ddeb9f8caff1b5f71a09c75b7534df79 libtool 6b28392a775f807c8be5fc7ec9a605b9 linux-info ea4122ba1d8791a12b78e53f9510a2e3 llvm-r1 c6f5dcc9d729a7028f3884ff342d280c llvm-utils c989cff79c0976415f459e367a83dff9 multilib b2a329026f2e404e9e371097dda47f96 multiprocessing 1e32df7deee68372153dca65f4a7c21f pax-utils 5555f2e75744739fe100ee62c22d28fe python-utils-r1 2fee95c11e5f883024588d4837db6802 toolchain-funcs d3d42b22a610ce81c267b644bcec9b87 verify-sig 745dccb7d4656514f1e966cce314d7db
|
||||
_md5_=bb7bf4cc3835fb8d5b7a418c3b385417
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,16 +0,0 @@
|
||||
BDEPEND=>=dev-python/cython-0.29.34[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] test? ( dev-python/pytest-mock[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] dev-vcs/git ) test? ( >=dev-python/pyproject-metadata-0.7.1[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] >=dev-build/meson-0.63.0 !kernel_Darwin? ( dev-util/patchelf ) python_targets_pypy3? ( >=dev-python/tomli-1.0.0[python_targets_pypy3(-)?,python_targets_python3_10(-)?] ) python_targets_python3_10? ( >=dev-python/tomli-1.0.0[python_targets_pypy3(-)?,python_targets_python3_10(-)?] ) >=dev-python/pytest-7.4.4[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] ) python_targets_pypy3? ( dev-python/pypy3:= ) python_targets_python3_10? ( dev-lang/python:3.10 ) python_targets_python3_11? ( dev-lang/python:3.11 ) python_targets_python3_12? ( dev-lang/python:3.12 ) python_targets_python3_13? ( dev-lang/python:3.13 ) >=dev-python/gpep517-15[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?]
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DESCRIPTION=Meson PEP 517 Python build backend
|
||||
EAPI=8
|
||||
HOMEPAGE=https://pypi.org/project/meson-python/ https://github.com/mesonbuild/meson-python/
|
||||
INHERIT=distutils-r1
|
||||
IUSE=test python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 python_targets_python3_13
|
||||
KEYWORDS=~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos
|
||||
LICENSE=MIT
|
||||
RDEPEND=>=dev-python/pyproject-metadata-0.7.1[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] >=dev-build/meson-0.63.0 !kernel_Darwin? ( dev-util/patchelf ) python_targets_pypy3? ( >=dev-python/tomli-1.0.0[python_targets_pypy3(-)?,python_targets_python3_10(-)?] ) python_targets_python3_10? ( >=dev-python/tomli-1.0.0[python_targets_pypy3(-)?,python_targets_python3_10(-)?] ) python_targets_pypy3? ( dev-python/pypy3:= ) python_targets_python3_10? ( dev-lang/python:3.10 ) python_targets_python3_11? ( dev-lang/python:3.11 ) python_targets_python3_12? ( dev-lang/python:3.12 ) python_targets_python3_13? ( dev-lang/python:3.13 )
|
||||
REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 python_targets_python3_13 )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/mesonbuild/meson-python/archive/0.16.0.tar.gz -> meson-python-0.16.0.gh.tar.gz
|
||||
_eclasses_=distutils-r1 bcc61b7696f06db333c2f2db1606ed76 flag-o-matic f14aba975c94ccaa9f357a27e3b17ffe multibuild 4650a65187015567b4e041bb9bfdb364 multilib b2a329026f2e404e9e371097dda47f96 multiprocessing 1e32df7deee68372153dca65f4a7c21f ninja-utils 2df4e452cea39a9ec8fb543ce059f8d6 out-of-source-utils dbf9e34ee8964084651e25907fa8f52c python-r1 2def7a4ce233dfa344f613025c619a23 python-utils-r1 2fee95c11e5f883024588d4837db6802 toolchain-funcs d3d42b22a610ce81c267b644bcec9b87
|
||||
_md5_=2cd18fcec67a0577a6d9a5b4a80bdc88
|
@ -1,16 +0,0 @@
|
||||
BDEPEND=>=dev-python/cython-0.29.34[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] test? ( <dev-python/pyproject-metadata-0.9[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] dev-python/pytest-mock[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] dev-vcs/git ) test? ( >=dev-python/pyproject-metadata-0.7.1[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] >=dev-build/meson-0.63.0 !kernel_Darwin? ( dev-util/patchelf ) python_targets_pypy3? ( >=dev-python/tomli-1.0.0[python_targets_pypy3(-)?,python_targets_python3_10(-)?] ) python_targets_python3_10? ( >=dev-python/tomli-1.0.0[python_targets_pypy3(-)?,python_targets_python3_10(-)?] ) >=dev-python/pytest-7.4.4[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] ) python_targets_pypy3? ( dev-python/pypy3:= ) python_targets_python3_10? ( dev-lang/python:3.10 ) python_targets_python3_11? ( dev-lang/python:3.11 ) python_targets_python3_12? ( dev-lang/python:3.12 ) python_targets_python3_13? ( dev-lang/python:3.13 ) >=dev-python/gpep517-15[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?]
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DESCRIPTION=Meson PEP 517 Python build backend
|
||||
EAPI=8
|
||||
HOMEPAGE=https://pypi.org/project/meson-python/ https://github.com/mesonbuild/meson-python/
|
||||
INHERIT=distutils-r1
|
||||
IUSE=test python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 python_targets_python3_13
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos
|
||||
LICENSE=MIT
|
||||
RDEPEND=>=dev-python/pyproject-metadata-0.7.1[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] >=dev-build/meson-0.63.0 !kernel_Darwin? ( dev-util/patchelf ) python_targets_pypy3? ( >=dev-python/tomli-1.0.0[python_targets_pypy3(-)?,python_targets_python3_10(-)?] ) python_targets_python3_10? ( >=dev-python/tomli-1.0.0[python_targets_pypy3(-)?,python_targets_python3_10(-)?] ) python_targets_pypy3? ( dev-python/pypy3:= ) python_targets_python3_10? ( dev-lang/python:3.10 ) python_targets_python3_11? ( dev-lang/python:3.11 ) python_targets_python3_12? ( dev-lang/python:3.12 ) python_targets_python3_13? ( dev-lang/python:3.13 )
|
||||
REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 python_targets_python3_13 )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/mesonbuild/meson-python/archive/0.17.0.tar.gz -> meson-python-0.17.0.gh.tar.gz
|
||||
_eclasses_=distutils-r1 bcc61b7696f06db333c2f2db1606ed76 flag-o-matic f14aba975c94ccaa9f357a27e3b17ffe multibuild 4650a65187015567b4e041bb9bfdb364 multilib b2a329026f2e404e9e371097dda47f96 multiprocessing 1e32df7deee68372153dca65f4a7c21f ninja-utils 2df4e452cea39a9ec8fb543ce059f8d6 out-of-source-utils dbf9e34ee8964084651e25907fa8f52c python-r1 2def7a4ce233dfa344f613025c619a23 python-utils-r1 2fee95c11e5f883024588d4837db6802 toolchain-funcs d3d42b22a610ce81c267b644bcec9b87
|
||||
_md5_=eb1dfbadabb151e538332ab1b06ae9d7
|
@ -0,0 +1,16 @@
|
||||
BDEPEND=test? ( >=dev-python/packaging-17.1[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] >=dev-python/pytest-7.4.4[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] ) python_targets_pypy3? ( dev-python/pypy3:= ) python_targets_python3_10? ( dev-lang/python:3.10 ) python_targets_python3_11? ( dev-lang/python:3.11 ) python_targets_python3_12? ( dev-lang/python:3.12 ) python_targets_python3_13? ( dev-lang/python:3.13 ) >=dev-python/gpep517-15[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] >=dev-python/setuptools-69.0.3[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?]
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DESCRIPTION=pytest plugin to re-run tests to eliminate flaky failures
|
||||
EAPI=8
|
||||
HOMEPAGE=https://github.com/pytest-dev/pytest-rerunfailures/ https://pypi.org/project/pytest-rerunfailures/
|
||||
INHERIT=distutils-r1 pypi
|
||||
IUSE=test python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 python_targets_python3_13
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux
|
||||
LICENSE=MPL-2.0
|
||||
RDEPEND=>=dev-python/packaging-17.1[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] python_targets_pypy3? ( dev-python/pypy3:= ) python_targets_python3_10? ( dev-lang/python:3.10 ) python_targets_python3_11? ( dev-lang/python:3.11 ) python_targets_python3_12? ( dev-lang/python:3.12 ) python_targets_python3_13? ( dev-lang/python:3.13 )
|
||||
REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 python_targets_python3_13 )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=0
|
||||
SRC_URI=https://files.pythonhosted.org/packages/source/p/pytest-rerunfailures/pytest-rerunfailures-15.0.tar.gz
|
||||
_eclasses_=distutils-r1 bcc61b7696f06db333c2f2db1606ed76 flag-o-matic f14aba975c94ccaa9f357a27e3b17ffe multibuild 4650a65187015567b4e041bb9bfdb364 multilib b2a329026f2e404e9e371097dda47f96 multiprocessing 1e32df7deee68372153dca65f4a7c21f ninja-utils 2df4e452cea39a9ec8fb543ce059f8d6 out-of-source-utils dbf9e34ee8964084651e25907fa8f52c pypi ad1b21f87d117ae9bb089bdb65b8f013 python-r1 2def7a4ce233dfa344f613025c619a23 python-utils-r1 2fee95c11e5f883024588d4837db6802 toolchain-funcs d3d42b22a610ce81c267b644bcec9b87
|
||||
_md5_=2397f557dfeeaf7ded9aad4cc6698cd2
|
@ -1,16 +0,0 @@
|
||||
BDEPEND=test? ( >=dev-python/pytest-7.4.4[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] ) python_targets_pypy3? ( dev-python/pypy3:= ) python_targets_python3_10? ( dev-lang/python:3.10 ) python_targets_python3_11? ( dev-lang/python:3.11 ) python_targets_python3_12? ( dev-lang/python:3.12 ) >=dev-python/gpep517-15[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/setuptools-69.0.3[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?]
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DESCRIPTION=Standard python logging to output log data as json objects
|
||||
EAPI=8
|
||||
HOMEPAGE=https://github.com/madzak/python-json-logger/ https://pypi.org/project/python-json-logger/
|
||||
INHERIT=distutils-r1 pypi
|
||||
IUSE=test python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12
|
||||
KEYWORDS=amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86
|
||||
LICENSE=BSD
|
||||
RDEPEND=python_targets_pypy3? ( dev-python/pypy3:= ) python_targets_python3_10? ( dev-lang/python:3.10 ) python_targets_python3_11? ( dev-lang/python:3.11 ) python_targets_python3_12? ( dev-lang/python:3.12 )
|
||||
REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=0
|
||||
SRC_URI=https://files.pythonhosted.org/packages/source/p/python-json-logger/python-json-logger-2.0.7.tar.gz
|
||||
_eclasses_=distutils-r1 bcc61b7696f06db333c2f2db1606ed76 flag-o-matic f14aba975c94ccaa9f357a27e3b17ffe multibuild 4650a65187015567b4e041bb9bfdb364 multilib b2a329026f2e404e9e371097dda47f96 multiprocessing 1e32df7deee68372153dca65f4a7c21f ninja-utils 2df4e452cea39a9ec8fb543ce059f8d6 out-of-source-utils dbf9e34ee8964084651e25907fa8f52c pypi ad1b21f87d117ae9bb089bdb65b8f013 python-r1 2def7a4ce233dfa344f613025c619a23 python-utils-r1 2fee95c11e5f883024588d4837db6802 toolchain-funcs d3d42b22a610ce81c267b644bcec9b87
|
||||
_md5_=a9b097c0ee099bbb16715c8f364b99af
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue