Merge pull request #1277 from flatcar-linux/krnowak/python-transition2

Python transition: clean up stale keywords
This commit is contained in:
Krzesimir Nowak 2021-12-13 14:49:46 +01:00 committed by GitHub
commit 51c47c610c
88 changed files with 701 additions and 2231 deletions

View File

@ -3,7 +3,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_{6,7} ) PYTHON_COMPAT=( python3_{7,8,9} )
inherit autotools flag-o-matic multilib-minimal python-any-r1 systemd toolchain-funcs inherit autotools flag-o-matic multilib-minimal python-any-r1 systemd toolchain-funcs
MY_P="${P/mit-}" MY_P="${P/mit-}"

View File

@ -31,9 +31,9 @@ RDEPEND="
S="${WORKDIR}/compute-image-packages-${PV}" S="${WORKDIR}/compute-image-packages-${PV}"
src_compile() { src_compile() {
(cd "${S}" && exec python setup.py build) (cd "${S}" && exec python3 setup.py build)
} }
src_install() { src_install() {
(cd "${S}" && exec python setup.py install -O1 --skip-build --root "${D}") (cd "${S}" && exec python3 setup.py install -O1 --skip-build --root "${D}")
} }

View File

@ -1 +0,0 @@
DIST qemu-6.1.0.tar.xz 111258808 BLAKE2B 412eecf6d39debd6089b26d3b22e5d25c6c8c30d2eaf31b17c25cc2b3a1b10794a30218dfb151c78801aa295255aa974b297f1fe05b93f14334f203c2af5ccee SHA512 3378ae21c75b77ee6a759827f1fcf7b2a50a0fef07e3b0e89117108022a8d8655fa977e4d65596f4f24f7c735c6594d44b0c6f69732ea4465e88a7406b1d5d3c

View File

@ -1,3 +0,0 @@
KERNEL=="kvm", GROUP="kvm", MODE="0660"
KERNEL=="vhost-net", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-net"
KERNEL=="vhost-vsock", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-vsock"

View File

@ -1,14 +0,0 @@
# This should have the following permissions: root:qemu 0640
# allow br0
# Uncommenting the above would allow users in the 'qemu' group
# to add devices to 'br0'
# allow virbr0
# Uncommenting the above would allow users in the 'qemu' group
# to add devices to 'virbr0'
# include /etc/qemu/bob.conf
# Uncommenting the above would allow users in the 'bob' group
# to have permissions defined in it, iff it has the following
# permissions: root:bob 0640

View File

@ -1,11 +0,0 @@
--- qemu-2.11.1/include/disas/capstone.h 2018-02-14 22:53:22.000000000 +0100
+++ qemu-2.11.1/include/disas/capstone.h 2018-02-17 20:12:12.754703951 +0100
@@ -3,7 +3,7 @@
#ifdef CONFIG_CAPSTONE
-#include <capstone.h>
+#include <capstone/capstone.h>
#else

View File

@ -1,25 +0,0 @@
Do not use system's 'qemu-keymap' in native case.
--- a/meson.build
+++ b/meson.build
@@ -337,6 +337,8 @@ if 'CONFIG_LIBCAP_NG' in config_host
endif
if get_option('xkbcommon').auto() and not have_system and not have_tools
xkbcommon = not_found
+elif get_option('xkbcommon').disabled()
+ xkbcommon = not_found
else
xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'),
method: 'pkg-config', static: enable_static)
--- a/pc-bios/keymaps/meson.build
+++ b/pc-bios/keymaps/meson.build
@@ -33,7 +33,9 @@ keymaps = {
'tr': '-l tr',
}
-if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host
+if meson.is_cross_build()
native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
+elif get_option('xkbcommon').disabled()
+ native_qemu_keymap = not_found
else
native_qemu_keymap = qemu_keymap

View File

@ -1,14 +0,0 @@
Allow MAKE='make V=1' and similar.
https://bugs.gentoo.org/795678
--- a/configure
+++ b/configure
@@ -1953,7 +1953,7 @@ if test -z "$python"
then
error_exit "Python not found. Use --python=/path/to/python"
fi
-if ! has "$make"
+if ! has $make
then
error_exit "GNU make ($make) not found"
fi

View File

@ -1,21 +0,0 @@
commit 080832e4f4801a28bd1170c49e61f6a0f5f05d03
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: Tue Sep 7 12:45:12 2021 +0200
ebpf: only include in system emulators
eBPF files are being included in user emulators, which is useless and
also breaks compilation because ebpf/trace-events is only processed
if a system emulator is included in the build.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/566
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
diff --git a/ebpf/meson.build b/ebpf/meson.build
index 9cd0635370..2dd0fd8948 100644
--- a/ebpf/meson.build
+++ b/ebpf/meson.build
@@ -1 +1 @@
-common_ss.add(when: libbpf, if_true: files('ebpf_rss.c'), if_false: files('ebpf_rss-stub.c'))
+softmmu_ss.add(when: libbpf, if_true: files('ebpf_rss.c'), if_false: files('ebpf_rss-stub.c'))

View File

@ -1,26 +0,0 @@
Forward-ported from original patch for 5.2.0.
diff --git a/configure b/configure
index da2501489f..4660ee3ee5 100755
--- a/configure
+++ b/configure
@@ -516,6 +516,7 @@ ld="${LD-${cross_prefix}ld}"
ranlib="${RANLIB-${cross_prefix}ranlib}"
nm="${NM-${cross_prefix}nm}"
strip="${STRIP-${cross_prefix}strip}"
+strings="${STRINGS-${cross_prefix}strings}"
windres="${WINDRES-${cross_prefix}windres}"
pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}"
query_pkg_config() {
@@ -2380,9 +2381,9 @@ int main(int argc, char *argv[])
EOF
if compile_prog ; then
- if strings -a $TMPE | grep -q BiGeNdIaN ; then
+ if $strings -a $TMPE | grep -q BiGeNdIaN ; then
bigendian="yes"
- elif strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
+ elif $strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
bigendian="no"
else
echo big/little test failed

View File

@ -1,64 +0,0 @@
#!/sbin/openrc-run
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Enable automatic non-native program execution by the kernel.
# Defaulting to OC should be safe because it comes down to:
# - do we trust the interp itself to not be malicious? yes; we built it.
# - do we trust the programs we're running? ish; same permission as native
# binaries apply. so if user can do bad stuff natively, cross isn't worse.
: ${QEMU_BINFMT_FLAGS:=OC}
depend() {
after procfs
}
start() {
ebegin "Registering qemu-user binaries (flags: ${QEMU_BINFMT_FLAGS})"
if [ ! -d /proc/sys/fs/binfmt_misc ] ; then
modprobe -q binfmt_misc
fi
if [ ! -d /proc/sys/fs/binfmt_misc ] ; then
eend 1 "You need support for 'misc binaries' in your kernel!"
return
fi
if [ ! -f /proc/sys/fs/binfmt_misc/register ] ; then
mount -t binfmt_misc -o nodev,noexec,nosuid \
binfmt_misc /proc/sys/fs/binfmt_misc >/dev/null 2>&1
eend $? || return
fi
# Probe the native cpu type so we don't try registering them.
local cpu="$(uname -m)"
case "${cpu}" in
armv[4-9]*)
cpu="arm"
;;
i386|i486|i586|i686|i86pc|BePC|x86_64)
cpu="i386"
;;
m68k)
cpu="m68k"
;;
mips*)
cpu="mips"
;;
"Power Macintosh"|ppc|ppc64)
cpu="ppc"
;;
s390*)
cpu="s390"
;;
sh*)
cpu="sh"
;;
sparc*)
cpu="sparc"
;;
esac
# Register the interpreter for each cpu except for the native one.

View File

@ -1,14 +0,0 @@
eend 0
}
stop() {
# We unregister everything in the "qemu-xxx" namespace.
ebegin "Unregistering qemu-user binaries"
local f
for f in /proc/sys/fs/binfmt_misc/qemu-* ; do
if [ -f "${f}" ] ; then
echo '-1' > "${f}"
fi
done
eend 0
}

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>tamiko@gentoo.org</email>
<name>Matthias Maier</name>
</maintainer>
<maintainer type="person">
<email>zlogene@gentoo.org</email>
<name>Mikle Kolyada</name>
</maintainer>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
<name>Gentoo Virtualization Project</name>
</maintainer>
<use>
<flag name="accessibility">Adds support for braille displays using brltty</flag>
<flag name="aio">Enables support for Linux's Async IO</flag>
<flag name="alsa">Enable alsa output for sound emulation</flag>
<flag name="bpf">Enable eBPF support for RSS implementation.</flag>
<flag name="capstone">Enable disassembly support with <pkg>dev-libs/capstone</pkg></flag>
<flag name="curl">Support ISOs / -cdrom directives via HTTP or HTTPS.</flag>
<flag name="fdt">Enables firmware device tree support</flag>
<flag name="fuse">Enables FUSE block device export</flag>
<flag name="glusterfs">Enables GlusterFS cluster fileystem via
<pkg>sys-cluster/glusterfs</pkg></flag>
<flag name="gnutls">Enable TLS support for the VNC console server.
For 1.4 and newer this also enables WebSocket support.
For 2.0 through 2.3 also enables disk quorum support.</flag>
<flag name="iscsi">Enable direct iSCSI support via
<pkg>net-libs/libiscsi</pkg> instead of indirectly via the Linux
block layer that <pkg>sys-block/open-iscsi</pkg> does.</flag>
<flag name="io-uring">Enable efficient I/O via <pkg>sys-libs/liburing</pkg>.</flag>
<flag name="multipath">Enable multipath persistent reservation passthrough via
<pkg>sys-fs/multipath-tools</pkg>.</flag>
<flag name="ncurses">Enable the ncurses-based console</flag>
<flag name="nfs">Enable NFS support</flag>
<flag name="numa">Enable NUMA support</flag>
<flag name="pin-upstream-blobs">Pin the versions of BIOS firmware to the version included in the upstream release.
This is needed to sanely support migration/suspend/resume/snapshotting/etc... of instances.
When the blobs are different, random corruption/bugs/crashes/etc... may be observed.</flag>
<flag name="plugins">Enable qemu plugin API via shared library loading.</flag>
<flag name="pulseaudio">Enable pulseaudio output for sound emulation</flag>
<flag name="rbd">Enable rados block device backend support, see https://docs.ceph.com/en/mimic/rbd/qemu-rbd/</flag>
<flag name="sdl">Enable the SDL-based console</flag>
<flag name="sdl-image">SDL Image support for icons</flag>
<flag name="slirp">Enable TCP/IP in hypervisor via <pkg>net-libs/libslirp</pkg></flag>
<flag name="spice">Enable Spice protocol support via <pkg>app-emulation/spice</pkg></flag>
<flag name="ssh">Enable SSH based block device support via <pkg>net-libs/libssh2</pkg></flag>
<flag name="static-user">Build the User targets as static binaries</flag>
<flag name="static">Build the User and Software MMU (system) targets as well as tools as static binaries</flag>
<flag name="systemtap">Enable SystemTAP/DTrace tracing</flag>
<flag name="jemalloc">Enable jemalloc allocator support</flag>
<flag name="jpeg">Enable jpeg image support for the VNC console server</flag>
<flag name="png">Enable png image support for the VNC console server</flag>
<flag name="usb">Enable USB passthrough via <pkg>dev-libs/libusb</pkg></flag>
<flag name="usbredir">Use <pkg>sys-apps/usbredir</pkg> to redirect USB devices to another machine over TCP</flag>
<flag name="vde">Enable VDE-based networking</flag>
<flag name="vhost-net">Enable accelerated networking using vhost-net, see https://www.linux-kvm.org/page/VhostNet</flag>
<flag name="vhost-user-fs">Enable shared file system access using the FUSE protocol carried over virtio.</flag>
<flag name="virgl">Enable experimental Virgil 3d (virtual software GPU)</flag>
<flag name="virtfs">Enable VirtFS via virtio-9p-pci / fsdev. See https://wiki.qemu.org/Documentation/9psetup</flag>
<flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>) in the GTK+ interface</flag>
<flag name="xattr">Add support for getting and setting POSIX extended attributes, through
<pkg>sys-apps/attr</pkg>. Requisite for the virtfs backend.</flag>
<flag name="xen">Enables support for Xen backends</flag>
<flag name="xfs">Support xfsctl() notification and syncing for XFS backed
virtual disks.</flag>
</use>
</pkgmetadata>

View File

@ -1,912 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
PYTHON_COMPAT=( python{3_6,3_7} )
PYTHON_REQ_USE="ncurses,readline"
FIRMWARE_ABI_VERSION="6.1.0"
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
pax-utils xdg-utils
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="https://git.qemu.org/git/qemu.git"
EGIT_SUBMODULES=(
meson
tests/fp/berkeley-softfloat-3
tests/fp/berkeley-testfloat-3
ui/keycodemapdb
)
inherit git-r3
SRC_URI=""
else
SRC_URI="https://download.qemu.org/${P}.tar.xz"
KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug +doc
+fdt fuse glusterfs gnutls gtk infiniband iscsi io-uring
jack jemalloc +jpeg kernel_linux
kernel_FreeBSD lzo multipath
ncurses nfs nls numa opengl +oss +pin-upstream-blobs
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
smartcard snappy spice ssh static static-user systemtap test udev usb
usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
xfs zstd"
COMMON_TARGETS="
aarch64
alpha
arm
cris
hppa
i386
m68k
microblaze
microblazeel
mips
mips64
mips64el
mipsel
nios2
or1k
ppc
ppc64
riscv32
riscv64
s390x
sh4
sh4eb
sparc
sparc64
x86_64
xtensa
xtensaeb
"
IUSE_SOFTMMU_TARGETS="
${COMMON_TARGETS}
avr
rx
tricore
"
IUSE_USER_TARGETS="
${COMMON_TARGETS}
aarch64_be
armeb
hexagon
mipsn32
mipsn32el
ppc64abi32
ppc64le
sparc32plus
"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
RESTRICT="!test? ( test )"
# Allow no targets to be built so that people can get a tools-only build.
# Block USE flag configurations known to not work.
REQUIRED_USE="${PYTHON_REQUIRED_USE}
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_mips64el? ( fdt )
qemu_softmmu_targets_ppc64? ( fdt )
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_riscv32? ( fdt )
qemu_softmmu_targets_riscv64? ( fdt )
sdl-image? ( sdl )
static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy !udev )
static-user? ( !plugins )
vhost-user-fs? ( caps seccomp )
virgl? ( opengl )
virtfs? ( caps xattr )
vte? ( gtk )
multipath? ( udev )
plugins? ( !static !static-user )
"
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# and user/softmmu targets (qemu-*, qemu-system-*).
#
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
#
# The attr lib isn't always linked in (although the USE flag is always
# respected). This is because qemu supports using the C library's API
# when available rather than always using the external library.
ALL_DEPEND="
>=dev-libs/glib-2.0[static-libs(+)]
sys-libs/zlib[static-libs(+)]
python? ( ${PYTHON_DEPS} )
systemtap? ( dev-util/systemtap )
xattr? ( sys-apps/attr[static-libs(+)] )"
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# softmmu targets (qemu-system-*).
SOFTMMU_TOOLS_DEPEND="
dev-libs/libxml2[static-libs(+)]
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
app-accessibility/brltty[static-libs(+)]
)
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bpf? ( dev-libs/libbpf:= )
bzip2? ( app-arch/bzip2[static-libs(+)] )
capstone? ( dev-libs/capstone:= )
caps? ( sys-libs/libcap-ng[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
fdt? ( >=sys-apps/dtc-1.5.0[static-libs(+)] )
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gnutls? (
dev-libs/nettle:=[static-libs(+)]
>=net-libs/gnutls-3.0:=[static-libs(+)]
)
gtk? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.91 )
)
infiniband? (
sys-fabric/libibumad:=[static-libs(+)]
sys-fabric/libibverbs:=[static-libs(+)]
sys-fabric/librdmacm:=[static-libs(+)]
)
iscsi? ( net-libs/libiscsi )
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc )
jpeg? ( virtual/jpeg:0=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
multipath? ( sys-fs/multipath-tools )
ncurses? (
sys-libs/ncurses:=[unicode(+)]
sys-libs/ncurses:=[static-libs(+)]
)
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
opengl? (
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
media-libs/mesa[egl(+),gbm(+)]
)
png? ( media-libs/libpng:0=[static-libs(+)] )
pulseaudio? ( media-sound/pulseaudio )
rbd? ( sys-cluster/ceph )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
media-libs/libsdl2[video]
media-libs/libsdl2[static-libs(+)]
)
sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
slirp? ( net-libs/libslirp[static-libs(+)] )
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
snappy? ( app-arch/snappy:= )
spice? (
>=app-emulation/spice-protocol-0.12.3
>=app-emulation/spice-0.12.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
udev? ( virtual/libudev:= )
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virgl? ( media-libs/virglrenderer[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xen? ( app-emulation/xen-tools:= )
xfs? ( sys-fs/xfsprogs[static-libs(+)] )
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
"
EDK2_OVMF_VERSION="202105"
SEABIOS_VERSION="1.14.0"
X86_FIRMWARE_DEPEND="
pin-upstream-blobs? (
~sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}[binary]
~sys-firmware/ipxe-1.21.1[binary,qemu]
~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios]
~sys-firmware/sgabios-0.1_pre10[binary]
)
!pin-upstream-blobs? (
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
sys-firmware/ipxe[qemu]
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
sys-firmware/sgabios
)"
PPC_FIRMWARE_DEPEND="
pin-upstream-blobs? (
~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios]
)
!pin-upstream-blobs? (
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
)
"
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
sys-apps/texinfo
virtual/pkgconfig
doc? (
dev-python/sphinx[${PYTHON_USEDEP}]
dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
)
gtk? ( nls? ( sys-devel/gettext ) )
test? (
dev-libs/glib[utils]
sys-devel/bc
)
"
CDEPEND="
!static? (
${ALL_DEPEND//\[static-libs(+)]}
${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
)
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
"
DEPEND="${CDEPEND}
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
static? (
${ALL_DEPEND}
${SOFTMMU_TOOLS_DEPEND}
)
static-user? ( ${ALL_DEPEND} )"
RDEPEND="${CDEPEND}
acct-group/kvm
selinux? ( sec-policy/selinux-qemu )"
PATCHES=(
"${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
"${FILESDIR}"/${PN}-6.0.0-make.patch
"${FILESDIR}"/${PN}-6.1.0-strings.patch
"${FILESDIR}"/${P}-automagic-libbpf.patch
)
QA_PREBUILT="
usr/share/qemu/hppa-firmware.img
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/s390-netboot.img
usr/share/qemu/u-boot.e500
"
QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-x86_64
usr/bin/qemu-alpha
usr/bin/qemu-arm
usr/bin/qemu-cris
usr/bin/qemu-m68k
usr/bin/qemu-microblaze
usr/bin/qemu-microblazeel
usr/bin/qemu-mips
usr/bin/qemu-mipsel
usr/bin/qemu-or1k
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
usr/bin/qemu-ppc64abi32
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
usr/bin/qemu-sparc64
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
usr/bin/qemu-unicore32
"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
kernel module loaded before running kvm. The easiest way to ensure that the
kernel module is loaded is to load it on boot.
For AMD CPUs the module is called 'kvm-amd'.
For Intel CPUs the module is called 'kvm-intel'.
Please review /etc/conf.d/modules for how to load these.
Make sure your user is in the 'kvm' group. Just run
$ gpasswd -a <USER> kvm
then have <USER> re-login.
For brand new installs, the default permissions on /dev/kvm might not let
you access it. You can tell udev to reset ownership/perms:
$ udevadm trigger -c add /dev/kvm
If you want to register binfmt handlers for qemu user targets:
For openrc:
# rc-update add qemu-binfmt
For systemd:
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
elif use kernel_linux; then
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
ERROR_TUN+=" into your kernel or loaded as a module to use the"
ERROR_TUN+=" virtual network device if using -net tap."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
if grep -q AuthenticAMD /proc/cpuinfo; then
CONFIG_CHECK+=" ~KVM_AMD"
elif grep -q GenuineIntel /proc/cpuinfo; then
CONFIG_CHECK+=" ~KVM_INTEL"
fi
fi
use python && CONFIG_CHECK+=" ~DEBUG_FS"
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
# Now do the actual checks setup above
check_extra_config
fi
fi
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
eerror "instances are still pointing to it. Please update your"
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
eerror "and the right system binary (e.g. qemu-system-x86_64)."
die "update your virt configs to not use qemu-kvm"
fi
}
# Sanity check to make sure target lists are kept up-to-date.
check_targets() {
local var=$1 mak=$2
local detected sorted
pushd "${S}"/configs/targets/ >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
if [[ ${sorted} != "${detected}" ]] ; then
eerror "The ebuild needs to be kept in sync."
eerror "${var}: ${sorted}"
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
die "sync ${var} to the list of targets"
fi
popd >/dev/null
}
src_prepare() {
check_targets IUSE_SOFTMMU_TARGETS softmmu
check_targets IUSE_USER_TARGETS linux-user
default
# Use correct toolchain to fix cross-compiling
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
export WINDRES=${CHOST}-windres
# Verbose builds
MAKEOPTS+=" V=1"
# Remove bundled copy of libfdt
rm -r dtc || die
}
##
# configures qemu based on the build directory and the build type
# we are using.
#
qemu_src_configure() {
debug-print-function ${FUNCNAME} "$@"
local buildtype=$1
local builddir="${S}/${buildtype}-build"
mkdir "${builddir}"
local conf_opts=(
--prefix=/usr
--sysconfdir=/etc
--bindir=/usr/bin
--libdir=/usr/$(get_libdir)
--datadir=/usr/share
--docdir=/usr/share/doc/${PF}/html
--mandir=/usr/share/man
--localstatedir=/var
--disable-bsd-user
--disable-containers # bug #732972
--disable-guest-agent
--disable-strip
# bug #746752: TCG interpreter has a few limitations:
# - it does not support FPU
# - it's generally slower on non-self-modifying code
# It's advantage is support for host architectures
# where native codegeneration is not implemented.
# Gentoo has qemu keyworded only on targets with
# native code generation available. Avoid the interpreter.
--disable-tcg-interpreter
--disable-werror
# We support gnutls/nettle for crypto operations. It is possible
# to use gcrypt when gnutls/nettle are disabled (but not when they
# are enabled), but it's not really worth the hassle. Disable it
# all the time to avoid automatically detecting it. #568856
--disable-gcrypt
--python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
$(use_enable doc docs)
$(use_enable nls gettext)
$(use_enable plugins)
$(use_enable xattr attr)
)
# Disable options not used by user targets. This simplifies building
# static user targets (USE=static-user) considerably.
conf_notuser() {
if [[ ${buildtype} == "user" ]] ; then
echo "--disable-${2:-$1}"
else
use_enable "$@"
fi
}
# Enable option only for softmmu build, but not 'user' or 'tools'
conf_softmmu() {
if [[ ${buildtype} == "softmmu" ]] ; then
use_enable "$@"
else
echo "--disable-${2:-$1}"
fi
}
# Enable option only for tools build, but not 'user' or 'softmmu'
conf_tools() {
if [[ ${buildtype} == "tools" ]] ; then
use_enable "$@"
else
echo "--disable-${2:-$1}"
fi
}
conf_opts+=(
$(conf_notuser accessibility brlapi)
$(conf_notuser aio linux-aio)
$(conf_softmmu bpf)
$(conf_notuser bzip2)
$(conf_notuser capstone)
$(conf_notuser caps cap-ng)
$(conf_notuser curl)
$(conf_notuser fdt)
$(conf_notuser fuse)
$(conf_notuser glusterfs)
$(conf_notuser gnutls)
$(conf_notuser gnutls nettle)
$(conf_notuser gtk)
$(conf_notuser infiniband rdma)
$(conf_notuser iscsi libiscsi)
$(conf_notuser io-uring linux-io-uring)
$(conf_notuser jemalloc jemalloc)
$(conf_notuser jpeg vnc-jpeg)
$(conf_notuser kernel_linux kvm)
$(conf_notuser lzo)
$(conf_notuser multipath mpath)
$(conf_notuser ncurses curses)
$(conf_notuser nfs libnfs)
$(conf_notuser numa)
$(conf_notuser opengl)
$(conf_notuser png vnc-png)
$(conf_notuser rbd)
$(conf_notuser sasl vnc-sasl)
$(conf_notuser sdl)
$(conf_softmmu sdl-image)
$(conf_notuser seccomp)
$(conf_notuser slirp slirp system)
$(conf_notuser smartcard)
$(conf_notuser snappy)
$(conf_notuser spice)
$(conf_notuser ssh libssh)
$(conf_notuser udev libudev)
$(conf_notuser usb libusb)
$(conf_notuser usbredir usb-redir)
$(conf_notuser vde)
$(conf_notuser vhost-net)
$(conf_notuser vhost-user-fs)
$(conf_tools vhost-user-fs virtiofsd)
$(conf_notuser virgl virglrenderer)
$(conf_softmmu virtfs)
$(conf_notuser vnc)
$(conf_notuser vte)
$(conf_notuser xen)
$(conf_notuser xen xen-pci-passthrough)
$(conf_notuser xfs xfsctl)
# use prebuilt keymaps, bug #759604
--disable-xkbcommon
$(conf_notuser zstd)
)
if [[ ${buildtype} == "user" ]] ; then
conf_opts+=( --disable-libxml2 )
else
conf_opts+=( --enable-libxml2 )
fi
if [[ ! ${buildtype} == "user" ]] ; then
# audio options
local audio_opts=(
# Note: backend order matters here: #716202
# We iterate from higher-level to lower level.
$(usex pulseaudio pa "")
$(usev jack)
$(usev sdl)
$(usev alsa)
$(usev oss)
)
conf_opts+=(
--audio-drv-list=$(printf "%s," "${audio_opts[@]}")
)
fi
case ${buildtype} in
user)
conf_opts+=(
--enable-linux-user
--disable-system
--disable-blobs
--disable-tools
)
local static_flag="static-user"
;;
softmmu)
conf_opts+=(
--disable-linux-user
--enable-system
--disable-tools
)
local static_flag="static"
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
--disable-blobs
--enable-tools
)
local static_flag="static"
;;
esac
local targets="${buildtype}_targets"
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
# Add support for SystemTAP
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
# We always want to attempt to build with PIE support as it results
# in a more secure binary. But it doesn't work with static or if
# the current GCC doesn't have PIE support.
if use ${static_flag}; then
conf_opts+=( --static --disable-pie )
else
tc-enables-pie && conf_opts+=( --enable-pie )
fi
# Meson will not use a cross-file unless cross_prefix is set.
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
# Plumb through equivalent of EXTRA_ECONF to allow experiments
# like bug #747928.
conf_opts+=( ${EXTRA_CONF_QEMU} )
echo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
# FreeBSD's kernel does not support QEMU assigning/grabbing
# host USB devices yet
use kernel_FreeBSD && \
sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
}
src_configure() {
local target
python_setup
softmmu_targets= softmmu_bins=()
user_targets= user_bins=()
for target in ${IUSE_SOFTMMU_TARGETS} ; do
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
fi
done
for target in ${IUSE_USER_TARGETS} ; do
if use "qemu_user_targets_${target}"; then
user_targets+=",${target}-linux-user"
user_bins+=( "qemu-${target}" )
fi
done
softmmu_targets=${softmmu_targets#,}
user_targets=${user_targets#,}
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
[[ -n ${user_targets} ]] && qemu_src_configure "user"
qemu_src_configure "tools"
}
src_compile() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
default
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
default
fi
cd "${S}/tools-build"
default
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
pax-mark m */qemu-system-* #515550
emake check
fi
}
qemu_python_install() {
python_domodule "${S}/python/qemu"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
python_doscript "${S}/scripts/qmp/qemu-ga-client"
}
# Generate binfmt support files.
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
generate_initd() {
local out="${T}/qemu-binfmt"
local out_systemd="${T}/qemu.conf"
local d="${T}/binfmt.d"
einfo "Generating qemu binfmt scripts and configuration files"
# Generate the debian fragments first.
mkdir -p "${d}"
"${S}"/scripts/qemu-binfmt-conf.sh \
--debian \
--exportdir "${d}" \
--qemu-path "${EPREFIX}/usr/bin" \
|| die
# Then turn the fragments into a shell script we can source.
sed -E -i \
-e 's:^([^ ]+) (.*)$:\1="\2":' \
"${d}"/* || die
# Generate the init.d script by assembling the fragments from above.
local f qcpu package interpreter magic mask
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
for f in "${d}"/qemu-* ; do
source "${f}"
# Normalize the cpu logic like we do in the init.d for the native cpu.
qcpu=${package#qemu-}
case ${qcpu} in
arm*) qcpu="arm";;
mips*) qcpu="mips";;
ppc*) qcpu="ppc";;
s390*) qcpu="s390";;
sh*) qcpu="sh";;
sparc*) qcpu="sparc";;
esac
# we use 'printf' here to be portable across 'sh'
# implementations: #679168
cat <<EOF >>"${out}"
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
fi
EOF
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
done
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
}
src_install() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
emake DESTDIR="${ED}" install
# Install binfmt handler init script for user targets.
generate_initd
doinitd "${T}/qemu-binfmt"
# Install binfmt/qemu.conf.
insinto "/usr/share/qemu/binfmt.d"
doins "${T}/qemu.conf"
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
emake DESTDIR="${ED}" install
# This might not exist if the test failed. #512010
[[ -e check-report.html ]] && dodoc check-report.html
if use kernel_linux; then
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
fi
if use python; then
python_foreach_impl qemu_python_install
fi
fi
cd "${S}/tools-build"
emake DESTDIR="${ED}" install
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
pushd "${ED}"/usr/bin >/dev/null
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
popd >/dev/null
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
cd "${S}"
dodoc MAINTAINERS docs/specs/pci-ids.txt
newdoc pc-bios/README README.pc-bios
# Disallow stripping of prebuilt firmware files.
dostrip -x ${QA_PREBUILT}
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
rm "${ED}/usr/share/qemu/bios.bin"
rm "${ED}/usr/share/qemu/bios-256k.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
fi
# Remove vgabios since we're using the seavgabios packaged one
rm "${ED}/usr/share/qemu/vgabios.bin"
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
# PPC/PPC64 loads vgabios-stdvga
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
fi
# Remove sgabios since we're using the sgabios packaged one
rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
fi
fi
DISABLE_AUTOFORMATTING=true
readme.gentoo_create_doc
}
firmware_abi_change() {
local pv
for pv in ${REPLACING_VERSIONS}; do
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
return 0
fi
done
return 1
}
pkg_postinst() {
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
udev_reload
fi
xdg_icon_cache_update
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
fcaps cap_net_admin ${EROOT}/usr/libexec/qemu-bridge-helper
DISABLE_AUTOFORMATTING=true
readme.gentoo_print_elog
if use pin-upstream-blobs && firmware_abi_change; then
ewarn "This version of qemu pins new versions of firmware blobs:"
ewarn " $(best_version sys-firmware/edk2-ovmf)"
ewarn " $(best_version sys-firmware/ipxe)"
ewarn " $(best_version sys-firmware/seabios)"
ewarn " $(best_version sys-firmware/sgabios)"
ewarn "This might break resume of hibernated guests (started with a different"
ewarn "firmware version) and live migration to/from qemu versions with different"
ewarn "firmware. Please (cold) restart all running guests. For functional"
ewarn "guest migration ensure that all"
ewarn "hosts run at least"
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
fi
}
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
echo " $(best_version sys-firmware/edk2-ovmf)"
if has_version 'sys-firmware/edk2-ovmf[binary]'; then
echo " USE=binary"
else
echo " USE=''"
fi
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/seabios)"
if has_version 'sys-firmware/seabios[binary]'; then
echo " USE=binary"
else
echo " USE=''"
fi
echo " $(best_version sys-firmware/sgabios)"
}
pkg_postrm() {
xdg_icon_cache_update
}

View File

@ -15,7 +15,7 @@ IUSE=""
# Depending on specific version of python-oem allows us to notice when # Depending on specific version of python-oem allows us to notice when
# we update the major version of python and then to make sure that we # we update the major version of python and then to make sure that we
# install the package in correctly versioned site-packages directory. # install the package in correctly versioned site-packages directory.
DEP_PYVER="3.6" DEP_PYVER="3.9"
RDEPEND=" RDEPEND="
dev-lang/python-oem:${DEP_PYVER} dev-lang/python-oem:${DEP_PYVER}

View File

@ -4,7 +4,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
inherit multilib python-any-r1 systemd toolchain-funcs inherit multilib python-any-r1 systemd toolchain-funcs

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
inherit python-any-r1 systemd inherit python-any-r1 systemd
RTM_NAME="NSS_${PV//./_}_RTM" RTM_NAME="NSS_${PV//./_}_RTM"

View File

@ -0,0 +1 @@
- Python for OEM images (Azure) ([3.9.8](https://www.python.org/downloads/release/python-398/))

View File

@ -14,7 +14,7 @@ else
KEYWORDS="amd64 arm arm64 x86" KEYWORDS="amd64 arm arm64 x86"
fi fi
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
inherit cros-workon systemd python-any-r1 inherit cros-workon systemd python-any-r1

View File

@ -14,7 +14,7 @@ else
KEYWORDS="amd64 arm arm64 x86" KEYWORDS="amd64 arm arm64 x86"
fi fi
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
inherit cros-workon python-single-r1 inherit cros-workon python-single-r1

View File

@ -32,7 +32,7 @@ RDEPEND="${RDEPEND}
app-arch/sharutils app-arch/sharutils
app-arch/unzip app-arch/unzip
app-emulation/qemu app-emulation/qemu
=dev-lang/python-2* =dev-lang/python-3*
dev-python/setuptools dev-python/setuptools
dev-lang/nasm dev-lang/nasm
dev-lang/swig dev-lang/swig
@ -48,7 +48,6 @@ RDEPEND="${RDEPEND}
dev-libs/libyaml dev-libs/libyaml
dev-libs/nspr dev-libs/nspr
dev-libs/protobuf dev-libs/protobuf
dev-python/ctypesgen
dev-python/mako dev-python/mako
sys-devel/bc sys-devel/bc
dev-util/gdbus-codegen dev-util/gdbus-codegen

View File

@ -22,6 +22,7 @@ DEPEND="
app-emulation/acbuild app-emulation/acbuild
app-emulation/actool app-emulation/actool
app-emulation/open-vmdk app-emulation/open-vmdk
app-eselect/eselect-python
app-misc/jq app-misc/jq
app-shells/bash-completion app-shells/bash-completion
coreos-base/hard-host-depends coreos-base/hard-host-depends
@ -34,7 +35,7 @@ DEPEND="
dev-util/boost-build dev-util/boost-build
dev-util/catalyst dev-util/catalyst
dev-util/checkbashisms dev-util/checkbashisms
dev-util/dwarves dev-util/pahole
dev-util/patchelf dev-util/patchelf
dev-vcs/repo dev-vcs/repo
net-dns/bind-tools net-dns/bind-tools

View File

@ -1,2 +1,2 @@
DIST Python-3.6.5.tar.xz 17049912 BLAKE2B f393e9563a18a46c457afcd2e174d9eacda20fe2b0ae5461e11c582fa4d27b85c01bbe7b602f45511b6b44f635c6330205b12fb3e8325ffd07e87b78a8258889 SHA512 6b26fcd296b9bd8e67861eff10d14db7507711ddba947288d16d6def53135c39326b7f969c04bb2b2993f924d9e7ad3f5c5282a3915760bc0885cf0a8ea5eb51 DIST Python-3.9.8.tar.xz 19149464 BLAKE2B 739eb22bae8b44cf5be9a24ca6ecacb80eaca65684abf1fef18b7adcac9adede2eff60e8a9ac5db2672511d180d6079c39e2ff2901ab454c0876ae8e1bfe96cc SHA512 5d5b46a242525b2e6a7f9c69c63c6d7cd985e1443a7d9b716107e75f14fef7b5c9c2e5e8a90adbbbf5f7a8b90a483d01e18c1732470e6e54b611b5aba9f99fe1
DIST python-gentoo-patches-3.6.4.tar.xz 12888 BLAKE2B 7cf49ae22df53e855f2e99df51686b5d4bd0da82ef4c22836e24726ea9ed561808352c0305a5659b052d38b843f1ff61b6466a7bc3673b7e5cfb4d81d22fa4bc SHA512 90a1b685f2539872ffd67f96581f70145b7afaf18af19f4a7f4a61214103d2a10bf0069c1769dac229ae011fceaf8538f041082b33c1671905246d018d184dd7 DIST python-gentoo-patches-3.9.8.tar.xz 13192 BLAKE2B 995bead7e87b1d2eb9984012065c0f752d51e5a78dd9019270e071f83660cdab71c39e5be0104919f5af9089dede71d9c918a521f76e67c6ef1aeab5ffb58991 SHA512 80dfa3766bb5546924a5fccf4f469ce409cb8a4b0873c3d2fb737b3eb27b7c2b29337e0179624bbe077273b8e475f7921d6479ca7eb8e31ba423d0cea2f3d1cf

View File

@ -1,65 +1,80 @@
Modifications made: Modifications made:
- Drop python updater and eselect python stuff (so the pkg_ functions). - We are not running any tests, so drop the `test` use flag and
`src_test` function. Drop also `pkg_pretend` and `pkg_setup`
functions as they were only doing some stuff if `test` use flag was
enabled.
- Drop src_test and the test use flag. - Fix a path to a patchset that was using a `${PN}` variable, but
expected it to be `python` while our package is actually
- Rename one patch in PATCHES variable, so I don't need to rename the `python-oem`.
file (the name in ebuild was using `${PN}`, which in
`dev-lang/python` expands to `python`, whereas in
`dev-lang/python-oem` it would expand to `python-oem`).
- Drop the following use flags and simplify the ebuild assuming that - Drop the following use flags and simplify the ebuild assuming that
they were disabled: examples, gdbm, libressl, ncurses, sqlite, ssl, they were disabled: `bluetooth examples gdbm ncurses readline sqlite
tk, wininst. ssl tk wininst`.
- Drop the following use flags and simplify the ebuild assuming that - Drop the following use flags and simplify the ebuild assuming that
they were enabled: build, ipv6, threads. they were enabled: `build`.
- Drop xml use flag, but keep the internal copies of expat, do not - Drop `xml` use flag. Drop the dependency on expat, but instead keep
disable _elementtree and pyexpat modules and tell the configure the internal copy of expat, so we keep `_elementtree` and `pyexpat`
script to use the internal stuff. modules enabled. Finally tell the configure script to use the
internal stuff (by passing the `--without-system-expat` flag).
- Keep using internal libffi, instead of depending on system-provided - Drop the dependency on libffi, instead keep using internal libffi
libffi. and tell the configure script to use internal stuff (by passing the
`--without-system-ffi` flag).
- Move RDEPEND to DEPEND, so RDEPEND remains empty. OEM packages are - Rename `RDEPEND` to `DEPEND`, so `RDEPEND` remains empty. OEM
installed after prod images are pruned of the previously installed packages are installed after production images are pruned of the
package database. previously installed package database.
- Make the following changes in configure flags: - Make the following changes in configure flags:
- Add --prefix=/usr/share/oem/python to the myeconfargs variable. - Add `--prefix=/usr/share/oem/python` to the `myeconfargs` variable.
- Change --enable-shared to --disable-shared. - To make sure that python library ends up where we want (for
example, in `lib64` instead of `lib`, because in this prefix, we
have no symlinks from `lib` to `lib64`), add
`--with-platlibdir=$(get_libdir)` to the `myeconfargs` variable.
- Set --mandir, --infodir and --includedir to some subdirectory of - Change `--enable-shared` to `--disable-shared`.
/discard, so during installation this could be easily removed.
- Set `--mandir`, `--infodir` and `--includedir` to some subdirectory of
`/discard`, so during installation this could be easily removed.
- Drop `--enable-loadable-sqlite-extensions` flag.
- Export some configure variables for the cross-compilation: - Export some configure variables for the cross-compilation:
ac_cv_file__dev_ptc and ac_cv_file__dev_ptmx. If not done, build `ac_cv_file__dev_ptc` and `ac_cv_file__dev_ptmx`. If not done, build
will fail with a message saying that these should be set to either will fail with a message saying that these should be set to either
yes or no. yes or no.
- Simplify src_install: - Drop pax stuff (search for `pax-utils` and `pax-mark`) - it's noop
on Flatcar.
- Replace the hardcoded ${ED}/usr/bin with bindir variable set to - Simplify `src_install`:
${ED}/usr/share/oem/python/bin.
- Create versionless links (python and python3) to python executable. - Replace the hardcoded `${ED}/usr` with `${ED}/usr/share/oem/python`.
- Drop sed stuff mucking with LDFLAGS. - Drop sed stuff mucking with `LDFLAGS`.
- Drop collision fixes. - Drop collision fixes.
- Drop ABIFLAGS hack. - Drop `ABIFLAGS` hack.
- Do not install ACKS, HISTORY and NEWS files. - Do not install ACKS, HISTORY and NEWS files.
- Drop gdb autoload stuff. - Drop gdb autoload stuff.
- Drop pydoc.{conf,init} stuff. - Drop `pydoc.{conf,init}` stuff.
- Drop `epython.py` stuff.
- Drop python-exec stuff. - Drop python-exec stuff.
- Remove installed stuff in /discard. - Just everything below that involves `${scriptdir}`.
- Create versionless links (python and python3) to python executable.
- Remove installed stuff in `/discard`.

View File

@ -1,11 +0,0 @@
--- a/setup.py
+++ b/setup.py
@@ -1364,7 +1364,7 @@ class PyBuildExt(build_ext):
else:
missing.extend(['resource', 'termios'])
- nis = self._detect_nis(inc_dirs, lib_dirs)
+ nis = None
if nis is not None:
exts.append(nis)
else:

View File

@ -1,80 +0,0 @@
From 90507018442f9adabb586fd3d0a0206b9c2f2f50 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Sun, 5 Jun 2016 08:18:01 +0200
Subject: [PATCH] distutils: make -OO enable both opt-1 and opt-2 optimization
Bug: http://bugs.python.org/issue27226
Bug: https://bugs.gentoo.org/585060
---
Lib/distutils/command/build_py.py | 8 ++++----
Lib/distutils/command/install_lib.py | 12 ++++++------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/Lib/distutils/command/build_py.py b/Lib/distutils/command/build_py.py
index cf0ca57..838d4e4 100644
--- a/Lib/distutils/command/build_py.py
+++ b/Lib/distutils/command/build_py.py
@@ -315,9 +315,9 @@ class build_py (Command):
if self.compile:
outputs.append(importlib.util.cache_from_source(
filename, optimization=''))
- if self.optimize > 0:
+ for opt in range(1, self.optimize + 1):
outputs.append(importlib.util.cache_from_source(
- filename, optimization=self.optimize))
+ filename, optimization=opt))
outputs += [
os.path.join(build_dir, filename)
@@ -387,8 +387,8 @@ class build_py (Command):
if self.compile:
byte_compile(files, optimize=0,
force=self.force, prefix=prefix, dry_run=self.dry_run)
- if self.optimize > 0:
- byte_compile(files, optimize=self.optimize,
+ for opt in range(1, self.optimize + 1):
+ byte_compile(files, optimize=opt,
force=self.force, prefix=prefix, dry_run=self.dry_run)
class build_py_2to3(build_py, Mixin2to3):
diff --git a/Lib/distutils/command/install_lib.py b/Lib/distutils/command/install_lib.py
index 6154cf0..049b662 100644
--- a/Lib/distutils/command/install_lib.py
+++ b/Lib/distutils/command/install_lib.py
@@ -24,8 +24,8 @@ class install_lib(Command):
# 2) compile .pyc only (--compile --no-optimize; default)
# 3) compile .pyc and "opt-1" .pyc (--compile --optimize)
# 4) compile "opt-1" .pyc only (--no-compile --optimize)
- # 5) compile .pyc and "opt-2" .pyc (--compile --optimize-more)
- # 6) compile "opt-2" .pyc only (--no-compile --optimize-more)
+ # 5) compile .pyc, "opt-1" and "opt-2" .pyc (--compile --optimize-more)
+ # 6) compile "opt-1" and "opt-2" .pyc (--no-compile --optimize-more)
#
# The UI for this is two options, 'compile' and 'optimize'.
# 'compile' is strictly boolean, and only decides whether to
@@ -132,8 +132,8 @@ class install_lib(Command):
byte_compile(files, optimize=0,
force=self.force, prefix=install_root,
dry_run=self.dry_run)
- if self.optimize > 0:
- byte_compile(files, optimize=self.optimize,
+ for opt in range(1, self.optimize + 1):
+ byte_compile(files, optimize=opt,
force=self.force, prefix=install_root,
verbose=self.verbose, dry_run=self.dry_run)
@@ -167,9 +167,9 @@ class install_lib(Command):
if self.compile:
bytecode_files.append(importlib.util.cache_from_source(
py_file, optimization=''))
- if self.optimize > 0:
+ for opt in range(1, self.optimize + 1):
bytecode_files.append(importlib.util.cache_from_source(
- py_file, optimization=self.optimize))
+ py_file, optimization=opt))
return bytecode_files
--
2.8.3

View File

@ -1,42 +0,0 @@
The hash implementation casts the input pointer to uint64_t* and directly reads
from this, which may cause unaligned accesses. Use memcpy() instead so this code
will not crash with SIGBUS on sparc.
--- a/Python/pyhash.c 2017-11-29 10:21:20.283094068 +0100
+++ b/Python/pyhash.c 2017-11-29 10:24:26.733087813 +0100
@@ -369,7 +369,7 @@
uint64_t k0 = _le64toh(_Py_HashSecret.siphash.k0);
uint64_t k1 = _le64toh(_Py_HashSecret.siphash.k1);
uint64_t b = (uint64_t)src_sz << 56;
- const uint64_t *in = (uint64_t*)src;
+ const uint8_t *in = (uint8_t*)src;
uint64_t v0 = k0 ^ 0x736f6d6570736575ULL;
uint64_t v1 = k1 ^ 0x646f72616e646f6dULL;
@@ -378,11 +378,13 @@
uint64_t t;
uint8_t *pt;
- uint8_t *m;
+ const uint8_t *m;
while (src_sz >= 8) {
- uint64_t mi = _le64toh(*in);
- in += 1;
- src_sz -= 8;
+ uint64_t mi;
+ memcpy(&mi, in, sizeof(mi));
+ mi = _le64toh(mi);
+ in += sizeof(mi);
+ src_sz -= sizeof(mi);
v3 ^= mi;
DOUBLE_ROUND(v0,v1,v2,v3);
@@ -391,7 +393,7 @@
t = 0;
pt = (uint8_t *)&t;
- m = (uint8_t *)in;
+ m = in;
switch (src_sz) {
case 7: pt[6] = m[6]; /* fall through */
case 6: pt[5] = m[5]; /* fall through */

View File

@ -1,114 +0,0 @@
From 8d89a385b71a2e4cce0fba0cfc8d91b63485edc5 Mon Sep 17 00:00:00 2001
From: Christian Heimes <christian@python.org>
Date: Sat, 24 Mar 2018 18:38:14 +0100
Subject: [PATCH] [3.6] bpo-33127: Compatibility patch for LibreSSL 2.7.0
(GH-6210) (GH-6214)
LibreSSL 2.7 introduced OpenSSL 1.1.0 API. The ssl module now detects
LibreSSL 2.7 and only provides API shims for OpenSSL < 1.1.0 and
LibreSSL < 2.7.
Documentation updates and fixes for failing tests will be provided in
another patch set.
Signed-off-by: Christian Heimes <christian@python.org>.
(cherry picked from commit 4ca0739c9d97ac7cd45499e0d31be68dc659d0e1)
Co-authored-by: Christian Heimes <christian@python.org>
---
Lib/test/test_ssl.py | 1 +
.../2018-03-24-15-08-24.bpo-33127.olJmHv.rst | 1 +
Modules/_ssl.c | 24 ++++++++++++-------
Tools/ssl/multissltests.py | 3 ++-
4 files changed, 20 insertions(+), 9 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2018-03-24-15-08-24.bpo-33127.olJmHv.rst
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 8dd3b41450..9785a59a7e 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -1687,6 +1687,7 @@ class SimpleBackgroundTests(unittest.TestCase):
self.assertEqual(len(ctx.get_ca_certs()), 1)
@needs_sni
+ @unittest.skipUnless(hasattr(ssl, "PROTOCOL_TLSv1_2"), "needs TLS 1.2")
def test_context_setget(self):
# Check that the context of a connected socket can be replaced.
ctx1 = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
diff --git a/Misc/NEWS.d/next/Library/2018-03-24-15-08-24.bpo-33127.olJmHv.rst b/Misc/NEWS.d/next/Library/2018-03-24-15-08-24.bpo-33127.olJmHv.rst
new file mode 100644
index 0000000000..635aabbde0
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-03-24-15-08-24.bpo-33127.olJmHv.rst
@@ -0,0 +1 @@
+The ssl module now compiles with LibreSSL 2.7.1.
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index c54e43c2b4..5e007da858 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -106,6 +106,12 @@ struct py_ssl_library_code {
#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
# define OPENSSL_VERSION_1_1 1
+# define PY_OPENSSL_1_1_API 1
+#endif
+
+/* LibreSSL 2.7.0 provides necessary OpenSSL 1.1.0 APIs */
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL
+# define PY_OPENSSL_1_1_API 1
#endif
/* Openssl comes with TLSv1.1 and TLSv1.2 between 1.0.0h and 1.0.1
@@ -152,16 +158,18 @@ struct py_ssl_library_code {
#define INVALID_SOCKET (-1)
#endif
-#ifdef OPENSSL_VERSION_1_1
-/* OpenSSL 1.1.0+ */
-#ifndef OPENSSL_NO_SSL2
-#define OPENSSL_NO_SSL2
-#endif
-#else /* OpenSSL < 1.1.0 */
-#if defined(WITH_THREAD)
+/* OpenSSL 1.0.2 and LibreSSL needs extra code for locking */
+#if !defined(OPENSSL_VERSION_1_1) && defined(WITH_THREAD)
#define HAVE_OPENSSL_CRYPTO_LOCK
#endif
+#if defined(OPENSSL_VERSION_1_1) && !defined(OPENSSL_NO_SSL2)
+#define OPENSSL_NO_SSL2
+#endif
+
+#ifndef PY_OPENSSL_1_1_API
+/* OpenSSL 1.1 API shims for OpenSSL < 1.1.0 and LibreSSL < 2.7.0 */
+
#define TLS_method SSLv23_method
#define TLS_client_method SSLv23_client_method
#define TLS_server_method SSLv23_server_method
@@ -227,7 +235,7 @@ SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s)
return s->tlsext_tick_lifetime_hint;
}
-#endif /* OpenSSL < 1.1.0 or LibreSSL */
+#endif /* OpenSSL < 1.1.0 or LibreSSL < 2.7.0 */
enum py_ssl_error {
diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py
index ce5bbd8530..ba4529ae06 100755
--- a/Tools/ssl/multissltests.py
+++ b/Tools/ssl/multissltests.py
@@ -57,8 +57,9 @@ LIBRESSL_OLD_VERSIONS = [
]
LIBRESSL_RECENT_VERSIONS = [
- "2.5.3",
"2.5.5",
+ "2.6.4",
+ "2.7.1",
]
# store files in ../multissl
--
2.17.0

View File

@ -1,161 +0,0 @@
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
WANT_LIBTOOL="none"
inherit autotools flag-o-matic pax-utils python-utils-r1 toolchain-funcs
MY_P="Python-${PV}"
PATCHSET_VERSION="3.6.4"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="https://www.python.org/"
SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
LICENSE="PSF-2"
SLOT="3.6/3.6m"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
IUSE="hardened"
# 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=""
DEPEND="app-arch/bzip2:0=
app-arch/xz-utils:0=
>=sys-libs/zlib-1.1.3:0=
virtual/libintl
!!<sys-apps/sandbox-2.6-r1
virtual/pkgconfig
!sys-devel/gcc[libffi(-)]"
S="${WORKDIR}/${MY_P}"
PYVER=${SLOT%/*}
src_prepare() {
# Ensure that internal copies of zlib are not used.
rm -fr Modules/zlib
local PATCHES=(
"${WORKDIR}/patches"
"${FILESDIR}/python-3.5-distutils-OO-build.patch"
"${FILESDIR}/3.6.5-disable-nis.patch"
"${FILESDIR}/python-3.6.5-libressl-compatibility.patch"
"${FILESDIR}/python-3.6.5-hash-unaligned.patch"
)
default
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
Lib/distutils/command/install.py \
Lib/distutils/sysconfig.py \
Lib/site.py \
Lib/sysconfig.py \
Lib/test/test_site.py \
Makefile.pre.in \
Modules/Setup.dist \
Modules/getpath.c \
configure.ac \
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
eautoreconf
}
src_configure() {
local disable
disable+=" gdbm"
disable+=" _curses _curses_panel"
disable+=" readline"
disable+=" _sqlite3"
export PYTHON_DISABLE_SSL="1"
disable+=" _tkinter"
export PYTHON_DISABLE_MODULES="${disable}"
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
fi
if [[ "$(gcc-major-version)" -ge 4 ]]; then
append-flags -fwrapv
fi
filter-flags -malign-double
# https://bugs.gentoo.org/show_bug.cgi?id=50309
if is-flagq -O3; then
is-flagq -fstack-protector-all && replace-flags -O3 -O2
use hardened && replace-flags -O3 -O2
fi
if tc-is-cross-compiler; then
# Force some tests that try to poke fs paths.
export ac_cv_file__dev_ptc=no
export ac_cv_file__dev_ptmx=yes
fi
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
tc-export CXX
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
# Needed on FreeBSD unless Python 3.2 is already installed.
# Please query BSD team before removing this!
append-ldflags "-L."
local dbmliborder
local myeconfargs=(
--prefix=/usr/share/oem/python
--with-fpectl
--disable-shared
--enable-ipv6
--with-threads
--includedir='/discard/include'
--infodir='/discard/info'
--mandir='/discard/man'
--with-computed-gotos
--with-dbmliborder="${dbmliborder}"
--with-libc=
--without-ensurepip
--without-system-expat
--without-system-ffi
)
OPT="" econf "${myeconfargs[@]}"
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
eerror "configure has detected that the sem_open function is broken."
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
die "Broken sem_open function (bug 496328)"
fi
}
src_compile() {
# Ensure sed works as expected
# https://bugs.gentoo.org/594768
local -x LC_ALL=C
emake CPPFLAGS= CFLAGS= LDFLAGS=
}
src_install() {
local rawbindir=/usr/share/oem/python/bin
local bindir=${ED}${rawbindir}
local libdir=${ED}/usr/share/oem/python/$(get_libdir)/python${PYVER}
emake DESTDIR="${D}" altinstall
# create a simple versionless 'python' symlink
dosym "python${PYVER}" "${rawbindir}/python"
dosym "python${PYVER}" "${rawbindir}/python3"
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
rm -r "${bindir}/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
rm "${libdir}/distutils/command/"wininst-*.exe || die
rm -r "${ED}/discard" || die
}

View File

@ -0,0 +1,189 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
WANT_LIBTOOL="none"
inherit autotools check-reqs flag-o-matic multiprocessing \
python-utils-r1 toolchain-funcs verify-sig
MY_PV=${PV/_rc/rc}
MY_P="Python-${MY_PV%_p*}"
PYVER=$(ver_cut 1-2)
PATCHSET="python-gentoo-patches-${MY_PV}"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="https://www.python.org/"
SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/python/${PATCHSET}.tar.xz
verify-sig? (
https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc
)"
S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="hardened"
# 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.
DEPEND="app-arch/bzip2:=
app-arch/xz-utils:=
sys-apps/util-linux:=
>=sys-libs/zlib-1.1.3:=
virtual/libcrypt:=
virtual/libintl"
BDEPEND="
virtual/awk
virtual/pkgconfig
sys-devel/autoconf-archive
verify-sig? ( app-crypt/openpgp-keys-python )
!sys-devel/gcc[libffi(-)]"
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc
# large file tests involve a 2.5G file being copied (duplicated)
CHECKREQS_DISK_BUILD=5500M
src_unpack() {
if use verify-sig; then
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
fi
default
}
src_prepare() {
# Ensure that internal copies of zlib are not used.
rm -fr Modules/zlib || die
local PATCHES=(
"${WORKDIR}/${PATCHSET}"
)
default
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
# force correct number of jobs
# https://bugs.gentoo.org/737660
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
eautoreconf
}
src_configure() {
local disable
# disable automagic bluetooth headers detection
export ac_cv_header_bluetooth_bluetooth_h=no
disable+=" gdbm"
disable+=" _curses _curses_panel"
disable+=" readline"
disable+=" _sqlite3"
export PYTHON_DISABLE_SSL="1"
disable+=" _tkinter"
export PYTHON_DISABLE_MODULES="${disable}"
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
fi
if [[ "$(gcc-major-version)" -ge 4 ]]; then
append-flags -fwrapv
fi
filter-flags -malign-double
# https://bugs.gentoo.org/show_bug.cgi?id=50309
if is-flagq -O3; then
is-flagq -fstack-protector-all && replace-flags -O3 -O2
use hardened && replace-flags -O3 -O2
fi
# https://bugs.gentoo.org/700012
if is-flagq -flto || is-flagq '-flto=*'; then
append-cflags $(test-flags-CC -ffat-lto-objects)
fi
if tc-is-cross-compiler; then
# Force some tests that try to poke fs paths.
export ac_cv_file__dev_ptc=no
export ac_cv_file__dev_ptmx=yes
fi
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
tc-export CXX
local dbmliborder
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
--prefix=/usr/share/oem/python
--with-platlibdir=$(get_libdir)
--disable-shared
--enable-ipv6
--infodir='/discard/info'
--mandir='/discard/man'
--includedir='/discard/include'
--with-computed-gotos
--with-dbmliborder="${dbmliborder}"
--with-libc=
--enable-loadable-sqlite-extensions
--without-ensurepip
--without-system-expat
--without-system-ffi
)
OPT="" econf "${myeconfargs[@]}"
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
eerror "configure has detected that the sem_open function is broken."
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
die "Broken sem_open function (bug 496328)"
fi
}
src_compile() {
# Ensure sed works as expected
# https://bugs.gentoo.org/594768
local -x LC_ALL=C
# Prevent using distutils bundled by setuptools.
# https://bugs.gentoo.org/823728
export SETUPTOOLS_USE_DISTUTILS=stdlib
emake CPPFLAGS= CFLAGS= LDFLAGS=
}
src_install() {
local prefix=/usr/share/oem/python
local eprefix="${ED}${prefix}"
local elibdir="${eprefix}/$(get_libdir)"
local epythonplatlibdir="${elibdir}/python${PYVER}"
local bindir="${prefix}/bin"
local ebindir="${eprefix}/bin"
emake DESTDIR="${D}" altinstall
# Remove static library
rm "${elibdir}"/libpython*.a || die
rm -r "${epythonplatlibdir}/"{sqlite3,test/test_sqlite*} || die
rm -r "${ebindir}/idle${PYVER}" "${epythonplatlibdir}/"{idlelib,tkinter,test/test_tk*} || die
# create a simple versionless 'python' symlink
dosym "python${PYVER}" "${bindir}/python"
dosym "python${PYVER}" "${bindir}/python3"
rm -r "${ED}/discard" || die
}

View File

@ -3,7 +3,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \ inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig

View File

@ -0,0 +1 @@
DIST boto-2.49.0.tar.gz 1478498 BLAKE2B 6a897ea162f5f4bd34a2d488a3e3897f7f2f5b8707dd0922c01b6a0b90ea577223bf3e588b6685bda1f2bc0e92af426711fcba67a70377183465a530065c6c84 SHA512 2175cf30cd25bbc05812e83e5ade7668c3e21b1bb09aa1b43f0f0ac7d6967a646394fb52c9be673ebb65618c5b33a52d6f31f6da702f5cd1d6c9a18169476dd4

View File

@ -0,0 +1,66 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
PYTHON_COMPAT=( python3_{7..9} )
DISTUTILS_USE_SETUPTOOLS=bdepend
inherit distutils-r1
DESCRIPTION="Amazon Web Services API"
HOMEPAGE="https://github.com/boto/boto https://pypi.org/project/boto/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 arm arm64 ppc ~ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
PATCHES=(
# taken from https://bugs.debian.org/909545
"${FILESDIR}"/${P}-try-to-add-SNI-support-v3.patch
"${FILESDIR}"/${P}-py38.patch
"${FILESDIR}"/${P}-py3-socket-binary.patch
"${FILESDIR}"/${P}-py3-httplib-strict.patch
"${FILESDIR}"/${P}-py3-server-port.patch
"${FILESDIR}"/${P}-unbundle-six.patch
)
RDEPEND=">=dev-python/six-1.12.0[${PYTHON_USEDEP}]"
BDEPEND="
test? (
dev-python/httpretty[${PYTHON_USEDEP}]
dev-python/keyring[${PYTHON_USEDEP}]
dev-python/lxml[${PYTHON_USEDEP}]
dev-python/mock[${PYTHON_USEDEP}]
dev-python/paramiko[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
dev-python/selenium[${PYTHON_USEDEP}]
)"
distutils_enable_tests nose
src_prepare() {
# remove bundled libs.
rm -f "${S}"/boto/vendored/six.py || die
# broken, not worth fixing
rm tests/unit/cloudfront/test_signed_urls.py || die
# fix tests
mkdir -p "${HOME}"/.ssh || die
: > "${HOME}"/.ssh/known_hosts || die
# Flatcar: Do not import boto only for the version number in
# setup.py - it ends up trying to import six, which we have
# unbundled and the six module effectively becomes a BDEPEND
# instead of RDEPEND. Drop the import and define the
# __variable__ instead.
sed -i -e 's/^from boto import __version__$/__version__ = '"'${PV}'"'/' setup.py
distutils-r1_src_prepare
}
python_test() {
nosetests -v tests/unit ||
die "Tests fail with ${EPYTHON}"
}

View File

@ -0,0 +1,35 @@
https://github.com/boto/boto/commit/4f4dcb31fe852c05ce19b44eb9d5b5d747e36f7c
https://github.com/boto/boto/pull/2718
From 4f4dcb31fe852c05ce19b44eb9d5b5d747e36f7c Mon Sep 17 00:00:00 2001
From: Lee Ball <43632885+catleeball@users.noreply.github.com>
Date: Mon, 10 Jun 2019 16:02:53 -0700
Subject: [PATCH] Remove `strict=True` from http_client (#6)
In Python 3.4, the `strict` kwarg was removed[1]. We are removing it
here too.
Alternatively, we can leave in `strict=True` for 2.x, but I chose to
remove it entirely to maintain consistent behavior across versions.
[1]: https://docs.python.org/3/library/http.client.html
---
boto/connection.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boto/connection.py b/boto/connection.py
index c731173bb4eb..54e26fb2de16 100644
--- a/boto/connection.py
+++ b/boto/connection.py
@@ -807,7 +807,7 @@ class AWSAuthConnection(object):
sock.sendall(six.ensure_binary("\r\n"))
else:
sock.sendall(six.ensure_binary("\r\n"))
- resp = http_client.HTTPResponse(sock, strict=True, debuglevel=self.debug)
+ resp = http_client.HTTPResponse(sock, debuglevel=self.debug)
resp.begin()
if resp.status != 200:
--
2.28.0

View File

@ -0,0 +1,42 @@
https://github.com/boto/boto/commit/b9f6cb0ab717ea76e2780c7fddd1cd36b3bf7d63
From b9f6cb0ab717ea76e2780c7fddd1cd36b3bf7d63 Mon Sep 17 00:00:00 2001
From: Matt Houglum <houglum@google.com>
Date: Fri, 21 Jun 2019 15:09:11 -0700
Subject: [PATCH] Make server_name() behave correctly for PY3
...because Python-2.6-or-newer doesn't just include Python 2.6 and 2.7.
---
boto/connection.py | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/boto/connection.py b/boto/connection.py
index 54e26fb2de16..bbb25d8fb842 100644
--- a/boto/connection.py
+++ b/boto/connection.py
@@ -650,17 +650,13 @@ class AWSAuthConnection(object):
if port == 80:
signature_host = self.host
else:
- # This unfortunate little hack can be attributed to
- # a difference in the 2.6 version of http_client. In old
- # versions, it would append ":443" to the hostname sent
- # in the Host header and so we needed to make sure we
- # did the same when calculating the V2 signature. In 2.6
- # (and higher!)
- # it no longer does that. Hence, this kludge.
- if ((ON_APP_ENGINE and sys.version[:3] == '2.5') or
- sys.version[:3] in ('2.6', '2.7')) and port == 443:
+ ver_int = sys.version_info[0] * 10 + sys.version_info[1]
+ if port == 443 and ver_int >= 26: # Py >= 2.6
signature_host = self.host
else:
+ # In versions < 2.6, Python's http_client would append ":443"
+ # to the hostname sent in the Host header and so we needed to
+ # make sure we did the same when calculating the V2 signature.
signature_host = '%s:%d' % (self.host, port)
return signature_host
--
2.28.0

View File

@ -0,0 +1,59 @@
https://github.com/boto/boto/commit/d2cb697b32c297858ecc36701a5a4176818ab36d
https://github.com/boto/boto/pull/2718
https://github.com/boto/boto/pull/2893
https://github.com/boto/boto/pull/3699
From d2cb697b32c297858ecc36701a5a4176818ab36d Mon Sep 17 00:00:00 2001
From: Cat Lee Ball <cball@google.com>
Date: Mon, 10 Jun 2019 13:31:11 -0700
Subject: [PATCH] Ensure binary strings sent to socket
When running pre-release tests with proxied connections, it appeared a
few spots in connection.py would fail under Python 3 since the
socket.sendall method expects binary strings rather than unicode.
---
boto/connection.py | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/boto/connection.py b/boto/connection.py
index a0d89a51f49c..d084d1f881fb 100644
--- a/boto/connection.py
+++ b/boto/connection.py
@@ -796,17 +796,17 @@ class AWSAuthConnection(object):
else:
sock = socket.create_connection((self.proxy, int(self.proxy_port)))
boto.log.debug("Proxy connection: CONNECT %s HTTP/1.0\r\n", host)
- sock.sendall("CONNECT %s HTTP/1.0\r\n" % host)
- sock.sendall("User-Agent: %s\r\n" % UserAgent)
+ sock.sendall(six.ensure_binary("CONNECT %s HTTP/1.0\r\n" % host))
+ sock.sendall(six.ensure_binary("User-Agent: %s\r\n" % UserAgent))
if self.proxy_user and self.proxy_pass:
for k, v in self.get_proxy_auth_header().items():
- sock.sendall("%s: %s\r\n" % (k, v))
+ sock.sendall(six.ensure_binary("%s: %s\r\n" % (k, v)))
# See discussion about this config option at
# https://groups.google.com/forum/?fromgroups#!topic/boto-dev/teenFvOq2Cc
if config.getbool('Boto', 'send_crlf_after_proxy_auth_headers', False):
- sock.sendall("\r\n")
+ sock.sendall(six.ensure_binary("\r\n"))
else:
- sock.sendall("\r\n")
+ sock.sendall(six.ensure_binary("\r\n"))
resp = http_client.HTTPResponse(sock, strict=True, debuglevel=self.debug)
resp.begin()
@@ -814,9 +814,10 @@ class AWSAuthConnection(object):
# Fake a socket error, use a code that make it obvious it hasn't
# been generated by the socket library
raise socket.error(-71,
+ six.ensure_binary(
"Error talking to HTTP proxy %s:%s: %s (%s)" %
(self.proxy, self.proxy_port,
- resp.status, resp.reason))
+ resp.status, resp.reason)))
# We can safely close the response, it duped the original socket
resp.close()
--
2.28.0

View File

@ -0,0 +1,54 @@
diff --git a/boto/ecs/item.py b/boto/ecs/item.py
index 79177a31..292b05af 100644
--- a/boto/ecs/item.py
+++ b/boto/ecs/item.py
@@ -21,7 +21,7 @@
import xml.sax
-import cgi
+import html
from boto.compat import six, StringIO
class ResponseGroup(xml.sax.ContentHandler):
@@ -67,7 +67,7 @@ class ResponseGroup(xml.sax.ContentHandler):
return None
def endElement(self, name, value, connection):
- self._xml.write("%s</%s>" % (cgi.escape(value).replace("&amp;amp;", "&amp;"), name))
+ self._xml.write("%s</%s>" % (html.escape(value).replace("&amp;amp;", "&amp;"), name))
if len(self._nodepath) == 0:
return
obj = None
diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py
index db15b56d..89d1a524 100644
--- a/tests/unit/utils/test_utils.py
+++ b/tests/unit/utils/test_utils.py
@@ -85,7 +85,7 @@ class TestPassword(unittest.TestCase):
def hmac_hashfunc(cls, msg):
if not isinstance(msg, bytes):
msg = msg.encode('utf-8')
- return hmac.new(b'mysecretkey', msg)
+ return hmac.new(b'mysecretkey', msg, digestmod='MD5')
class HMACPassword(Password):
hashfunc = hmac_hashfunc
@@ -95,15 +95,15 @@ class TestPassword(unittest.TestCase):
password.set('foo')
self.assertEquals(str(password),
- hmac.new(b'mysecretkey', b'foo').hexdigest())
+ hmac.new(b'mysecretkey', b'foo', digestmod='MD5').hexdigest())
def test_constructor(self):
- hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg)
+ hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg, digestmod='MD5')
password = Password(hashfunc=hmac_hashfunc)
password.set('foo')
self.assertEquals(password.str,
- hmac.new(b'mysecretkey', b'foo').hexdigest())
+ hmac.new(b'mysecretkey', b'foo', digestmod='MD5').hexdigest())
class TestPythonizeName(unittest.TestCase):

View File

@ -0,0 +1,104 @@
From f5e7f6c98b46ff622f60a4661ffc9ce07216d109 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Date: Sat, 29 Sep 2018 21:47:11 +0200
Subject: [PATCH] boto: try to add SNI support
Add SNI support. Newer OpenSSL (with TLS1.3) fail to connect if the
hostname is missing.
Link: https://bugs.debian.org/bug=909545
Tested-by: Witold Baryluk <witold.baryluk@gmail.com>
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
boto/connection.py | 19 ++++++++++---------
boto/https_connection.py | 22 +++++++++++-----------
2 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/boto/connection.py b/boto/connection.py
index 34b428f101df7..b4867a7657465 100644
--- a/boto/connection.py
+++ b/boto/connection.py
@@ -778,8 +778,10 @@
def proxy_ssl(self, host=None, port=None):
if host and port:
+ cert_host = host
host = '%s:%d' % (host, port)
else:
+ cert_host = self.host
host = '%s:%d' % (self.host, self.port)
# Seems properly to use timeout for connect too
timeout = self.http_connection_kwargs.get("timeout")
@@ -824,23 +824,24 @@ DEFAULT_CA_CERTS_FILE = os.path.join(os.path.dirname(os.path.abspath(boto.cacert
h = http_client.HTTPConnection(host)
if self.https_validate_certificates and HAVE_HTTPS_CONNECTION:
+ context = ssl.create_default_context()
+ context.verify_mode = ssl.CERT_REQUIRED
+ context.check_hostname = True
+
msg = "wrapping ssl socket for proxied connection; "
if self.ca_certificates_file:
msg += "CA certificate file=%s" % self.ca_certificates_file
+ context.load_verify_locations(cafile=self.ca_certificates_file)
else:
msg += "using system provided SSL certs"
+ context.load_default_certs()
boto.log.debug(msg)
key_file = self.http_connection_kwargs.get('key_file', None)
cert_file = self.http_connection_kwargs.get('cert_file', None)
- sslSock = ssl.wrap_socket(sock, keyfile=key_file,
- certfile=cert_file,
- cert_reqs=ssl.CERT_REQUIRED,
- ca_certs=self.ca_certificates_file)
- cert = sslSock.getpeercert()
- hostname = self.host.split(':', 0)[0]
- if not https_connection.ValidateCertificateHostname(cert, hostname):
- raise https_connection.InvalidCertificateException(
- hostname, cert, 'hostname mismatch')
+ if key_file:
+ context.load_cert_chain(certfile=cert_file, keyfile=key_file)
+
+ sslSock = context.wrap_socket(sock, server_hostname=cert_host)
else:
# Fallback for old Python without ssl.wrap_socket
if hasattr(http_client, 'ssl'):
diff --git a/boto/https_connection.py b/boto/https_connection.py
index ddc31a152292e..a5076f6f9b261 100644
--- a/boto/https_connection.py
+++ b/boto/https_connection.py
@@ -119,20 +119,20 @@ from boto.compat import six, http_client
sock = socket.create_connection((self.host, self.port), self.timeout)
else:
sock = socket.create_connection((self.host, self.port))
+
+ context = ssl.create_default_context()
+ context.verify_mode = ssl.CERT_REQUIRED
+ context.check_hostname = True
+ if self.key_file:
+ context.load_cert_chain(certfile=self.cert_file, keyfile=self.key_file)
+
msg = "wrapping ssl socket; "
if self.ca_certs:
msg += "CA certificate file=%s" % self.ca_certs
+ context.load_verify_locations(cafile=self.ca_certs)
else:
msg += "using system provided SSL certs"
+ context.load_default_certs()
boto.log.debug(msg)
- self.sock = ssl.wrap_socket(sock, keyfile=self.key_file,
- certfile=self.cert_file,
- cert_reqs=ssl.CERT_REQUIRED,
- ca_certs=self.ca_certs)
- cert = self.sock.getpeercert()
- hostname = self.host.split(':', 0)[0]
- if not ValidateCertificateHostname(cert, hostname):
- raise InvalidCertificateException(hostname,
- cert,
- 'remote hostname "%s" does not match '
- 'certificate' % hostname)
+
+ self.sock = context.wrap_socket(sock, server_hostname=self.host)
--
2.19.0

View File

@ -0,0 +1,28 @@
use the system copy of six
--- a/boto/compat.py
+++ b/boto/compat.py
@@ -46,16 +46,16 @@ except (AttributeError, ImportError):
# This is probably running on App Engine.
expanduser = (lambda x: x)
-from boto.vendored import six
+import six
-from boto.vendored.six import BytesIO, StringIO
-from boto.vendored.six.moves import filter, http_client, map, _thread, \
+from six import BytesIO, StringIO
+from six.moves import filter, http_client, map, _thread, \
urllib, zip
-from boto.vendored.six.moves.queue import Queue
-from boto.vendored.six.moves.urllib.parse import parse_qs, quote, unquote, \
+from six.moves.queue import Queue
+from six.moves.urllib.parse import parse_qs, quote, unquote, \
urlparse, urlsplit
-from boto.vendored.six.moves.urllib.parse import unquote_plus
-from boto.vendored.six.moves.urllib.request import urlopen
+from six.moves.urllib.parse import unquote_plus
+from six.moves.urllib.request import urlopen
if six.PY3:
# StandardError was removed, so use the base exception type instead

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="google-code">boto</remote-id>
<remote-id type="pypi">boto</remote-id>
<remote-id type="github">boto/boto</remote-id>
</upstream>
</pkgmetadata>

View File

@ -16,7 +16,7 @@ KEYWORDS="amd64 arm64"
# Depending on specific version of python-oem allows us to notice when # Depending on specific version of python-oem allows us to notice when
# we update the major version of python and then to make sure that we # we update the major version of python and then to make sure that we
# install the package in correctly versioned site-packages directory. # install the package in correctly versioned site-packages directory.
DEP_PYVER="3.6" DEP_PYVER="3.9"
SLOT="0" SLOT="0"
RDEPEND="dev-lang/python-oem:${DEP_PYVER}" RDEPEND="dev-lang/python-oem:${DEP_PYVER}"

View File

@ -1 +0,0 @@
DIST catalyst-3.0.14.tar.bz2 621178 BLAKE2B 3fa87125f14661bb77432267f03c0966eff8f71f4ef334ce0a14218f7557dee270840afb79b6735a149851ed44b1ea2f6cf59d8274d74e049246d89874aa484b SHA512 938a63a83458fa5a26a4b4e62d18086ed813aec5638a9dd363ba553cb7aeb337c3b8ba0768f3b5a658aa54f2f375a7fe067279c739073d2420c3ad3a42830830

View File

@ -1,6 +0,0 @@
This is a fork of dev-util/catalyst package. The reasons for having it
here are:
- Add patches that move the scripts to use python3 explicitly, because
/usr/bin/python is still pointing to python2, but our portage is now
a python3 code.

View File

@ -1,81 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Flatcar: Based on catalyst-3.0.14.ebuild from commit
# 78fc35f2e766117caa26928db5a0a09b8af18c3c in Gentoo repo (see
# https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-util/catalyst/catalyst-3.0.14.ebuild?id=78fc35f2e766117caa26928db5a0a09b8af18c3c).
EAPI=6
if [[ ${PV} == *9999* ]]; then
SRC_ECLASS="git-r3"
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/catalyst.git"
EGIT_BRANCH="master"
else
SRC_URI="https://gitweb.gentoo.org/proj/catalyst.git/snapshot/${P}.tar.bz2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86"
fi
PYTHON_COMPAT=( python3_{6,7,8} )
DISTUTILS_USE_SETUPTOOLS=no
inherit distutils-r1 ${SRC_ECLASS}
DESCRIPTION="Release metatool used for creating releases based on Gentoo Linux"
HOMEPAGE="https://wiki.gentoo.org/wiki/Catalyst"
LICENSE="GPL-2+"
SLOT="0"
IUSE="ccache doc +iso kernel_linux system-bootloader"
DEPEND="
app-text/asciidoc
>=dev-python/snakeoil-0.6.5[${PYTHON_USEDEP}]
"
RDEPEND="
>=dev-python/snakeoil-0.6.5[${PYTHON_USEDEP}]
>=dev-python/pydecomp-0.3[${PYTHON_USEDEP}]
app-arch/lbzip2
app-crypt/shash
sys-fs/dosfstools
!kernel_FreeBSD? ( || ( app-arch/tar[xattr] app-arch/libarchive[xattr] ) )
kernel_FreeBSD? ( app-arch/libarchive[xattr] )
amd64? ( >=sys-boot/syslinux-3.72 )
x86? ( >=sys-boot/syslinux-3.72 )
ccache? ( dev-util/ccache )
iso? ( virtual/cdrtools )
kernel_linux? ( app-misc/zisofs-tools >=sys-fs/squashfs-tools-2.1 )
"
PDEPEND="system-bootloader? ( >=sys-apps/memtest86+-5.01-r4
sys-boot/grub:2
amd64? ( sys-boot/grub[grub_platforms_efi-32,grub_platforms_efi-64] )
x86? ( sys-boot/grub[grub_platforms_efi-32] )
sys-boot/syslinux
sys-boot/shim )"
PATCHES=(
"${FILESDIR}/0001-catalyst-Remove-left-over-Id.patch"
"${FILESDIR}/0002-catalyst-Remove-Maintained-by-sections.patch"
"${FILESDIR}/0003-catalyst-Remove-unnecessary-future-imports.patch"
"${FILESDIR}/0004-catalyst-Use-python3-shebangs.patch"
"${FILESDIR}/0005-chroot-funcs-use-python3-for-debug-output.patch"
)
python_prepare_all() {
python_setup
echo VERSION="${PV}" "${PYTHON}" setup.py set_version
VERSION="${PV}" "${PYTHON}" setup.py set_version || die
distutils-r1_python_prepare_all
}
python_compile_all() {
# build the man pages and docs
emake
}
python_install_all() {
distutils-r1_python_install_all
if use doc; then
dodoc files/HOWTO.html files/docbook-xsl.css
fi
}

View File

@ -1,71 +0,0 @@
From 6aebee1b3adee0c4b3775e69614c36f9e7ba980c Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gentoo.org>
Date: Fri, 27 Mar 2020 23:49:05 -0700
Subject: [PATCH 1/4] catalyst: Remove left over $Id$
Signed-off-by: Matt Turner <mattst88@gentoo.org>
---
AUTHORS | 2 --
README | 2 --
TODO | 2 --
bin/catalyst | 1 -
catalyst/main.py | 1 -
5 files changed, 8 deletions(-)
diff --git a/AUTHORS b/AUTHORS
index 3bf969bd..41366b8c 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,5 +1,3 @@
-# $Id: 3bf969bd0798372f72ebdfc74321ac0c81174d68 $
-
The copyright for catalyst is held by the Gentoo Foundation and by each
of the individual contributors.
diff --git a/README b/README
index 530abb35..6dc6a149 100644
--- a/README
+++ b/README
@@ -1,5 +1,3 @@
-# $Id: 530abb353ec9c8e52e5bf677fbb628339e78b241 $
-
Licensing
========================
diff --git a/TODO b/TODO
index a2ee05dd..bf397840 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,3 @@
-# $Id: a2ee05ddd591798b18e2ea570e2f729dd30992f7 $
-
This file is a rough list of changes that need to be made to catalyst.
Global:
diff --git a/bin/catalyst b/bin/catalyst
index 72a4cb4d..d0d3d639 100755
--- a/bin/catalyst
+++ b/bin/catalyst
@@ -5,7 +5,6 @@
# Release Engineering Team <releng@gentoo.org>
# Andrew Gaffney <agaffney@gentoo.org>
# Chris Gianelloni <wolf31o2@wolf31o2.org>
-# $Id: 72a4cb4db4d6f247a893e9744ca46f2a97859ba5 $
from __future__ import print_function
diff --git a/catalyst/main.py b/catalyst/main.py
index 01c456ea..e15d67d9 100644
--- a/catalyst/main.py
+++ b/catalyst/main.py
@@ -4,7 +4,6 @@
# Release Engineering Team <releng@gentoo.org>
# Andrew Gaffney <agaffney@gentoo.org>
# Chris Gianelloni <wolf31o2@wolf31o2.org>
-# $Id: 01c456ea99fb8fb3342e3bb0cf2c9b1a56357c65 $
import argparse
import datetime
--
2.29.2

View File

@ -1,108 +0,0 @@
From 44a1b09c566c05889b71fcdecedf319e162fea8e Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gentoo.org>
Date: Fri, 27 Mar 2020 23:52:41 -0700
Subject: [PATCH 2/4] catalyst: Remove "Maintained by" sections
They're not useful and out of date to boot.
Signed-off-by: Matt Turner <mattst88@gentoo.org>
---
bin/catalyst | 7 -------
catalyst/base/resume.py | 5 -----
catalyst/fileops.py | 5 -----
catalyst/main.py | 7 -------
catalyst/version.py | 7 -------
doc/catalyst.1.txt | 2 +-
6 files changed, 1 insertion(+), 32 deletions(-)
diff --git a/bin/catalyst b/bin/catalyst
index d0d3d639..d3448fd8 100755
--- a/bin/catalyst
+++ b/bin/catalyst
@@ -1,12 +1,5 @@
#!/usr/bin/python -OO
-# Maintained in full by:
-# Catalyst Team <catalyst@gentoo.org>
-# Release Engineering Team <releng@gentoo.org>
-# Andrew Gaffney <agaffney@gentoo.org>
-# Chris Gianelloni <wolf31o2@wolf31o2.org>
-
-
from __future__ import print_function
import sys
diff --git a/catalyst/base/resume.py b/catalyst/base/resume.py
index b2100735..4234f8b9 100644
--- a/catalyst/base/resume.py
+++ b/catalyst/base/resume.py
@@ -1,10 +1,5 @@
#!/usr/bin/python
-# Maintained in full by:
-# Catalyst Team <catalyst@gentoo.org>
-# Release Engineering Team <releng@gentoo.org>
-# Copyright 2013 Brian Dolbec <dolsen@gentoo.org>
-
'''resume.py
Performs autoresume tracking file operations such as
diff --git a/catalyst/fileops.py b/catalyst/fileops.py
index 878e6303..f7df4a01 100644
--- a/catalyst/fileops.py
+++ b/catalyst/fileops.py
@@ -1,8 +1,3 @@
-
-# Maintained in full by:
-# Catalyst Team <catalyst@gentoo.org>
-# Release Engineering Team <releng@gentoo.org>
-
'''fileops.py
Performs file operations such as pack/unpack,
diff --git a/catalyst/main.py b/catalyst/main.py
index e15d67d9..23093e97 100644
--- a/catalyst/main.py
+++ b/catalyst/main.py
@@ -1,10 +1,3 @@
-
-# Maintained in full by:
-# Catalyst Team <catalyst@gentoo.org>
-# Release Engineering Team <releng@gentoo.org>
-# Andrew Gaffney <agaffney@gentoo.org>
-# Chris Gianelloni <wolf31o2@wolf31o2.org>
-
import argparse
import datetime
import os
diff --git a/catalyst/version.py b/catalyst/version.py
index f0268686..fcf46fb0 100644
--- a/catalyst/version.py
+++ b/catalyst/version.py
@@ -1,10 +1,3 @@
-# Maintained in full by:
-# Catalyst Team <catalyst@gentoo.org>
-# Release Engineering Team <releng@gentoo.org>
-# Copyright: 2011 Brian Harring <ferringb@gmail.com>
-# License: BSD/GPL2
-# Copied & edited by: Brian Dolbec <dolsen@gentoo.org>
-
'''Version information and/or git version information
'''
diff --git a/doc/catalyst.1.txt b/doc/catalyst.1.txt
index 5a7a4d64..dc6c7acb 100644
--- a/doc/catalyst.1.txt
+++ b/doc/catalyst.1.txt
@@ -120,7 +120,7 @@ NOTES
stager projects, both of which were used to create pre-1.4 Gentoo releases.
*catalyst* was originally conceived and coded by both Daniel Robbins and
-John Davis. It is currently maintained by Chris Gianelloni and Eric Edgar and
+John Davis. It is currently maintained by the Catalyst Project Team and
has been mostly re-written.
--
2.29.2

View File

@ -1,97 +0,0 @@
From 45cf8f43116b13c4648fcb532aba93aff18670ae Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gentoo.org>
Date: Sat, 28 Mar 2020 00:02:37 -0700
Subject: [PATCH 3/4] catalyst: Remove unnecessary future imports
Catalyst has been python 3-only for a while.
Signed-off-by: Matt Turner <mattst88@gentoo.org>
---
bin/catalyst | 2 --
bin/catalyst.git | 2 --
bin/pylint | 2 --
catalyst/log.py | 2 --
doc/make_target_table.py | 2 --
setup.py | 2 --
6 files changed, 12 deletions(-)
diff --git a/bin/catalyst b/bin/catalyst
index d3448fd8..228a913e 100755
--- a/bin/catalyst
+++ b/bin/catalyst
@@ -1,7 +1,5 @@
#!/usr/bin/python -OO
-from __future__ import print_function
-
import sys
# This block ensures that ^C interrupts are handled quietly.
diff --git a/bin/catalyst.git b/bin/catalyst.git
index eb6234b9..733ade15 100755
--- a/bin/catalyst.git
+++ b/bin/catalyst.git
@@ -5,8 +5,6 @@
"""Run catalyst from git using local modules/scripts."""
-from __future__ import print_function
-
import os
import sys
import tempfile
diff --git a/bin/pylint b/bin/pylint
index b0018278..6c718134 100755
--- a/bin/pylint
+++ b/bin/pylint
@@ -4,8 +4,6 @@
"""Run pylint with the right settings."""
-from __future__ import print_function
-
import os
import sys
diff --git a/catalyst/log.py b/catalyst/log.py
index d640dece..7956c28f 100644
--- a/catalyst/log.py
+++ b/catalyst/log.py
@@ -8,8 +8,6 @@ another level "notice" between warning & info, and all output goes through
the "catalyst" logger.
"""
-from __future__ import print_function
-
import logging
import logging.handlers
import os
diff --git a/doc/make_target_table.py b/doc/make_target_table.py
index c4b49ad9..d1f97c9b 100755
--- a/doc/make_target_table.py
+++ b/doc/make_target_table.py
@@ -8,8 +8,6 @@
# source the testpath file then run "doc/make_target_table.py"
-from __future__ import print_function
-
import glob
import locale
import os
diff --git a/setup.py b/setup.py
index c6b52dcf..c6553b5d 100755
--- a/setup.py
+++ b/setup.py
@@ -1,8 +1,6 @@
#!/usr/bin/env python
"""Catalyst is a release building tool used by Gentoo Linux"""
-from __future__ import print_function
-
import codecs as _codecs
from distutils.core import setup as _setup, Command as _Command
from email.utils import parseaddr as _parseaddr
--
2.29.2

View File

@ -1,67 +0,0 @@
From 83ce8eb9a11987c93a8c361d745b3a7444d4ad23 Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gentoo.org>
Date: Sat, 28 Mar 2020 00:00:58 -0700
Subject: [PATCH 4/4] catalyst: Use python3 shebangs
Signed-off-by: Matt Turner <mattst88@gentoo.org>
---
bin/catalyst | 2 +-
bin/catalyst.git | 2 +-
bin/pylint | 2 +-
catalyst/base/resume.py | 2 +-
targets/stage1/build.py | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/bin/catalyst b/bin/catalyst
index 228a913e..97cbb0f9 100755
--- a/bin/catalyst
+++ b/bin/catalyst
@@ -1,4 +1,4 @@
-#!/usr/bin/python -OO
+#!/usr/bin/python3 -OO
import sys
diff --git a/bin/catalyst.git b/bin/catalyst.git
index 733ade15..9b3deaa1 100755
--- a/bin/catalyst.git
+++ b/bin/catalyst.git
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
diff --git a/bin/pylint b/bin/pylint
index 6c718134..98108f5f 100755
--- a/bin/pylint
+++ b/bin/pylint
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
diff --git a/catalyst/base/resume.py b/catalyst/base/resume.py
index 4234f8b9..6a4ebdfa 100644
--- a/catalyst/base/resume.py
+++ b/catalyst/base/resume.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
'''resume.py
diff --git a/targets/stage1/build.py b/targets/stage1/build.py
index fa4fd136..4373126b 100755
--- a/targets/stage1/build.py
+++ b/targets/stage1/build.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
import os
import sys
--
2.29.2

View File

@ -1,20 +0,0 @@
diff --git a/targets/support/chroot-functions.sh b/targets/support/chroot-functions.sh
index f3727d0..e1c82c1 100755
--- a/targets/support/chroot-functions.sh
+++ b/targets/support/chroot-functions.sh
@@ -285,13 +285,13 @@ run_merge() {
}
show_debug() {
- if [ "${clst_DEBUG}" = "1" ]
+ if [ -n "${clst_DEBUG}" ]
then
unset PACKAGES
echo "DEBUG:"
echo "Profile/target info:"
echo "Profile inheritance:"
- python -c 'import portage; print(portage.settings.profiles)'
+ python3 -c 'import portage; print(portage.settings.profiles)'
echo
# TODO: make this work on non-portage
emerge --info

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>catalyst@gentoo.org</email>
</maintainer>
<maintainer type="project">
<email>livecd@gentoo.org</email>
<name>Gentoo LiveCD Project</name>
</maintainer>
<use>
<flag name="ccache">Enables ccache support</flag>
<flag name="iso">Pulls in the depends for building iso images</flag>
<flag name="system-bootloader">Pulls in the depends needed to setup livecd bootloader from the host system rather than using a cdtar</flag>
</use>
</pkgmetadata>

View File

@ -1 +0,0 @@
DIST repo-2.8 39134 BLAKE2B af52a2c06e09de83100cb297d585f89bcbe85d6e9e5c358024a371ee4d47c59992745d1088b164fc670cdd9db7394a5f3521967e3eb80840c53993af8b0172b1 SHA512 6d577fce34eb298035a7b98c24fc21521c8c9efbdf02abc37af8a54552893ecf8cdce2db5efbc5398d7f99226408f6cc9ce2f81c2961d9d5dd21fb0264194431

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
</pkgmetadata>

View File

@ -1,32 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# NB: The $PV tracks the *repo launcher version*, not the last signed release
# of the repo project. The launcher only gets a new update when changes are
# made in it.
EAPI="7"
PYTHON_COMPAT=( python3_{6..7} )
inherit python-r1
DESCRIPTION="Google tool for managing git, particularly multiple repos"
HOMEPAGE="https://gerrit.googlesource.com/git-repo"
SRC_URI="https://storage.googleapis.com/git-repo-downloads/${P}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE=""
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="${PYTHON_DEPS}
!app-admin/radmind
!dev-util/repo"
S=${WORKDIR}
src_install() {
python_foreach_impl python_newscript "${DISTDIR}/${P}" ${PN}
}

View File

@ -3,7 +3,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_7 ) PYTHON_COMPAT=( python3_{6..10} )
inherit autotools linux-info python-r1 systemd inherit autotools linux-info python-r1 systemd

View File

@ -3,7 +3,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_{6,7} ) PYTHON_COMPAT=( python3_{6..10} )
PYTHON_REQ_USE='threads(+),xml(+)' PYTHON_REQ_USE='threads(+),xml(+)'
inherit python-single-r1 waf-utils multilib-minimal linux-info systemd pam inherit python-single-r1 waf-utils multilib-minimal linux-info systemd pam

View File

@ -1,9 +1,9 @@
# Copyright 1999-2016 Gentoo Foundation # Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=7
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
inherit bash-completion-r1 python-single-r1 inherit bash-completion-r1 python-single-r1
@ -15,12 +15,15 @@ LICENSE="Apache-2.0"
SLOT="0" SLOT="0"
KEYWORDS="amd64" KEYWORDS="amd64"
IUSE="" IUSE=""
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
S="${WORKDIR}/${PN}" S="${WORKDIR}/${PN}"
DEPEND="${PYTHON_DEPS}" RDEPEND="${PYTHON_DEPS}
RDEPEND="${DEPEND} $(python_gen_cond_dep '
dev-python/crcmod[${PYTHON_USEDEP}]" dev-python/crcmod[${PYTHON_USEDEP}]
')"
BDEPEND="${RDEPEND}"
src_prepare() { src_prepare() {
# Drop unused python2 code # Drop unused python2 code

View File

@ -8,7 +8,6 @@ app-misc/editor-wrapper *
=app-misc/jq-1.6-r3 ~arm64 =app-misc/jq-1.6-r3 ~arm64
~app-arch/pbzip2-1.1.12 ~arm64 ~app-arch/pbzip2-1.1.12 ~arm64
=app-arch/pigz-2.3.3 ~arm64 =app-arch/pigz-2.3.3 ~arm64
=app-text/asciidoc-8.6.9-r3 ~arm64
=dev-cpp/gflags-2.2.0 ~arm64 =dev-cpp/gflags-2.2.0 ~arm64
=dev-cpp/glog-0.3.4-r1 ~arm64 =dev-cpp/glog-0.3.4-r1 ~arm64
=dev-embedded/u-boot-tools-2021.04_rc2 ~arm64 =dev-embedded/u-boot-tools-2021.04_rc2 ~arm64
@ -20,7 +19,6 @@ app-misc/editor-wrapper *
=dev-libs/libassuan-2.5.1 ~arm64 =dev-libs/libassuan-2.5.1 ~arm64
=dev-libs/libevent-2.1.8 ~arm64 =dev-libs/libevent-2.1.8 ~arm64
=dev-libs/liblinear-210-r1 ~arm64 =dev-libs/liblinear-210-r1 ~arm64
=dev-libs/libnl-3.2.27 ~arm64
=dev-libs/libusb-1.0.21 ~arm64 =dev-libs/libusb-1.0.21 ~arm64
# needed to force enable userspace-rcu for arm64 # needed to force enable userspace-rcu for arm64
@ -29,32 +27,8 @@ app-misc/editor-wrapper *
=dev-perl/Text-Unidecode-1.270.0 ~arm64 =dev-perl/Text-Unidecode-1.270.0 ~arm64
# needed by arm64-native SDK # needed by arm64-native SDK
=dev-python/astroid-1.4.8 *
=dev-python/backports-functools-lru-cache-1.3 *
=dev-python/configparser-3.5.0 *
=dev-python/ctypesgen-0_p72-r1 *
=dev-python/flake8-2.5.4 ~arm64
# needed by arm64-native SDK
=dev-python/isort-4.2.5 *
=dev-python/lazy-object-proxy-1.2.1 *
=dev-python/mako-1.0.3 ~arm64
# needed by arm64-native SDK
=dev-python/mccabe-0.2.1 *
dev-python/pep8 ~arm64
# needed by arm64-native SDK
=dev-python/pyflakes-0.8.1 *
=dev-python/pylint-1.6.5-r1 *
=dev-python/wrapt-1.10.5 *
dev-util/checkbashisms * dev-util/checkbashisms *
=dev-util/ninja-1.8.2 ~arm64
# needed by arm64-native SDK # needed by arm64-native SDK
dev-util/patchelf * dev-util/patchelf *
@ -85,13 +59,11 @@ sys-apps/dtc ~arm64
# needed by arm64-native SDK # needed by arm64-native SDK
sys-apps/debianutils * sys-apps/debianutils *
=sys-apps/i2c-tools-3.1.1-r1 ~arm64
# needed to force enable lshw for arm64 # needed to force enable lshw for arm64
=sys-apps/lshw-02.17b-r2 ** =sys-apps/lshw-02.17b-r2 **
=sys-apps/man-db-2.7.6.1-r2 ~arm64 =sys-apps/man-db-2.7.6.1-r2 ~arm64
=sys-apps/policycoreutils-3.1-r2 ~arm64 =sys-apps/policycoreutils-3.1-r3 ~arm64
=sys-apps/kexec-tools-2.0.17-r1 ~arm64 =sys-apps/kexec-tools-2.0.17-r1 ~arm64
# needed by arm64-native SDK # needed by arm64-native SDK
@ -119,9 +91,8 @@ sys-apps/debianutils *
=sys-fs/lsscsi-0.28 ~arm64 =sys-fs/lsscsi-0.28 ~arm64
=sys-fs/quota-4.04-r1 ~arm64 =sys-fs/quota-4.04-r1 ~arm64
=sys-libs/efivar-31 ~arm64 =sys-libs/efivar-31 ~arm64
=sys-libs/libcap-ng-0.7.8 ~arm64 =sys-libs/libselinux-3.1-r2 ~arm64
=sys-libs/libselinux-3.1-r1 ~arm64 =sys-libs/libsemanage-3.1-r2 ~arm64
=sys-libs/libsemanage-3.1-r1 ~arm64
=sys-libs/libsepol-3.1 ~arm64 =sys-libs/libsepol-3.1 ~arm64
=sys-power/iasl-20161222 ~arm64 =sys-power/iasl-20161222 ~arm64
=sys-process/tini-0.18.0 ~arm64 =sys-process/tini-0.18.0 ~arm64

View File

@ -1,3 +1 @@
# arm64 provided # arm64 provided
dev-libs/gobject-introspection-1.40.0-r1

View File

@ -13,13 +13,13 @@ USE_EXPAND="${USE_EXPAND} GO_VERSION"
# Extra use flags for CoreOS SDK # Extra use flags for CoreOS SDK
USE="${USE} cros_host expat -cracklib -introspection -cups -tcpd -berkdb" USE="${USE} cros_host expat -cracklib -introspection -cups -tcpd -berkdb"
# Continue using Python 2 as the default version, but build Python 3 support. # Use Python 3 as the default version
USE="${USE} python_single_target_python2_7 -python_single_target_python3_6" USE="${USE} -python_single_target_python2_7 python_single_target_python3_9"
USE="${USE} python_targets_python2_7 python_targets_python3_6" USE="${USE} -python_targets_python2_7 python_targets_python3_9"
# Continue using Python 2 as the default version, but build Python 3 in SDK too. # Use Python 3 as the default version
BOOTSTRAP_USE="${BOOTSTRAP_USE} python_single_target_python2_7 -python_single_target_python3_6" BOOTSTRAP_USE="${BOOTSTRAP_USE} -python_single_target_python2_7 python_single_target_python3_9"
BOOTSTRAP_USE="${BOOTSTRAP_USE} python_targets_python2_7 python_targets_python3_6" BOOTSTRAP_USE="${BOOTSTRAP_USE} -python_targets_python2_7 python_targets_python3_9"
# Never install cron or cron jobs # Never install cron or cron jobs
USE="${USE} -cron" USE="${USE} -cron"

View File

@ -9,15 +9,12 @@
=coreos-devel/fero-client-0.1.1 ** =coreos-devel/fero-client-0.1.1 **
# Accept unstable host Rust compilers # Accept unstable host Rust compilers
=dev-lang/rust-1.57.0 ~amd64 ~arm64 =dev-lang/rust-1.57.0-r1 ~amd64 ~arm64
=virtual/rust-1.57.0 ~amd64 ~arm64 =virtual/rust-1.57.0 ~amd64 ~arm64
# dev-libs/openssl-3.0.0 is still in testing phase at this point # dev-libs/openssl-3.0.0 is still in testing phase at this point
=dev-libs/openssl-3.0.0 ~amd64 ~arm64 =dev-libs/openssl-3.0.0 ~amd64 ~arm64
# Needed by coreos-oem-gce
dev-python/boto ~amd64 ~arm64
# no version marked stable upstream # no version marked stable upstream
dev-util/checkbashisms dev-util/checkbashisms
@ -25,9 +22,8 @@ dev-util/checkbashisms
=dev-libs/libgcrypt-1.9.4 ~amd64 ~arm64 =dev-libs/libgcrypt-1.9.4 ~amd64 ~arm64
=dev-libs/libxml2-2.9.12-r2 ~amd64 ~arm64 # needed for arm64 sdk
=dev-util/pahole-1.20 ~arm64
=dev-util/dwarves-1.19 ~amd64
=net-libs/gnutls-3.7.1 ~amd64 ~arm64 =net-libs/gnutls-3.7.1 ~amd64 ~arm64

View File

@ -14,20 +14,7 @@ dev-vcs/git webdav curl bash-completion
net-misc/curl kerberos threads telnet net-misc/curl kerberos threads telnet
net-misc/iputils arping tracepath traceroute net-misc/iputils arping tracepath traceroute
sys-devel/gettext -git sys-devel/gettext -git
app-emulation/qemu aio caps curl -doc ncurses png python threads uuid vhost-net virtfs vnc -xkb -slirp -jpeg qemu_softmmu_targets_x86_64 qemu_softmmu_targets_aarch64 python_targets_python3_7 python_single_target_python3_6 app-emulation/qemu aio caps curl -doc ncurses png python threads uuid vhost-net virtfs vnc -xkb -slirp -jpeg qemu_softmmu_targets_x86_64 qemu_softmmu_targets_aarch64
# python3 problems
app-portage/gentoolkit python_single_target_python3_6
sys-apps/portage python_single_target_python3_6
# python3 only
dev-util/dwarves python_single_target_python3_6
dev-util/gdbus-codegen python_single_target_python3_6
dev-util/glib-utils python_single_target_python3_6
net-fs/samba python_single_target_python3_6
sys-libs/talloc python_single_target_python3_6
sys-libs/tdb python_single_target_python3_6
sys-libs/tevent python_single_target_python3_6
sys-apps/gptfdisk -icu sys-apps/gptfdisk -icu
@ -36,7 +23,7 @@ sys-libs/gdbm berkdb
dev-vcs/git -pcre-jit -perl -iconv dev-vcs/git -pcre-jit -perl -iconv
net-analyzer/nmap ncat -lua net-analyzer/nmap ncat -system-lua
# removes mta dependencies # removes mta dependencies
app-admin/sudo -sendmail app-admin/sudo -sendmail

View File

@ -4,9 +4,6 @@ app-crypt/gnupg smartcard ssl
# We don't need integration with cvs, perl, or subversion in git, so we can # We don't need integration with cvs, perl, or subversion in git, so we can
dev-vcs/git cvs perl subversion dev-vcs/git cvs perl subversion
# not needed, requires cython
dev-lang/yasm python
# not needed, requires dev-lang/python-exec # not needed, requires dev-lang/python-exec
sys-apps/util-linux python sys-apps/util-linux python

View File

@ -1,13 +1,15 @@
# Never enable experimental code # Never enable experimental code
kdbus kdbus
# We default to python 3.6 for now # We default to python 3.9 for now
python_targets_python2_7
python_single_target_python2_7
python_targets_python3_6
python_single_target_python3_6
python_targets_python3_7 python_targets_python3_7
python_single_target_python3_7 python_single_target_python3_7
python_targets_python3_8 python_targets_python3_8
python_single_target_python3_8 python_single_target_python3_8
python_targets_python3_9
python_single_target_python3_9
python_targets_python3_10 python_targets_python3_10
python_single_target_python3_10 python_single_target_python3_10

View File

@ -2,4 +2,4 @@
sys-auth/sssd-1.13.1 sys-auth/sssd-1.13.1
# Stick to one version of Python in the ACI. # Stick to one version of Python in the ACI.
dev-lang/python-2.7 dev-lang/python-3.9

View File

@ -8,7 +8,6 @@ dev-libs/dbus-glib tools
dev-libs/elfutils -utils dev-libs/elfutils -utils
dev-libs/openssl pkcs11 dev-libs/openssl pkcs11
dev-util/perf -doc -demangle -tui -ncurses -perl -python dev-util/perf -doc -demangle -tui -ncurses -perl -python
dev-util/perf-next -doc -demangle -tui -ncurses -perl -python
net-analyzer/tcpdump -chroot net-analyzer/tcpdump -chroot
net-misc/dhcp -server net-misc/dhcp -server
net-misc/iperf threads net-misc/iperf threads

View File

@ -28,8 +28,5 @@ sys-libs/zlib static-libs
virtual/jpeg static-libs virtual/jpeg static-libs
x11-libs/pixman static-libs x11-libs/pixman static-libs
cross-x86_64-cros-linux-gnu/gdb python_single_target_python3_6 -python_single_target_python3_7
cross-aarch64-cros-linux-gnu/gdb python_single_target_python3_6 -python_single_target_python3_7
# Enable gssapi for SDK # Enable gssapi for SDK
net-dns/bind-tools gssapi net-dns/bind-tools gssapi

View File

@ -3,7 +3,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_7 ) PYTHON_COMPAT=( python3_{6..10} )
inherit autotools flag-o-matic linux-info python-any-r1 readme.gentoo-r1 systemd virtualx multilib-minimal inherit autotools flag-o-matic linux-info python-any-r1 readme.gentoo-r1 systemd virtualx multilib-minimal
DESCRIPTION="A message bus system, a simple way for applications to talk to each other" DESCRIPTION="A message bus system, a simple way for applications to talk to each other"

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI="7" EAPI="7"
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
PYTHON_REQ_USE="xml" PYTHON_REQ_USE="xml"
inherit multilib python-r1 toolchain-funcs bash-completion-r1 inherit multilib python-r1 toolchain-funcs bash-completion-r1

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI="7" EAPI="7"
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
PYTHON_REQ_USE="xml" PYTHON_REQ_USE="xml"
inherit multilib python-r1 toolchain-funcs bash-completion-r1 inherit multilib python-r1 toolchain-funcs bash-completion-r1

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI="7" EAPI="7"
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
PYTHON_REQ_USE="xml" PYTHON_REQ_USE="xml"
inherit multilib python-r1 toolchain-funcs bash-completion-r1 inherit multilib python-r1 toolchain-funcs bash-completion-r1

View File

@ -8,7 +8,7 @@
EAPI=7 EAPI=7
DISTUTILS_USE_SETUPTOOLS=no DISTUTILS_USE_SETUPTOOLS=no
PYTHON_COMPAT=( pypy3 python3_{6..7} ) PYTHON_COMPAT=( pypy3 python3_{6..10} )
PYTHON_REQ_USE='bzip2(+),threads(+)' PYTHON_REQ_USE='bzip2(+),threads(+)'
inherit distutils-r1 linux-info tmpfiles prefix inherit distutils-r1 linux-info tmpfiles prefix

View File

@ -2,8 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=7 EAPI=7
# Flatcar: We still have python 3.6. PYTHON_COMPAT=( python3_{6..10} )
PYTHON_COMPAT=( python3_{5,6,7} )
if [[ ${PV} == 9999 ]]; then if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/systemd/systemd.git" EGIT_REPO_URI="https://github.com/systemd/systemd.git"

View File

@ -8,7 +8,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_7 ) PYTHON_COMPAT=( python3_{6..10} )
inherit autotools flag-o-matic linux-info multilib-minimal python-single-r1 pam systemd toolchain-funcs inherit autotools flag-o-matic linux-info multilib-minimal python-single-r1 pam systemd toolchain-funcs

View File

@ -16,7 +16,7 @@ fi
inherit cros-workon inherit cros-workon
if [[ -n ${GRUB_AUTOGEN} ]]; then if [[ -n ${GRUB_AUTOGEN} ]]; then
PYTHON_COMPAT=( python{3_5,3_6,3_7} ) PYTHON_COMPAT=( python3_{6..10} )
WANT_LIBTOOL=none WANT_LIBTOOL=none
inherit autotools python-any-r1 inherit autotools python-any-r1
fi fi

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=6
PYTHON_COMPAT=( python{3_6,3_7} ) PYTHON_COMPAT=( python3_{6..10} )
inherit eutils flag-o-matic python-single-r1 toolchain-funcs inherit eutils flag-o-matic python-single-r1 toolchain-funcs

View File

@ -3,7 +3,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_{6,7} ) PYTHON_COMPAT=( python3_{6..10} )
TMPFILES_OPTIONAL=1 TMPFILES_OPTIONAL=1
inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \

View File

@ -3,7 +3,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
PYTHON_REQ_USE="threads(+)" PYTHON_REQ_USE="threads(+)"
inherit python-single-r1 waf-utils multilib-minimal inherit python-single-r1 waf-utils multilib-minimal

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI="7" EAPI="7"
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
USE_RUBY="ruby25 ruby26 ruby27" USE_RUBY="ruby25 ruby26 ruby27"
# No, I am not calling ruby-ng # No, I am not calling ruby-ng

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI="7" EAPI="7"
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
USE_RUBY="ruby25 ruby26 ruby27" USE_RUBY="ruby25 ruby26 ruby27"
# No, I am not calling ruby-ng # No, I am not calling ruby-ng

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI="7" EAPI="7"
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
USE_RUBY="ruby25 ruby26 ruby27" USE_RUBY="ruby25 ruby26 ruby27"
# No, I am not calling ruby-ng # No, I am not calling ruby-ng

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
# flatcar changes # flatcar changes
inherit python-r1 toolchain-funcs multilib-minimal systemd inherit python-r1 toolchain-funcs multilib-minimal systemd

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
inherit python-r1 toolchain-funcs multilib-minimal inherit python-r1 toolchain-funcs multilib-minimal

View File

@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_6 ) PYTHON_COMPAT=( python3_{6..10} )
inherit python-r1 toolchain-funcs multilib-minimal inherit python-r1 toolchain-funcs multilib-minimal