mirror of https://github.com/xemu-project/xemu.git
* Fix and test the VISTR instruction on s390x
* Some more small s390x fixes and maintainer updates * Make sure to remove all temporary files from qtests * OpenBSD VM test update to version 7.2 * Add sndio to FreeBSD tests * More patches to enable the qtests on Windows -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmNb1x8RHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbXmcA//TCliiFkhprVxzIqy7zb9uz2Odu+sS4dT azUSlXvC14fECm/Rb/rd2VLqCu5x2er8CYauxKQ4VhRImzcDta4kvpt/HKIppN2t sqw5tipJL0DYcWBwYL1llvfutM26M+Oh0igwR8uV7b+W1FjojEZdcOr9IZ6E6V55 wQCE5OHm0VCr61QeI5IBfZTsiPo+DFomUCpj7w66j6i0CVDvmpoe36tCmvGgrcpZ SP7ep7/Iq+dnGh2YnJyoUOPlXeeiBCxAygOVnIRXptDeniGoliCFn7ksLdKDQ9qY 69pSPR/W7mTZB/HkCRalAbYuYrI9Rcqxdu6c9vcyB8Pr0snQLTf8qThY+BJ2oC4w JSGgWVniAk5MmrDazwNRkSbgngYLYf+CcT1h5AANuU5Kt50Bdy9Y3TuL5YVmofEp N4bypV0ICImQyDECz76+i5/iJOcWiRyjMfLT6y00dspeuy983xHakrsHGD8xj0U/ 3IVxnF9bDnUSVg6lFhYrgCB3dRG1TNPJoYQOM7raS5MAPRrDtIuSabwtyn84jo4+ 9kZRPJBriMBHNsCjGVlJ9CATmaK1SKVAbRcabjgOKoIwhZTpAe6JalykREUJlTys hB2V//lWWYPaSpzwY+OkvxoOmJIziixEskOmx6hPcoxID5v/bqlR69W15aUlKuLq VWFb+/yMvaE= =h0Ep -----END PGP SIGNATURE----- Merge tag 'pull-request-2022-10-28' of https://gitlab.com/thuth/qemu into staging * Fix and test the VISTR instruction on s390x * Some more small s390x fixes and maintainer updates * Make sure to remove all temporary files from qtests * OpenBSD VM test update to version 7.2 * Add sndio to FreeBSD tests * More patches to enable the qtests on Windows # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmNb1x8RHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbXmcA//TCliiFkhprVxzIqy7zb9uz2Odu+sS4dT # azUSlXvC14fECm/Rb/rd2VLqCu5x2er8CYauxKQ4VhRImzcDta4kvpt/HKIppN2t # sqw5tipJL0DYcWBwYL1llvfutM26M+Oh0igwR8uV7b+W1FjojEZdcOr9IZ6E6V55 # wQCE5OHm0VCr61QeI5IBfZTsiPo+DFomUCpj7w66j6i0CVDvmpoe36tCmvGgrcpZ # SP7ep7/Iq+dnGh2YnJyoUOPlXeeiBCxAygOVnIRXptDeniGoliCFn7ksLdKDQ9qY # 69pSPR/W7mTZB/HkCRalAbYuYrI9Rcqxdu6c9vcyB8Pr0snQLTf8qThY+BJ2oC4w # JSGgWVniAk5MmrDazwNRkSbgngYLYf+CcT1h5AANuU5Kt50Bdy9Y3TuL5YVmofEp # N4bypV0ICImQyDECz76+i5/iJOcWiRyjMfLT6y00dspeuy983xHakrsHGD8xj0U/ # 3IVxnF9bDnUSVg6lFhYrgCB3dRG1TNPJoYQOM7raS5MAPRrDtIuSabwtyn84jo4+ # 9kZRPJBriMBHNsCjGVlJ9CATmaK1SKVAbRcabjgOKoIwhZTpAe6JalykREUJlTys # hB2V//lWWYPaSpzwY+OkvxoOmJIziixEskOmx6hPcoxID5v/bqlR69W15aUlKuLq # VWFb+/yMvaE= # =h0Ep # -----END PGP SIGNATURE----- # gpg: Signature made Fri 28 Oct 2022 09:20:31 EDT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2022-10-28' of https://gitlab.com/thuth/qemu: (21 commits) tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32 tests/qtest: libqos: Do not build virtio-9p unconditionally tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled tests/qtest: libqtest: Introduce qtest_wait_qemu() tests/qtest: Use EXIT_FAILURE instead of magic number tests/qtest: device-plug-test: Reverse the usage of double/single quotes tests/qtest: Support libqtest to build and run on Windows tests/qtest: Use send/recv for socket communication accel/qtest: Support qtest accelerator for Windows tests: Add sndio to the FreeBSD CI containers / VM tests/vm: update openbsd to release 7.2 tests/qtest/libqos/e1000e: Use e1000_regs.h tests/qtest/cxl-test: Remove temporary directories after testing tests/qtest/tpm: Clean up remainders of swtpm MAINTAINERS: target/s390x/: add Ilya as reviewer tests/tcg/s390x: Add a test for the vistr instruction target/s390x: Fix emulation of the VISTR instruction tests/tcg/s390x: Test compiler flags only once, not every time s390x/tod-kvm: don't save/restore the TOD in PV guests s390x: step down as general arch maintainer ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
395a90be6f
|
@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
|
||||||
NINJA='/usr/local/bin/ninja'
|
NINJA='/usr/local/bin/ninja'
|
||||||
PACKAGING_COMMAND='pkg'
|
PACKAGING_COMMAND='pkg'
|
||||||
PIP3='/usr/local/bin/pip-3.8'
|
PIP3='/usr/local/bin/pip-3.8'
|
||||||
PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
|
PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy sndio spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
|
||||||
PYPI_PKGS=''
|
PYPI_PKGS=''
|
||||||
PYTHON='/usr/local/bin/python3'
|
PYTHON='/usr/local/bin/python3'
|
||||||
|
|
|
@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
|
||||||
NINJA='/usr/local/bin/ninja'
|
NINJA='/usr/local/bin/ninja'
|
||||||
PACKAGING_COMMAND='pkg'
|
PACKAGING_COMMAND='pkg'
|
||||||
PIP3='/usr/local/bin/pip-3.8'
|
PIP3='/usr/local/bin/pip-3.8'
|
||||||
PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
|
PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy sndio spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
|
||||||
PYPI_PKGS=''
|
PYPI_PKGS=''
|
||||||
PYTHON='/usr/local/bin/python3'
|
PYTHON='/usr/local/bin/python3'
|
||||||
|
|
|
@ -84,7 +84,6 @@ T: git https://github.com/vivier/qemu.git trivial-patches
|
||||||
Architecture support
|
Architecture support
|
||||||
--------------------
|
--------------------
|
||||||
S390 general architecture support
|
S390 general architecture support
|
||||||
M: Cornelia Huck <cohuck@redhat.com>
|
|
||||||
M: Thomas Huth <thuth@redhat.com>
|
M: Thomas Huth <thuth@redhat.com>
|
||||||
S: Supported
|
S: Supported
|
||||||
F: configs/devices/s390x-softmmu/default.mak
|
F: configs/devices/s390x-softmmu/default.mak
|
||||||
|
@ -106,7 +105,6 @@ F: docs/system/target-s390x.rst
|
||||||
F: docs/system/s390x/
|
F: docs/system/s390x/
|
||||||
F: tests/migration/s390x/
|
F: tests/migration/s390x/
|
||||||
K: ^Subject:.*(?i)s390x?
|
K: ^Subject:.*(?i)s390x?
|
||||||
T: git https://gitlab.com/cohuck/qemu.git s390-next
|
|
||||||
L: qemu-s390x@nongnu.org
|
L: qemu-s390x@nongnu.org
|
||||||
|
|
||||||
MIPS general architecture support
|
MIPS general architecture support
|
||||||
|
@ -305,6 +303,7 @@ F: target/rx/
|
||||||
S390 TCG CPUs
|
S390 TCG CPUs
|
||||||
M: Richard Henderson <richard.henderson@linaro.org>
|
M: Richard Henderson <richard.henderson@linaro.org>
|
||||||
M: David Hildenbrand <david@redhat.com>
|
M: David Hildenbrand <david@redhat.com>
|
||||||
|
R: Ilya Leoshkevich <iii@linux.ibm.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: target/s390x/
|
F: target/s390x/
|
||||||
F: target/s390x/tcg
|
F: target/s390x/tcg
|
||||||
|
|
|
@ -21,8 +21,6 @@
|
||||||
static void *dummy_cpu_thread_fn(void *arg)
|
static void *dummy_cpu_thread_fn(void *arg)
|
||||||
{
|
{
|
||||||
CPUState *cpu = arg;
|
CPUState *cpu = arg;
|
||||||
sigset_t waitset;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
rcu_register_thread();
|
rcu_register_thread();
|
||||||
|
|
||||||
|
@ -32,8 +30,13 @@ static void *dummy_cpu_thread_fn(void *arg)
|
||||||
cpu->can_do_io = 1;
|
cpu->can_do_io = 1;
|
||||||
current_cpu = cpu;
|
current_cpu = cpu;
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
sigset_t waitset;
|
||||||
|
int r;
|
||||||
|
|
||||||
sigemptyset(&waitset);
|
sigemptyset(&waitset);
|
||||||
sigaddset(&waitset, SIG_IPI);
|
sigaddset(&waitset, SIG_IPI);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* signal CPU creation */
|
/* signal CPU creation */
|
||||||
cpu_thread_signal_created(cpu);
|
cpu_thread_signal_created(cpu);
|
||||||
|
@ -41,6 +44,7 @@ static void *dummy_cpu_thread_fn(void *arg)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
qemu_mutex_unlock_iothread();
|
qemu_mutex_unlock_iothread();
|
||||||
|
#ifndef _WIN32
|
||||||
do {
|
do {
|
||||||
int sig;
|
int sig;
|
||||||
r = sigwait(&waitset, &sig);
|
r = sigwait(&waitset, &sig);
|
||||||
|
@ -49,6 +53,9 @@ static void *dummy_cpu_thread_fn(void *arg)
|
||||||
perror("sigwait");
|
perror("sigwait");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
qemu_sem_wait(&cpu->sem);
|
||||||
|
#endif
|
||||||
qemu_mutex_lock_iothread();
|
qemu_mutex_lock_iothread();
|
||||||
qemu_wait_io_event(cpu);
|
qemu_wait_io_event(cpu);
|
||||||
} while (!cpu->unplug);
|
} while (!cpu->unplug);
|
||||||
|
@ -69,4 +76,7 @@ void dummy_start_vcpu_thread(CPUState *cpu)
|
||||||
cpu->cpu_index);
|
cpu->cpu_index);
|
||||||
qemu_thread_create(cpu->thread, thread_name, dummy_cpu_thread_fn, cpu,
|
qemu_thread_create(cpu->thread, thread_name, dummy_cpu_thread_fn, cpu,
|
||||||
QEMU_THREAD_JOINABLE);
|
QEMU_THREAD_JOINABLE);
|
||||||
|
#ifdef _WIN32
|
||||||
|
qemu_sem_init(&cpu->sem, 0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,5 +16,5 @@ dummy_ss.add(files(
|
||||||
'dummy-cpus.c',
|
'dummy-cpus.c',
|
||||||
))
|
))
|
||||||
|
|
||||||
specific_ss.add_all(when: ['CONFIG_SOFTMMU', 'CONFIG_POSIX'], if_true: dummy_ss)
|
specific_ss.add_all(when: ['CONFIG_SOFTMMU'], if_true: dummy_ss)
|
||||||
specific_ss.add_all(when: ['CONFIG_XEN'], if_true: dummy_ss)
|
specific_ss.add_all(when: ['CONFIG_XEN'], if_true: dummy_ss)
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
qtest_module_ss.add(when: ['CONFIG_SOFTMMU', 'CONFIG_POSIX'],
|
qtest_module_ss.add(when: ['CONFIG_SOFTMMU'], if_true: files('qtest.c'))
|
||||||
if_true: files('qtest.c'))
|
|
||||||
|
|
|
@ -793,6 +793,7 @@
|
||||||
#define E1000_CTRL_EXT_ASDCHK 0x00001000 /* auto speed detection check */
|
#define E1000_CTRL_EXT_ASDCHK 0x00001000 /* auto speed detection check */
|
||||||
#define E1000_CTRL_EXT_EE_RST 0x00002000 /* EEPROM reset */
|
#define E1000_CTRL_EXT_EE_RST 0x00002000 /* EEPROM reset */
|
||||||
#define E1000_CTRL_EXT_LINK_EN 0x00010000 /* enable link status from external LINK_0 and LINK_1 pins */
|
#define E1000_CTRL_EXT_LINK_EN 0x00010000 /* enable link status from external LINK_0 and LINK_1 pins */
|
||||||
|
#define E1000_CTRL_EXT_DRV_LOAD 0x10000000 /* Driver loaded bit for FW */
|
||||||
#define E1000_CTRL_EXT_EIAME 0x01000000
|
#define E1000_CTRL_EXT_EIAME 0x01000000
|
||||||
#define E1000_CTRL_EXT_IAME 0x08000000 /* Int ACK Auto-mask */
|
#define E1000_CTRL_EXT_IAME 0x08000000 /* Int ACK Auto-mask */
|
||||||
#define E1000_CTRL_EXT_PBA_CLR 0x80000000 /* PBA Clear */
|
#define E1000_CTRL_EXT_PBA_CLR 0x80000000 /* PBA Clear */
|
||||||
|
|
|
@ -50,7 +50,7 @@ static int __s390_pv_cmd(uint32_t cmd, const char *cmdname, void *data)
|
||||||
* This macro lets us pass the command as a string to the function so
|
* This macro lets us pass the command as a string to the function so
|
||||||
* we can print it on an error.
|
* we can print it on an error.
|
||||||
*/
|
*/
|
||||||
#define s390_pv_cmd(cmd, data) __s390_pv_cmd(cmd, #cmd, data);
|
#define s390_pv_cmd(cmd, data) __s390_pv_cmd(cmd, #cmd, data)
|
||||||
#define s390_pv_cmd_exit(cmd, data) \
|
#define s390_pv_cmd_exit(cmd, data) \
|
||||||
{ \
|
{ \
|
||||||
int rc; \
|
int rc; \
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include "qemu/module.h"
|
#include "qemu/module.h"
|
||||||
#include "sysemu/runstate.h"
|
#include "sysemu/runstate.h"
|
||||||
#include "hw/s390x/tod.h"
|
#include "hw/s390x/tod.h"
|
||||||
|
#include "hw/s390x/pv.h"
|
||||||
#include "kvm/kvm_s390x.h"
|
#include "kvm/kvm_s390x.h"
|
||||||
|
|
||||||
static void kvm_s390_get_tod_raw(S390TOD *tod, Error **errp)
|
static void kvm_s390_get_tod_raw(S390TOD *tod, Error **errp)
|
||||||
|
@ -84,6 +85,14 @@ static void kvm_s390_tod_vm_state_change(void *opaque, bool running,
|
||||||
S390TODState *td = opaque;
|
S390TODState *td = opaque;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Under PV, the clock is under ultravisor control, hence we cannot restore
|
||||||
|
* it on resume.
|
||||||
|
*/
|
||||||
|
if (s390_is_pv()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (running && td->stopped) {
|
if (running && td->stopped) {
|
||||||
/* Set the old TOD when running the VM - start the TOD clock. */
|
/* Set the old TOD when running the VM - start the TOD clock. */
|
||||||
kvm_s390_set_tod_raw(&td->base, &local_err);
|
kvm_s390_set_tod_raw(&td->base, &local_err);
|
||||||
|
|
|
@ -333,6 +333,7 @@ struct CPUState {
|
||||||
struct QemuThread *thread;
|
struct QemuThread *thread;
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
HANDLE hThread;
|
HANDLE hThread;
|
||||||
|
QemuSemaphore sem;
|
||||||
#endif
|
#endif
|
||||||
int thread_id;
|
int thread_id;
|
||||||
bool running, has_waiter;
|
bool running, has_waiter;
|
||||||
|
|
|
@ -33,6 +33,19 @@ int qemu_socketpair(int domain, int type, int protocol, int sv[2]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
|
int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
|
||||||
|
/*
|
||||||
|
* A variant of send(2) which handles partial send.
|
||||||
|
*
|
||||||
|
* Return the number of bytes transferred over the socket.
|
||||||
|
* Set errno if fewer than `count' bytes are sent.
|
||||||
|
*
|
||||||
|
* This function don't work with non-blocking socket's.
|
||||||
|
* Any of the possibilities with non-blocking socket's is bad:
|
||||||
|
* - return a short write (then name is wrong)
|
||||||
|
* - busy wait adding (errno == EAGAIN) to the loop
|
||||||
|
*/
|
||||||
|
ssize_t qemu_send_full(int s, const void *buf, size_t count)
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT;
|
||||||
int socket_set_cork(int fd, int v);
|
int socket_set_cork(int fd, int v);
|
||||||
int socket_set_nodelay(int fd);
|
int socket_set_nodelay(int fd);
|
||||||
void qemu_socket_set_block(int fd);
|
void qemu_socket_set_block(int fd);
|
||||||
|
|
|
@ -437,18 +437,19 @@ void qemu_wait_io_event(CPUState *cpu)
|
||||||
|
|
||||||
void cpus_kick_thread(CPUState *cpu)
|
void cpus_kick_thread(CPUState *cpu)
|
||||||
{
|
{
|
||||||
#ifndef _WIN32
|
|
||||||
int err;
|
|
||||||
|
|
||||||
if (cpu->thread_kicked) {
|
if (cpu->thread_kicked) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cpu->thread_kicked = true;
|
cpu->thread_kicked = true;
|
||||||
err = pthread_kill(cpu->thread->thread, SIG_IPI);
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
int err = pthread_kill(cpu->thread->thread, SIG_IPI);
|
||||||
if (err && err != ESRCH) {
|
if (err && err != ESRCH) {
|
||||||
fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
|
fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
qemu_sem_post(&cpu->sem);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2723,7 +2723,7 @@ static DisasJumpType op_vfene(DisasContext *s, DisasOps *o)
|
||||||
|
|
||||||
static DisasJumpType op_vistr(DisasContext *s, DisasOps *o)
|
static DisasJumpType op_vistr(DisasContext *s, DisasOps *o)
|
||||||
{
|
{
|
||||||
const uint8_t es = get_field(s, m4);
|
const uint8_t es = get_field(s, m3);
|
||||||
const uint8_t m5 = get_field(s, m5);
|
const uint8_t m5 = get_field(s, m5);
|
||||||
static gen_helper_gvec_2 * const g[3] = {
|
static gen_helper_gvec_2 * const g[3] = {
|
||||||
gen_helper_gvec_vistr8,
|
gen_helper_gvec_vistr8,
|
||||||
|
|
|
@ -94,6 +94,7 @@ RUN apk update && \
|
||||||
sdl2_image-dev \
|
sdl2_image-dev \
|
||||||
sed \
|
sed \
|
||||||
snappy-dev \
|
snappy-dev \
|
||||||
|
sndio-dev \
|
||||||
sparse \
|
sparse \
|
||||||
spice-dev \
|
spice-dev \
|
||||||
spice-protocol \
|
spice-protocol \
|
||||||
|
@ -119,8 +120,8 @@ RUN apk update && \
|
||||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
|
@ -130,8 +130,8 @@ RUN dnf distro-sync -y && \
|
||||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
|
@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdextrautils \
|
bsdextrautils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
llvm \
|
libspice-protocol-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
meson \
|
make \
|
||||||
ncat \
|
meson \
|
||||||
ninja-build \
|
ncat \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-sphinx \
|
python3-pip \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-yaml \
|
python3-venv \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
tar \
|
sparse \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo && \
|
tesseract-ocr-eng \
|
||||||
|
texinfo && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
dpkg-reconfigure locales
|
dpkg-reconfigure locales
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
dpkg --add-architecture amd64 && \
|
dpkg --add-architecture amd64 && \
|
||||||
|
@ -74,76 +75,76 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
g++-x86-64-linux-gnu \
|
g++-x86-64-linux-gnu \
|
||||||
gcc-x86-64-linux-gnu \
|
gcc-x86-64-linux-gnu \
|
||||||
libaio-dev:amd64 \
|
libaio-dev:amd64 \
|
||||||
libasan5:amd64 \
|
libasan5:amd64 \
|
||||||
libasound2-dev:amd64 \
|
libasound2-dev:amd64 \
|
||||||
libattr1-dev:amd64 \
|
libattr1-dev:amd64 \
|
||||||
libbpf-dev:amd64 \
|
libbpf-dev:amd64 \
|
||||||
libbrlapi-dev:amd64 \
|
libbrlapi-dev:amd64 \
|
||||||
libbz2-dev:amd64 \
|
libbz2-dev:amd64 \
|
||||||
libc6-dev:amd64 \
|
libc6-dev:amd64 \
|
||||||
libcacard-dev:amd64 \
|
libcacard-dev:amd64 \
|
||||||
libcap-ng-dev:amd64 \
|
libcap-ng-dev:amd64 \
|
||||||
libcapstone-dev:amd64 \
|
libcapstone-dev:amd64 \
|
||||||
libcmocka-dev:amd64 \
|
libcmocka-dev:amd64 \
|
||||||
libcurl4-gnutls-dev:amd64 \
|
libcurl4-gnutls-dev:amd64 \
|
||||||
libdaxctl-dev:amd64 \
|
libdaxctl-dev:amd64 \
|
||||||
libdrm-dev:amd64 \
|
libdrm-dev:amd64 \
|
||||||
libepoxy-dev:amd64 \
|
libepoxy-dev:amd64 \
|
||||||
libfdt-dev:amd64 \
|
libfdt-dev:amd64 \
|
||||||
libffi-dev:amd64 \
|
libffi-dev:amd64 \
|
||||||
libfuse3-dev:amd64 \
|
libfuse3-dev:amd64 \
|
||||||
libgbm-dev:amd64 \
|
libgbm-dev:amd64 \
|
||||||
libgcrypt20-dev:amd64 \
|
libgcrypt20-dev:amd64 \
|
||||||
libglib2.0-dev:amd64 \
|
libglib2.0-dev:amd64 \
|
||||||
libglusterfs-dev:amd64 \
|
libglusterfs-dev:amd64 \
|
||||||
libgnutls28-dev:amd64 \
|
libgnutls28-dev:amd64 \
|
||||||
libgtk-3-dev:amd64 \
|
libgtk-3-dev:amd64 \
|
||||||
libibumad-dev:amd64 \
|
libibumad-dev:amd64 \
|
||||||
libibverbs-dev:amd64 \
|
libibverbs-dev:amd64 \
|
||||||
libiscsi-dev:amd64 \
|
libiscsi-dev:amd64 \
|
||||||
libjemalloc-dev:amd64 \
|
libjemalloc-dev:amd64 \
|
||||||
libjpeg62-turbo-dev:amd64 \
|
libjpeg62-turbo-dev:amd64 \
|
||||||
libjson-c-dev:amd64 \
|
libjson-c-dev:amd64 \
|
||||||
liblttng-ust-dev:amd64 \
|
liblttng-ust-dev:amd64 \
|
||||||
liblzo2-dev:amd64 \
|
liblzo2-dev:amd64 \
|
||||||
libncursesw5-dev:amd64 \
|
libncursesw5-dev:amd64 \
|
||||||
libnfs-dev:amd64 \
|
libnfs-dev:amd64 \
|
||||||
libnuma-dev:amd64 \
|
libnuma-dev:amd64 \
|
||||||
libpam0g-dev:amd64 \
|
libpam0g-dev:amd64 \
|
||||||
libpixman-1-dev:amd64 \
|
libpixman-1-dev:amd64 \
|
||||||
libpmem-dev:amd64 \
|
libpmem-dev:amd64 \
|
||||||
libpng-dev:amd64 \
|
libpng-dev:amd64 \
|
||||||
libpulse-dev:amd64 \
|
libpulse-dev:amd64 \
|
||||||
librbd-dev:amd64 \
|
librbd-dev:amd64 \
|
||||||
librdmacm-dev:amd64 \
|
librdmacm-dev:amd64 \
|
||||||
libsasl2-dev:amd64 \
|
libsasl2-dev:amd64 \
|
||||||
libsdl2-dev:amd64 \
|
libsdl2-dev:amd64 \
|
||||||
libsdl2-image-dev:amd64 \
|
libsdl2-image-dev:amd64 \
|
||||||
libseccomp-dev:amd64 \
|
libseccomp-dev:amd64 \
|
||||||
libselinux1-dev:amd64 \
|
libselinux1-dev:amd64 \
|
||||||
libslirp-dev:amd64 \
|
libslirp-dev:amd64 \
|
||||||
libsnappy-dev:amd64 \
|
libsnappy-dev:amd64 \
|
||||||
libspice-server-dev:amd64 \
|
libspice-server-dev:amd64 \
|
||||||
libssh-gcrypt-dev:amd64 \
|
libssh-gcrypt-dev:amd64 \
|
||||||
libsystemd-dev:amd64 \
|
libsystemd-dev:amd64 \
|
||||||
libtasn1-6-dev:amd64 \
|
libtasn1-6-dev:amd64 \
|
||||||
libubsan1:amd64 \
|
libubsan1:amd64 \
|
||||||
libudev-dev:amd64 \
|
libudev-dev:amd64 \
|
||||||
liburing-dev:amd64 \
|
liburing-dev:amd64 \
|
||||||
libusb-1.0-0-dev:amd64 \
|
libusb-1.0-0-dev:amd64 \
|
||||||
libusbredirhost-dev:amd64 \
|
libusbredirhost-dev:amd64 \
|
||||||
libvdeplug-dev:amd64 \
|
libvdeplug-dev:amd64 \
|
||||||
libvirglrenderer-dev:amd64 \
|
libvirglrenderer-dev:amd64 \
|
||||||
libvte-2.91-dev:amd64 \
|
libvte-2.91-dev:amd64 \
|
||||||
libxen-dev:amd64 \
|
libxen-dev:amd64 \
|
||||||
libzstd-dev:amd64 \
|
libzstd-dev:amd64 \
|
||||||
nettle-dev:amd64 \
|
nettle-dev:amd64 \
|
||||||
systemtap-sdt-dev:amd64 \
|
systemtap-sdt-dev:amd64 \
|
||||||
xfslibs-dev:amd64 \
|
xfslibs-dev:amd64 \
|
||||||
zlib1g-dev:amd64 && \
|
zlib1g-dev:amd64 && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
mkdir -p /usr/local/share/meson/cross && \
|
mkdir -p /usr/local/share/meson/cross && \
|
||||||
|
|
|
@ -11,123 +11,124 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdextrautils \
|
bsdextrautils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
clang \
|
clang \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
g++ \
|
g++ \
|
||||||
gcc \
|
gcc \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libasan5 \
|
libasan5 \
|
||||||
libasound2-dev \
|
libasound2-dev \
|
||||||
libattr1-dev \
|
libattr1-dev \
|
||||||
libbpf-dev \
|
libbpf-dev \
|
||||||
libbrlapi-dev \
|
libbrlapi-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
libc6-dev \
|
libc6-dev \
|
||||||
libcacard-dev \
|
libcacard-dev \
|
||||||
libcap-ng-dev \
|
libcap-ng-dev \
|
||||||
libcapstone-dev \
|
libcapstone-dev \
|
||||||
libcmocka-dev \
|
libcmocka-dev \
|
||||||
libcurl4-gnutls-dev \
|
libcurl4-gnutls-dev \
|
||||||
libdaxctl-dev \
|
libdaxctl-dev \
|
||||||
libdrm-dev \
|
libdrm-dev \
|
||||||
libepoxy-dev \
|
libepoxy-dev \
|
||||||
libfdt-dev \
|
libfdt-dev \
|
||||||
libffi-dev \
|
libffi-dev \
|
||||||
libfuse3-dev \
|
libfuse3-dev \
|
||||||
libgbm-dev \
|
libgbm-dev \
|
||||||
libgcrypt20-dev \
|
libgcrypt20-dev \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libglusterfs-dev \
|
libglusterfs-dev \
|
||||||
libgnutls28-dev \
|
libgnutls28-dev \
|
||||||
libgtk-3-dev \
|
libgtk-3-dev \
|
||||||
libibumad-dev \
|
libibumad-dev \
|
||||||
libibverbs-dev \
|
libibverbs-dev \
|
||||||
libiscsi-dev \
|
libiscsi-dev \
|
||||||
libjemalloc-dev \
|
libjemalloc-dev \
|
||||||
libjpeg62-turbo-dev \
|
libjpeg62-turbo-dev \
|
||||||
libjson-c-dev \
|
libjson-c-dev \
|
||||||
liblttng-ust-dev \
|
liblttng-ust-dev \
|
||||||
liblzo2-dev \
|
liblzo2-dev \
|
||||||
libncursesw5-dev \
|
libncursesw5-dev \
|
||||||
libnfs-dev \
|
libnfs-dev \
|
||||||
libnuma-dev \
|
libnuma-dev \
|
||||||
libpam0g-dev \
|
libpam0g-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libpixman-1-dev \
|
libpixman-1-dev \
|
||||||
libpmem-dev \
|
libpmem-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpulse-dev \
|
libpulse-dev \
|
||||||
librbd-dev \
|
librbd-dev \
|
||||||
librdmacm-dev \
|
librdmacm-dev \
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsdl2-dev \
|
libsdl2-dev \
|
||||||
libsdl2-image-dev \
|
libsdl2-image-dev \
|
||||||
libseccomp-dev \
|
libseccomp-dev \
|
||||||
libselinux1-dev \
|
libselinux1-dev \
|
||||||
libslirp-dev \
|
libslirp-dev \
|
||||||
libsnappy-dev \
|
libsnappy-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
libspice-server-dev \
|
libspice-protocol-dev \
|
||||||
libssh-gcrypt-dev \
|
libspice-server-dev \
|
||||||
libsystemd-dev \
|
libssh-gcrypt-dev \
|
||||||
libtasn1-6-dev \
|
libsystemd-dev \
|
||||||
libubsan1 \
|
libtasn1-6-dev \
|
||||||
libudev-dev \
|
libubsan1 \
|
||||||
liburing-dev \
|
libudev-dev \
|
||||||
libusb-1.0-0-dev \
|
liburing-dev \
|
||||||
libusbredirhost-dev \
|
libusb-1.0-0-dev \
|
||||||
libvdeplug-dev \
|
libusbredirhost-dev \
|
||||||
libvirglrenderer-dev \
|
libvdeplug-dev \
|
||||||
libvte-2.91-dev \
|
libvirglrenderer-dev \
|
||||||
libxen-dev \
|
libvte-2.91-dev \
|
||||||
libzstd-dev \
|
libxen-dev \
|
||||||
llvm \
|
libzstd-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
meson \
|
make \
|
||||||
multipath-tools \
|
meson \
|
||||||
ncat \
|
multipath-tools \
|
||||||
nettle-dev \
|
ncat \
|
||||||
ninja-build \
|
nettle-dev \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-sphinx \
|
python3-pip \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-yaml \
|
python3-venv \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
systemtap-sdt-dev \
|
sparse \
|
||||||
tar \
|
systemtap-sdt-dev \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo \
|
tesseract-ocr-eng \
|
||||||
xfslibs-dev \
|
texinfo \
|
||||||
zlib1g-dev && \
|
xfslibs-dev \
|
||||||
|
zlib1g-dev && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
|
@ -140,11 +141,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
# netmap/cscope/global
|
# netmap/cscope/global
|
||||||
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
|
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
|
||||||
apt install -y --no-install-recommends \
|
apt install -y --no-install-recommends \
|
||||||
|
|
|
@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdextrautils \
|
bsdextrautils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
llvm \
|
libspice-protocol-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
meson \
|
make \
|
||||||
ncat \
|
meson \
|
||||||
ninja-build \
|
ncat \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-sphinx \
|
python3-pip \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-yaml \
|
python3-venv \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
tar \
|
sparse \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo && \
|
tesseract-ocr-eng \
|
||||||
|
texinfo && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
dpkg-reconfigure locales
|
dpkg-reconfigure locales
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
dpkg --add-architecture arm64 && \
|
dpkg --add-architecture arm64 && \
|
||||||
|
@ -74,75 +75,75 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
g++-aarch64-linux-gnu \
|
g++-aarch64-linux-gnu \
|
||||||
gcc-aarch64-linux-gnu \
|
gcc-aarch64-linux-gnu \
|
||||||
libaio-dev:arm64 \
|
libaio-dev:arm64 \
|
||||||
libasan5:arm64 \
|
libasan5:arm64 \
|
||||||
libasound2-dev:arm64 \
|
libasound2-dev:arm64 \
|
||||||
libattr1-dev:arm64 \
|
libattr1-dev:arm64 \
|
||||||
libbpf-dev:arm64 \
|
libbpf-dev:arm64 \
|
||||||
libbrlapi-dev:arm64 \
|
libbrlapi-dev:arm64 \
|
||||||
libbz2-dev:arm64 \
|
libbz2-dev:arm64 \
|
||||||
libc6-dev:arm64 \
|
libc6-dev:arm64 \
|
||||||
libcacard-dev:arm64 \
|
libcacard-dev:arm64 \
|
||||||
libcap-ng-dev:arm64 \
|
libcap-ng-dev:arm64 \
|
||||||
libcapstone-dev:arm64 \
|
libcapstone-dev:arm64 \
|
||||||
libcmocka-dev:arm64 \
|
libcmocka-dev:arm64 \
|
||||||
libcurl4-gnutls-dev:arm64 \
|
libcurl4-gnutls-dev:arm64 \
|
||||||
libdaxctl-dev:arm64 \
|
libdaxctl-dev:arm64 \
|
||||||
libdrm-dev:arm64 \
|
libdrm-dev:arm64 \
|
||||||
libepoxy-dev:arm64 \
|
libepoxy-dev:arm64 \
|
||||||
libfdt-dev:arm64 \
|
libfdt-dev:arm64 \
|
||||||
libffi-dev:arm64 \
|
libffi-dev:arm64 \
|
||||||
libfuse3-dev:arm64 \
|
libfuse3-dev:arm64 \
|
||||||
libgbm-dev:arm64 \
|
libgbm-dev:arm64 \
|
||||||
libgcrypt20-dev:arm64 \
|
libgcrypt20-dev:arm64 \
|
||||||
libglib2.0-dev:arm64 \
|
libglib2.0-dev:arm64 \
|
||||||
libglusterfs-dev:arm64 \
|
libglusterfs-dev:arm64 \
|
||||||
libgnutls28-dev:arm64 \
|
libgnutls28-dev:arm64 \
|
||||||
libgtk-3-dev:arm64 \
|
libgtk-3-dev:arm64 \
|
||||||
libibumad-dev:arm64 \
|
libibumad-dev:arm64 \
|
||||||
libibverbs-dev:arm64 \
|
libibverbs-dev:arm64 \
|
||||||
libiscsi-dev:arm64 \
|
libiscsi-dev:arm64 \
|
||||||
libjemalloc-dev:arm64 \
|
libjemalloc-dev:arm64 \
|
||||||
libjpeg62-turbo-dev:arm64 \
|
libjpeg62-turbo-dev:arm64 \
|
||||||
libjson-c-dev:arm64 \
|
libjson-c-dev:arm64 \
|
||||||
liblttng-ust-dev:arm64 \
|
liblttng-ust-dev:arm64 \
|
||||||
liblzo2-dev:arm64 \
|
liblzo2-dev:arm64 \
|
||||||
libncursesw5-dev:arm64 \
|
libncursesw5-dev:arm64 \
|
||||||
libnfs-dev:arm64 \
|
libnfs-dev:arm64 \
|
||||||
libnuma-dev:arm64 \
|
libnuma-dev:arm64 \
|
||||||
libpam0g-dev:arm64 \
|
libpam0g-dev:arm64 \
|
||||||
libpixman-1-dev:arm64 \
|
libpixman-1-dev:arm64 \
|
||||||
libpng-dev:arm64 \
|
libpng-dev:arm64 \
|
||||||
libpulse-dev:arm64 \
|
libpulse-dev:arm64 \
|
||||||
librbd-dev:arm64 \
|
librbd-dev:arm64 \
|
||||||
librdmacm-dev:arm64 \
|
librdmacm-dev:arm64 \
|
||||||
libsasl2-dev:arm64 \
|
libsasl2-dev:arm64 \
|
||||||
libsdl2-dev:arm64 \
|
libsdl2-dev:arm64 \
|
||||||
libsdl2-image-dev:arm64 \
|
libsdl2-image-dev:arm64 \
|
||||||
libseccomp-dev:arm64 \
|
libseccomp-dev:arm64 \
|
||||||
libselinux1-dev:arm64 \
|
libselinux1-dev:arm64 \
|
||||||
libslirp-dev:arm64 \
|
libslirp-dev:arm64 \
|
||||||
libsnappy-dev:arm64 \
|
libsnappy-dev:arm64 \
|
||||||
libspice-server-dev:arm64 \
|
libspice-server-dev:arm64 \
|
||||||
libssh-gcrypt-dev:arm64 \
|
libssh-gcrypt-dev:arm64 \
|
||||||
libsystemd-dev:arm64 \
|
libsystemd-dev:arm64 \
|
||||||
libtasn1-6-dev:arm64 \
|
libtasn1-6-dev:arm64 \
|
||||||
libubsan1:arm64 \
|
libubsan1:arm64 \
|
||||||
libudev-dev:arm64 \
|
libudev-dev:arm64 \
|
||||||
liburing-dev:arm64 \
|
liburing-dev:arm64 \
|
||||||
libusb-1.0-0-dev:arm64 \
|
libusb-1.0-0-dev:arm64 \
|
||||||
libusbredirhost-dev:arm64 \
|
libusbredirhost-dev:arm64 \
|
||||||
libvdeplug-dev:arm64 \
|
libvdeplug-dev:arm64 \
|
||||||
libvirglrenderer-dev:arm64 \
|
libvirglrenderer-dev:arm64 \
|
||||||
libvte-2.91-dev:arm64 \
|
libvte-2.91-dev:arm64 \
|
||||||
libxen-dev:arm64 \
|
libxen-dev:arm64 \
|
||||||
libzstd-dev:arm64 \
|
libzstd-dev:arm64 \
|
||||||
nettle-dev:arm64 \
|
nettle-dev:arm64 \
|
||||||
systemtap-sdt-dev:arm64 \
|
systemtap-sdt-dev:arm64 \
|
||||||
xfslibs-dev:arm64 \
|
xfslibs-dev:arm64 \
|
||||||
zlib1g-dev:arm64 && \
|
zlib1g-dev:arm64 && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
mkdir -p /usr/local/share/meson/cross && \
|
mkdir -p /usr/local/share/meson/cross && \
|
||||||
|
|
|
@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdextrautils \
|
bsdextrautils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
llvm \
|
libspice-protocol-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
meson \
|
make \
|
||||||
ncat \
|
meson \
|
||||||
ninja-build \
|
ncat \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-sphinx \
|
python3-pip \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-yaml \
|
python3-venv \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
tar \
|
sparse \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo && \
|
tesseract-ocr-eng \
|
||||||
|
texinfo && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
dpkg-reconfigure locales
|
dpkg-reconfigure locales
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
dpkg --add-architecture armel && \
|
dpkg --add-architecture armel && \
|
||||||
|
@ -74,74 +75,74 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
g++-arm-linux-gnueabi \
|
g++-arm-linux-gnueabi \
|
||||||
gcc-arm-linux-gnueabi \
|
gcc-arm-linux-gnueabi \
|
||||||
libaio-dev:armel \
|
libaio-dev:armel \
|
||||||
libasan5:armel \
|
libasan5:armel \
|
||||||
libasound2-dev:armel \
|
libasound2-dev:armel \
|
||||||
libattr1-dev:armel \
|
libattr1-dev:armel \
|
||||||
libbpf-dev:armel \
|
libbpf-dev:armel \
|
||||||
libbrlapi-dev:armel \
|
libbrlapi-dev:armel \
|
||||||
libbz2-dev:armel \
|
libbz2-dev:armel \
|
||||||
libc6-dev:armel \
|
libc6-dev:armel \
|
||||||
libcacard-dev:armel \
|
libcacard-dev:armel \
|
||||||
libcap-ng-dev:armel \
|
libcap-ng-dev:armel \
|
||||||
libcapstone-dev:armel \
|
libcapstone-dev:armel \
|
||||||
libcmocka-dev:armel \
|
libcmocka-dev:armel \
|
||||||
libcurl4-gnutls-dev:armel \
|
libcurl4-gnutls-dev:armel \
|
||||||
libdaxctl-dev:armel \
|
libdaxctl-dev:armel \
|
||||||
libdrm-dev:armel \
|
libdrm-dev:armel \
|
||||||
libepoxy-dev:armel \
|
libepoxy-dev:armel \
|
||||||
libfdt-dev:armel \
|
libfdt-dev:armel \
|
||||||
libffi-dev:armel \
|
libffi-dev:armel \
|
||||||
libfuse3-dev:armel \
|
libfuse3-dev:armel \
|
||||||
libgbm-dev:armel \
|
libgbm-dev:armel \
|
||||||
libgcrypt20-dev:armel \
|
libgcrypt20-dev:armel \
|
||||||
libglib2.0-dev:armel \
|
libglib2.0-dev:armel \
|
||||||
libglusterfs-dev:armel \
|
libglusterfs-dev:armel \
|
||||||
libgnutls28-dev:armel \
|
libgnutls28-dev:armel \
|
||||||
libgtk-3-dev:armel \
|
libgtk-3-dev:armel \
|
||||||
libibumad-dev:armel \
|
libibumad-dev:armel \
|
||||||
libibverbs-dev:armel \
|
libibverbs-dev:armel \
|
||||||
libiscsi-dev:armel \
|
libiscsi-dev:armel \
|
||||||
libjemalloc-dev:armel \
|
libjemalloc-dev:armel \
|
||||||
libjpeg62-turbo-dev:armel \
|
libjpeg62-turbo-dev:armel \
|
||||||
libjson-c-dev:armel \
|
libjson-c-dev:armel \
|
||||||
liblttng-ust-dev:armel \
|
liblttng-ust-dev:armel \
|
||||||
liblzo2-dev:armel \
|
liblzo2-dev:armel \
|
||||||
libncursesw5-dev:armel \
|
libncursesw5-dev:armel \
|
||||||
libnfs-dev:armel \
|
libnfs-dev:armel \
|
||||||
libnuma-dev:armel \
|
libnuma-dev:armel \
|
||||||
libpam0g-dev:armel \
|
libpam0g-dev:armel \
|
||||||
libpixman-1-dev:armel \
|
libpixman-1-dev:armel \
|
||||||
libpng-dev:armel \
|
libpng-dev:armel \
|
||||||
libpulse-dev:armel \
|
libpulse-dev:armel \
|
||||||
librbd-dev:armel \
|
librbd-dev:armel \
|
||||||
librdmacm-dev:armel \
|
librdmacm-dev:armel \
|
||||||
libsasl2-dev:armel \
|
libsasl2-dev:armel \
|
||||||
libsdl2-dev:armel \
|
libsdl2-dev:armel \
|
||||||
libsdl2-image-dev:armel \
|
libsdl2-image-dev:armel \
|
||||||
libseccomp-dev:armel \
|
libseccomp-dev:armel \
|
||||||
libselinux1-dev:armel \
|
libselinux1-dev:armel \
|
||||||
libslirp-dev:armel \
|
libslirp-dev:armel \
|
||||||
libsnappy-dev:armel \
|
libsnappy-dev:armel \
|
||||||
libspice-server-dev:armel \
|
libspice-server-dev:armel \
|
||||||
libssh-gcrypt-dev:armel \
|
libssh-gcrypt-dev:armel \
|
||||||
libsystemd-dev:armel \
|
libsystemd-dev:armel \
|
||||||
libtasn1-6-dev:armel \
|
libtasn1-6-dev:armel \
|
||||||
libubsan1:armel \
|
libubsan1:armel \
|
||||||
libudev-dev:armel \
|
libudev-dev:armel \
|
||||||
liburing-dev:armel \
|
liburing-dev:armel \
|
||||||
libusb-1.0-0-dev:armel \
|
libusb-1.0-0-dev:armel \
|
||||||
libusbredirhost-dev:armel \
|
libusbredirhost-dev:armel \
|
||||||
libvdeplug-dev:armel \
|
libvdeplug-dev:armel \
|
||||||
libvirglrenderer-dev:armel \
|
libvirglrenderer-dev:armel \
|
||||||
libvte-2.91-dev:armel \
|
libvte-2.91-dev:armel \
|
||||||
libzstd-dev:armel \
|
libzstd-dev:armel \
|
||||||
nettle-dev:armel \
|
nettle-dev:armel \
|
||||||
systemtap-sdt-dev:armel \
|
systemtap-sdt-dev:armel \
|
||||||
xfslibs-dev:armel \
|
xfslibs-dev:armel \
|
||||||
zlib1g-dev:armel && \
|
zlib1g-dev:armel && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
mkdir -p /usr/local/share/meson/cross && \
|
mkdir -p /usr/local/share/meson/cross && \
|
||||||
|
|
|
@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdextrautils \
|
bsdextrautils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
llvm \
|
libspice-protocol-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
meson \
|
make \
|
||||||
ncat \
|
meson \
|
||||||
ninja-build \
|
ncat \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-sphinx \
|
python3-pip \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-yaml \
|
python3-venv \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
tar \
|
sparse \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo && \
|
tesseract-ocr-eng \
|
||||||
|
texinfo && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
dpkg-reconfigure locales
|
dpkg-reconfigure locales
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
dpkg --add-architecture armhf && \
|
dpkg --add-architecture armhf && \
|
||||||
|
@ -74,75 +75,75 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
g++-arm-linux-gnueabihf \
|
g++-arm-linux-gnueabihf \
|
||||||
gcc-arm-linux-gnueabihf \
|
gcc-arm-linux-gnueabihf \
|
||||||
libaio-dev:armhf \
|
libaio-dev:armhf \
|
||||||
libasan5:armhf \
|
libasan5:armhf \
|
||||||
libasound2-dev:armhf \
|
libasound2-dev:armhf \
|
||||||
libattr1-dev:armhf \
|
libattr1-dev:armhf \
|
||||||
libbpf-dev:armhf \
|
libbpf-dev:armhf \
|
||||||
libbrlapi-dev:armhf \
|
libbrlapi-dev:armhf \
|
||||||
libbz2-dev:armhf \
|
libbz2-dev:armhf \
|
||||||
libc6-dev:armhf \
|
libc6-dev:armhf \
|
||||||
libcacard-dev:armhf \
|
libcacard-dev:armhf \
|
||||||
libcap-ng-dev:armhf \
|
libcap-ng-dev:armhf \
|
||||||
libcapstone-dev:armhf \
|
libcapstone-dev:armhf \
|
||||||
libcmocka-dev:armhf \
|
libcmocka-dev:armhf \
|
||||||
libcurl4-gnutls-dev:armhf \
|
libcurl4-gnutls-dev:armhf \
|
||||||
libdaxctl-dev:armhf \
|
libdaxctl-dev:armhf \
|
||||||
libdrm-dev:armhf \
|
libdrm-dev:armhf \
|
||||||
libepoxy-dev:armhf \
|
libepoxy-dev:armhf \
|
||||||
libfdt-dev:armhf \
|
libfdt-dev:armhf \
|
||||||
libffi-dev:armhf \
|
libffi-dev:armhf \
|
||||||
libfuse3-dev:armhf \
|
libfuse3-dev:armhf \
|
||||||
libgbm-dev:armhf \
|
libgbm-dev:armhf \
|
||||||
libgcrypt20-dev:armhf \
|
libgcrypt20-dev:armhf \
|
||||||
libglib2.0-dev:armhf \
|
libglib2.0-dev:armhf \
|
||||||
libglusterfs-dev:armhf \
|
libglusterfs-dev:armhf \
|
||||||
libgnutls28-dev:armhf \
|
libgnutls28-dev:armhf \
|
||||||
libgtk-3-dev:armhf \
|
libgtk-3-dev:armhf \
|
||||||
libibumad-dev:armhf \
|
libibumad-dev:armhf \
|
||||||
libibverbs-dev:armhf \
|
libibverbs-dev:armhf \
|
||||||
libiscsi-dev:armhf \
|
libiscsi-dev:armhf \
|
||||||
libjemalloc-dev:armhf \
|
libjemalloc-dev:armhf \
|
||||||
libjpeg62-turbo-dev:armhf \
|
libjpeg62-turbo-dev:armhf \
|
||||||
libjson-c-dev:armhf \
|
libjson-c-dev:armhf \
|
||||||
liblttng-ust-dev:armhf \
|
liblttng-ust-dev:armhf \
|
||||||
liblzo2-dev:armhf \
|
liblzo2-dev:armhf \
|
||||||
libncursesw5-dev:armhf \
|
libncursesw5-dev:armhf \
|
||||||
libnfs-dev:armhf \
|
libnfs-dev:armhf \
|
||||||
libnuma-dev:armhf \
|
libnuma-dev:armhf \
|
||||||
libpam0g-dev:armhf \
|
libpam0g-dev:armhf \
|
||||||
libpixman-1-dev:armhf \
|
libpixman-1-dev:armhf \
|
||||||
libpng-dev:armhf \
|
libpng-dev:armhf \
|
||||||
libpulse-dev:armhf \
|
libpulse-dev:armhf \
|
||||||
librbd-dev:armhf \
|
librbd-dev:armhf \
|
||||||
librdmacm-dev:armhf \
|
librdmacm-dev:armhf \
|
||||||
libsasl2-dev:armhf \
|
libsasl2-dev:armhf \
|
||||||
libsdl2-dev:armhf \
|
libsdl2-dev:armhf \
|
||||||
libsdl2-image-dev:armhf \
|
libsdl2-image-dev:armhf \
|
||||||
libseccomp-dev:armhf \
|
libseccomp-dev:armhf \
|
||||||
libselinux1-dev:armhf \
|
libselinux1-dev:armhf \
|
||||||
libslirp-dev:armhf \
|
libslirp-dev:armhf \
|
||||||
libsnappy-dev:armhf \
|
libsnappy-dev:armhf \
|
||||||
libspice-server-dev:armhf \
|
libspice-server-dev:armhf \
|
||||||
libssh-gcrypt-dev:armhf \
|
libssh-gcrypt-dev:armhf \
|
||||||
libsystemd-dev:armhf \
|
libsystemd-dev:armhf \
|
||||||
libtasn1-6-dev:armhf \
|
libtasn1-6-dev:armhf \
|
||||||
libubsan1:armhf \
|
libubsan1:armhf \
|
||||||
libudev-dev:armhf \
|
libudev-dev:armhf \
|
||||||
liburing-dev:armhf \
|
liburing-dev:armhf \
|
||||||
libusb-1.0-0-dev:armhf \
|
libusb-1.0-0-dev:armhf \
|
||||||
libusbredirhost-dev:armhf \
|
libusbredirhost-dev:armhf \
|
||||||
libvdeplug-dev:armhf \
|
libvdeplug-dev:armhf \
|
||||||
libvirglrenderer-dev:armhf \
|
libvirglrenderer-dev:armhf \
|
||||||
libvte-2.91-dev:armhf \
|
libvte-2.91-dev:armhf \
|
||||||
libxen-dev:armhf \
|
libxen-dev:armhf \
|
||||||
libzstd-dev:armhf \
|
libzstd-dev:armhf \
|
||||||
nettle-dev:armhf \
|
nettle-dev:armhf \
|
||||||
systemtap-sdt-dev:armhf \
|
systemtap-sdt-dev:armhf \
|
||||||
xfslibs-dev:armhf \
|
xfslibs-dev:armhf \
|
||||||
zlib1g-dev:armhf && \
|
zlib1g-dev:armhf && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
mkdir -p /usr/local/share/meson/cross && \
|
mkdir -p /usr/local/share/meson/cross && \
|
||||||
|
|
|
@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdextrautils \
|
bsdextrautils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
llvm \
|
libspice-protocol-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
meson \
|
make \
|
||||||
ncat \
|
meson \
|
||||||
ninja-build \
|
ncat \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-sphinx \
|
python3-pip \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-yaml \
|
python3-venv \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
tar \
|
sparse \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo && \
|
tesseract-ocr-eng \
|
||||||
|
texinfo && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
dpkg-reconfigure locales
|
dpkg-reconfigure locales
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
dpkg --add-architecture mips64el && \
|
dpkg --add-architecture mips64el && \
|
||||||
|
@ -74,72 +75,72 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
g++-mips64el-linux-gnuabi64 \
|
g++-mips64el-linux-gnuabi64 \
|
||||||
gcc-mips64el-linux-gnuabi64 \
|
gcc-mips64el-linux-gnuabi64 \
|
||||||
libaio-dev:mips64el \
|
libaio-dev:mips64el \
|
||||||
libasound2-dev:mips64el \
|
libasound2-dev:mips64el \
|
||||||
libattr1-dev:mips64el \
|
libattr1-dev:mips64el \
|
||||||
libbpf-dev:mips64el \
|
libbpf-dev:mips64el \
|
||||||
libbrlapi-dev:mips64el \
|
libbrlapi-dev:mips64el \
|
||||||
libbz2-dev:mips64el \
|
libbz2-dev:mips64el \
|
||||||
libc6-dev:mips64el \
|
libc6-dev:mips64el \
|
||||||
libcacard-dev:mips64el \
|
libcacard-dev:mips64el \
|
||||||
libcap-ng-dev:mips64el \
|
libcap-ng-dev:mips64el \
|
||||||
libcapstone-dev:mips64el \
|
libcapstone-dev:mips64el \
|
||||||
libcmocka-dev:mips64el \
|
libcmocka-dev:mips64el \
|
||||||
libcurl4-gnutls-dev:mips64el \
|
libcurl4-gnutls-dev:mips64el \
|
||||||
libdaxctl-dev:mips64el \
|
libdaxctl-dev:mips64el \
|
||||||
libdrm-dev:mips64el \
|
libdrm-dev:mips64el \
|
||||||
libepoxy-dev:mips64el \
|
libepoxy-dev:mips64el \
|
||||||
libfdt-dev:mips64el \
|
libfdt-dev:mips64el \
|
||||||
libffi-dev:mips64el \
|
libffi-dev:mips64el \
|
||||||
libfuse3-dev:mips64el \
|
libfuse3-dev:mips64el \
|
||||||
libgbm-dev:mips64el \
|
libgbm-dev:mips64el \
|
||||||
libgcrypt20-dev:mips64el \
|
libgcrypt20-dev:mips64el \
|
||||||
libglib2.0-dev:mips64el \
|
libglib2.0-dev:mips64el \
|
||||||
libglusterfs-dev:mips64el \
|
libglusterfs-dev:mips64el \
|
||||||
libgnutls28-dev:mips64el \
|
libgnutls28-dev:mips64el \
|
||||||
libgtk-3-dev:mips64el \
|
libgtk-3-dev:mips64el \
|
||||||
libibumad-dev:mips64el \
|
libibumad-dev:mips64el \
|
||||||
libibverbs-dev:mips64el \
|
libibverbs-dev:mips64el \
|
||||||
libiscsi-dev:mips64el \
|
libiscsi-dev:mips64el \
|
||||||
libjemalloc-dev:mips64el \
|
libjemalloc-dev:mips64el \
|
||||||
libjpeg62-turbo-dev:mips64el \
|
libjpeg62-turbo-dev:mips64el \
|
||||||
libjson-c-dev:mips64el \
|
libjson-c-dev:mips64el \
|
||||||
liblttng-ust-dev:mips64el \
|
liblttng-ust-dev:mips64el \
|
||||||
liblzo2-dev:mips64el \
|
liblzo2-dev:mips64el \
|
||||||
libncursesw5-dev:mips64el \
|
libncursesw5-dev:mips64el \
|
||||||
libnfs-dev:mips64el \
|
libnfs-dev:mips64el \
|
||||||
libnuma-dev:mips64el \
|
libnuma-dev:mips64el \
|
||||||
libpam0g-dev:mips64el \
|
libpam0g-dev:mips64el \
|
||||||
libpixman-1-dev:mips64el \
|
libpixman-1-dev:mips64el \
|
||||||
libpng-dev:mips64el \
|
libpng-dev:mips64el \
|
||||||
libpulse-dev:mips64el \
|
libpulse-dev:mips64el \
|
||||||
librbd-dev:mips64el \
|
librbd-dev:mips64el \
|
||||||
librdmacm-dev:mips64el \
|
librdmacm-dev:mips64el \
|
||||||
libsasl2-dev:mips64el \
|
libsasl2-dev:mips64el \
|
||||||
libsdl2-dev:mips64el \
|
libsdl2-dev:mips64el \
|
||||||
libsdl2-image-dev:mips64el \
|
libsdl2-image-dev:mips64el \
|
||||||
libseccomp-dev:mips64el \
|
libseccomp-dev:mips64el \
|
||||||
libselinux1-dev:mips64el \
|
libselinux1-dev:mips64el \
|
||||||
libslirp-dev:mips64el \
|
libslirp-dev:mips64el \
|
||||||
libsnappy-dev:mips64el \
|
libsnappy-dev:mips64el \
|
||||||
libspice-server-dev:mips64el \
|
libspice-server-dev:mips64el \
|
||||||
libssh-gcrypt-dev:mips64el \
|
libssh-gcrypt-dev:mips64el \
|
||||||
libsystemd-dev:mips64el \
|
libsystemd-dev:mips64el \
|
||||||
libtasn1-6-dev:mips64el \
|
libtasn1-6-dev:mips64el \
|
||||||
libudev-dev:mips64el \
|
libudev-dev:mips64el \
|
||||||
liburing-dev:mips64el \
|
liburing-dev:mips64el \
|
||||||
libusb-1.0-0-dev:mips64el \
|
libusb-1.0-0-dev:mips64el \
|
||||||
libusbredirhost-dev:mips64el \
|
libusbredirhost-dev:mips64el \
|
||||||
libvdeplug-dev:mips64el \
|
libvdeplug-dev:mips64el \
|
||||||
libvirglrenderer-dev:mips64el \
|
libvirglrenderer-dev:mips64el \
|
||||||
libvte-2.91-dev:mips64el \
|
libvte-2.91-dev:mips64el \
|
||||||
libzstd-dev:mips64el \
|
libzstd-dev:mips64el \
|
||||||
nettle-dev:mips64el \
|
nettle-dev:mips64el \
|
||||||
systemtap-sdt-dev:mips64el \
|
systemtap-sdt-dev:mips64el \
|
||||||
xfslibs-dev:mips64el \
|
xfslibs-dev:mips64el \
|
||||||
zlib1g-dev:mips64el && \
|
zlib1g-dev:mips64el && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
mkdir -p /usr/local/share/meson/cross && \
|
mkdir -p /usr/local/share/meson/cross && \
|
||||||
|
|
|
@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdextrautils \
|
bsdextrautils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
llvm \
|
libspice-protocol-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
meson \
|
make \
|
||||||
ncat \
|
meson \
|
||||||
ninja-build \
|
ncat \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-sphinx \
|
python3-pip \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-yaml \
|
python3-venv \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
tar \
|
sparse \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo && \
|
tesseract-ocr-eng \
|
||||||
|
texinfo && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
dpkg-reconfigure locales
|
dpkg-reconfigure locales
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
dpkg --add-architecture mipsel && \
|
dpkg --add-architecture mipsel && \
|
||||||
|
@ -74,72 +75,72 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
g++-mipsel-linux-gnu \
|
g++-mipsel-linux-gnu \
|
||||||
gcc-mipsel-linux-gnu \
|
gcc-mipsel-linux-gnu \
|
||||||
libaio-dev:mipsel \
|
libaio-dev:mipsel \
|
||||||
libasound2-dev:mipsel \
|
libasound2-dev:mipsel \
|
||||||
libattr1-dev:mipsel \
|
libattr1-dev:mipsel \
|
||||||
libbpf-dev:mipsel \
|
libbpf-dev:mipsel \
|
||||||
libbrlapi-dev:mipsel \
|
libbrlapi-dev:mipsel \
|
||||||
libbz2-dev:mipsel \
|
libbz2-dev:mipsel \
|
||||||
libc6-dev:mipsel \
|
libc6-dev:mipsel \
|
||||||
libcacard-dev:mipsel \
|
libcacard-dev:mipsel \
|
||||||
libcap-ng-dev:mipsel \
|
libcap-ng-dev:mipsel \
|
||||||
libcapstone-dev:mipsel \
|
libcapstone-dev:mipsel \
|
||||||
libcmocka-dev:mipsel \
|
libcmocka-dev:mipsel \
|
||||||
libcurl4-gnutls-dev:mipsel \
|
libcurl4-gnutls-dev:mipsel \
|
||||||
libdaxctl-dev:mipsel \
|
libdaxctl-dev:mipsel \
|
||||||
libdrm-dev:mipsel \
|
libdrm-dev:mipsel \
|
||||||
libepoxy-dev:mipsel \
|
libepoxy-dev:mipsel \
|
||||||
libfdt-dev:mipsel \
|
libfdt-dev:mipsel \
|
||||||
libffi-dev:mipsel \
|
libffi-dev:mipsel \
|
||||||
libfuse3-dev:mipsel \
|
libfuse3-dev:mipsel \
|
||||||
libgbm-dev:mipsel \
|
libgbm-dev:mipsel \
|
||||||
libgcrypt20-dev:mipsel \
|
libgcrypt20-dev:mipsel \
|
||||||
libglib2.0-dev:mipsel \
|
libglib2.0-dev:mipsel \
|
||||||
libglusterfs-dev:mipsel \
|
libglusterfs-dev:mipsel \
|
||||||
libgnutls28-dev:mipsel \
|
libgnutls28-dev:mipsel \
|
||||||
libgtk-3-dev:mipsel \
|
libgtk-3-dev:mipsel \
|
||||||
libibumad-dev:mipsel \
|
libibumad-dev:mipsel \
|
||||||
libibverbs-dev:mipsel \
|
libibverbs-dev:mipsel \
|
||||||
libiscsi-dev:mipsel \
|
libiscsi-dev:mipsel \
|
||||||
libjemalloc-dev:mipsel \
|
libjemalloc-dev:mipsel \
|
||||||
libjpeg62-turbo-dev:mipsel \
|
libjpeg62-turbo-dev:mipsel \
|
||||||
libjson-c-dev:mipsel \
|
libjson-c-dev:mipsel \
|
||||||
liblttng-ust-dev:mipsel \
|
liblttng-ust-dev:mipsel \
|
||||||
liblzo2-dev:mipsel \
|
liblzo2-dev:mipsel \
|
||||||
libncursesw5-dev:mipsel \
|
libncursesw5-dev:mipsel \
|
||||||
libnfs-dev:mipsel \
|
libnfs-dev:mipsel \
|
||||||
libnuma-dev:mipsel \
|
libnuma-dev:mipsel \
|
||||||
libpam0g-dev:mipsel \
|
libpam0g-dev:mipsel \
|
||||||
libpixman-1-dev:mipsel \
|
libpixman-1-dev:mipsel \
|
||||||
libpng-dev:mipsel \
|
libpng-dev:mipsel \
|
||||||
libpulse-dev:mipsel \
|
libpulse-dev:mipsel \
|
||||||
librbd-dev:mipsel \
|
librbd-dev:mipsel \
|
||||||
librdmacm-dev:mipsel \
|
librdmacm-dev:mipsel \
|
||||||
libsasl2-dev:mipsel \
|
libsasl2-dev:mipsel \
|
||||||
libsdl2-dev:mipsel \
|
libsdl2-dev:mipsel \
|
||||||
libsdl2-image-dev:mipsel \
|
libsdl2-image-dev:mipsel \
|
||||||
libseccomp-dev:mipsel \
|
libseccomp-dev:mipsel \
|
||||||
libselinux1-dev:mipsel \
|
libselinux1-dev:mipsel \
|
||||||
libslirp-dev:mipsel \
|
libslirp-dev:mipsel \
|
||||||
libsnappy-dev:mipsel \
|
libsnappy-dev:mipsel \
|
||||||
libspice-server-dev:mipsel \
|
libspice-server-dev:mipsel \
|
||||||
libssh-gcrypt-dev:mipsel \
|
libssh-gcrypt-dev:mipsel \
|
||||||
libsystemd-dev:mipsel \
|
libsystemd-dev:mipsel \
|
||||||
libtasn1-6-dev:mipsel \
|
libtasn1-6-dev:mipsel \
|
||||||
libudev-dev:mipsel \
|
libudev-dev:mipsel \
|
||||||
liburing-dev:mipsel \
|
liburing-dev:mipsel \
|
||||||
libusb-1.0-0-dev:mipsel \
|
libusb-1.0-0-dev:mipsel \
|
||||||
libusbredirhost-dev:mipsel \
|
libusbredirhost-dev:mipsel \
|
||||||
libvdeplug-dev:mipsel \
|
libvdeplug-dev:mipsel \
|
||||||
libvirglrenderer-dev:mipsel \
|
libvirglrenderer-dev:mipsel \
|
||||||
libvte-2.91-dev:mipsel \
|
libvte-2.91-dev:mipsel \
|
||||||
libzstd-dev:mipsel \
|
libzstd-dev:mipsel \
|
||||||
nettle-dev:mipsel \
|
nettle-dev:mipsel \
|
||||||
systemtap-sdt-dev:mipsel \
|
systemtap-sdt-dev:mipsel \
|
||||||
xfslibs-dev:mipsel \
|
xfslibs-dev:mipsel \
|
||||||
zlib1g-dev:mipsel && \
|
zlib1g-dev:mipsel && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
mkdir -p /usr/local/share/meson/cross && \
|
mkdir -p /usr/local/share/meson/cross && \
|
||||||
|
|
|
@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdextrautils \
|
bsdextrautils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
llvm \
|
libspice-protocol-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
meson \
|
make \
|
||||||
ncat \
|
meson \
|
||||||
ninja-build \
|
ncat \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-sphinx \
|
python3-pip \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-yaml \
|
python3-venv \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
tar \
|
sparse \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo && \
|
tesseract-ocr-eng \
|
||||||
|
texinfo && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
dpkg-reconfigure locales
|
dpkg-reconfigure locales
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
dpkg --add-architecture ppc64el && \
|
dpkg --add-architecture ppc64el && \
|
||||||
|
@ -74,74 +75,74 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
g++-powerpc64le-linux-gnu \
|
g++-powerpc64le-linux-gnu \
|
||||||
gcc-powerpc64le-linux-gnu \
|
gcc-powerpc64le-linux-gnu \
|
||||||
libaio-dev:ppc64el \
|
libaio-dev:ppc64el \
|
||||||
libasan5:ppc64el \
|
libasan5:ppc64el \
|
||||||
libasound2-dev:ppc64el \
|
libasound2-dev:ppc64el \
|
||||||
libattr1-dev:ppc64el \
|
libattr1-dev:ppc64el \
|
||||||
libbpf-dev:ppc64el \
|
libbpf-dev:ppc64el \
|
||||||
libbrlapi-dev:ppc64el \
|
libbrlapi-dev:ppc64el \
|
||||||
libbz2-dev:ppc64el \
|
libbz2-dev:ppc64el \
|
||||||
libc6-dev:ppc64el \
|
libc6-dev:ppc64el \
|
||||||
libcacard-dev:ppc64el \
|
libcacard-dev:ppc64el \
|
||||||
libcap-ng-dev:ppc64el \
|
libcap-ng-dev:ppc64el \
|
||||||
libcapstone-dev:ppc64el \
|
libcapstone-dev:ppc64el \
|
||||||
libcmocka-dev:ppc64el \
|
libcmocka-dev:ppc64el \
|
||||||
libcurl4-gnutls-dev:ppc64el \
|
libcurl4-gnutls-dev:ppc64el \
|
||||||
libdaxctl-dev:ppc64el \
|
libdaxctl-dev:ppc64el \
|
||||||
libdrm-dev:ppc64el \
|
libdrm-dev:ppc64el \
|
||||||
libepoxy-dev:ppc64el \
|
libepoxy-dev:ppc64el \
|
||||||
libfdt-dev:ppc64el \
|
libfdt-dev:ppc64el \
|
||||||
libffi-dev:ppc64el \
|
libffi-dev:ppc64el \
|
||||||
libfuse3-dev:ppc64el \
|
libfuse3-dev:ppc64el \
|
||||||
libgbm-dev:ppc64el \
|
libgbm-dev:ppc64el \
|
||||||
libgcrypt20-dev:ppc64el \
|
libgcrypt20-dev:ppc64el \
|
||||||
libglib2.0-dev:ppc64el \
|
libglib2.0-dev:ppc64el \
|
||||||
libglusterfs-dev:ppc64el \
|
libglusterfs-dev:ppc64el \
|
||||||
libgnutls28-dev:ppc64el \
|
libgnutls28-dev:ppc64el \
|
||||||
libgtk-3-dev:ppc64el \
|
libgtk-3-dev:ppc64el \
|
||||||
libibumad-dev:ppc64el \
|
libibumad-dev:ppc64el \
|
||||||
libibverbs-dev:ppc64el \
|
libibverbs-dev:ppc64el \
|
||||||
libiscsi-dev:ppc64el \
|
libiscsi-dev:ppc64el \
|
||||||
libjemalloc-dev:ppc64el \
|
libjemalloc-dev:ppc64el \
|
||||||
libjpeg62-turbo-dev:ppc64el \
|
libjpeg62-turbo-dev:ppc64el \
|
||||||
libjson-c-dev:ppc64el \
|
libjson-c-dev:ppc64el \
|
||||||
liblttng-ust-dev:ppc64el \
|
liblttng-ust-dev:ppc64el \
|
||||||
liblzo2-dev:ppc64el \
|
liblzo2-dev:ppc64el \
|
||||||
libncursesw5-dev:ppc64el \
|
libncursesw5-dev:ppc64el \
|
||||||
libnfs-dev:ppc64el \
|
libnfs-dev:ppc64el \
|
||||||
libnuma-dev:ppc64el \
|
libnuma-dev:ppc64el \
|
||||||
libpam0g-dev:ppc64el \
|
libpam0g-dev:ppc64el \
|
||||||
libpixman-1-dev:ppc64el \
|
libpixman-1-dev:ppc64el \
|
||||||
libpng-dev:ppc64el \
|
libpng-dev:ppc64el \
|
||||||
libpulse-dev:ppc64el \
|
libpulse-dev:ppc64el \
|
||||||
librbd-dev:ppc64el \
|
librbd-dev:ppc64el \
|
||||||
librdmacm-dev:ppc64el \
|
librdmacm-dev:ppc64el \
|
||||||
libsasl2-dev:ppc64el \
|
libsasl2-dev:ppc64el \
|
||||||
libsdl2-dev:ppc64el \
|
libsdl2-dev:ppc64el \
|
||||||
libsdl2-image-dev:ppc64el \
|
libsdl2-image-dev:ppc64el \
|
||||||
libseccomp-dev:ppc64el \
|
libseccomp-dev:ppc64el \
|
||||||
libselinux1-dev:ppc64el \
|
libselinux1-dev:ppc64el \
|
||||||
libslirp-dev:ppc64el \
|
libslirp-dev:ppc64el \
|
||||||
libsnappy-dev:ppc64el \
|
libsnappy-dev:ppc64el \
|
||||||
libspice-server-dev:ppc64el \
|
libspice-server-dev:ppc64el \
|
||||||
libssh-gcrypt-dev:ppc64el \
|
libssh-gcrypt-dev:ppc64el \
|
||||||
libsystemd-dev:ppc64el \
|
libsystemd-dev:ppc64el \
|
||||||
libtasn1-6-dev:ppc64el \
|
libtasn1-6-dev:ppc64el \
|
||||||
libubsan1:ppc64el \
|
libubsan1:ppc64el \
|
||||||
libudev-dev:ppc64el \
|
libudev-dev:ppc64el \
|
||||||
liburing-dev:ppc64el \
|
liburing-dev:ppc64el \
|
||||||
libusb-1.0-0-dev:ppc64el \
|
libusb-1.0-0-dev:ppc64el \
|
||||||
libusbredirhost-dev:ppc64el \
|
libusbredirhost-dev:ppc64el \
|
||||||
libvdeplug-dev:ppc64el \
|
libvdeplug-dev:ppc64el \
|
||||||
libvirglrenderer-dev:ppc64el \
|
libvirglrenderer-dev:ppc64el \
|
||||||
libvte-2.91-dev:ppc64el \
|
libvte-2.91-dev:ppc64el \
|
||||||
libzstd-dev:ppc64el \
|
libzstd-dev:ppc64el \
|
||||||
nettle-dev:ppc64el \
|
nettle-dev:ppc64el \
|
||||||
systemtap-sdt-dev:ppc64el \
|
systemtap-sdt-dev:ppc64el \
|
||||||
xfslibs-dev:ppc64el \
|
xfslibs-dev:ppc64el \
|
||||||
zlib1g-dev:ppc64el && \
|
zlib1g-dev:ppc64el && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
mkdir -p /usr/local/share/meson/cross && \
|
mkdir -p /usr/local/share/meson/cross && \
|
||||||
|
|
|
@ -11,62 +11,63 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdextrautils \
|
bsdextrautils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
llvm \
|
libspice-protocol-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
meson \
|
make \
|
||||||
ncat \
|
meson \
|
||||||
ninja-build \
|
ncat \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-sphinx \
|
python3-pip \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-yaml \
|
python3-venv \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
tar \
|
sparse \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo && \
|
tesseract-ocr-eng \
|
||||||
|
texinfo && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
dpkg-reconfigure locales
|
dpkg-reconfigure locales
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
dpkg --add-architecture s390x && \
|
dpkg --add-architecture s390x && \
|
||||||
|
@ -74,73 +75,73 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
g++-s390x-linux-gnu \
|
g++-s390x-linux-gnu \
|
||||||
gcc-s390x-linux-gnu \
|
gcc-s390x-linux-gnu \
|
||||||
libaio-dev:s390x \
|
libaio-dev:s390x \
|
||||||
libasan5:s390x \
|
libasan5:s390x \
|
||||||
libasound2-dev:s390x \
|
libasound2-dev:s390x \
|
||||||
libattr1-dev:s390x \
|
libattr1-dev:s390x \
|
||||||
libbpf-dev:s390x \
|
libbpf-dev:s390x \
|
||||||
libbrlapi-dev:s390x \
|
libbrlapi-dev:s390x \
|
||||||
libbz2-dev:s390x \
|
libbz2-dev:s390x \
|
||||||
libc6-dev:s390x \
|
libc6-dev:s390x \
|
||||||
libcacard-dev:s390x \
|
libcacard-dev:s390x \
|
||||||
libcap-ng-dev:s390x \
|
libcap-ng-dev:s390x \
|
||||||
libcapstone-dev:s390x \
|
libcapstone-dev:s390x \
|
||||||
libcmocka-dev:s390x \
|
libcmocka-dev:s390x \
|
||||||
libcurl4-gnutls-dev:s390x \
|
libcurl4-gnutls-dev:s390x \
|
||||||
libdaxctl-dev:s390x \
|
libdaxctl-dev:s390x \
|
||||||
libdrm-dev:s390x \
|
libdrm-dev:s390x \
|
||||||
libepoxy-dev:s390x \
|
libepoxy-dev:s390x \
|
||||||
libfdt-dev:s390x \
|
libfdt-dev:s390x \
|
||||||
libffi-dev:s390x \
|
libffi-dev:s390x \
|
||||||
libfuse3-dev:s390x \
|
libfuse3-dev:s390x \
|
||||||
libgbm-dev:s390x \
|
libgbm-dev:s390x \
|
||||||
libgcrypt20-dev:s390x \
|
libgcrypt20-dev:s390x \
|
||||||
libglib2.0-dev:s390x \
|
libglib2.0-dev:s390x \
|
||||||
libglusterfs-dev:s390x \
|
libglusterfs-dev:s390x \
|
||||||
libgnutls28-dev:s390x \
|
libgnutls28-dev:s390x \
|
||||||
libgtk-3-dev:s390x \
|
libgtk-3-dev:s390x \
|
||||||
libibumad-dev:s390x \
|
libibumad-dev:s390x \
|
||||||
libibverbs-dev:s390x \
|
libibverbs-dev:s390x \
|
||||||
libiscsi-dev:s390x \
|
libiscsi-dev:s390x \
|
||||||
libjemalloc-dev:s390x \
|
libjemalloc-dev:s390x \
|
||||||
libjpeg62-turbo-dev:s390x \
|
libjpeg62-turbo-dev:s390x \
|
||||||
libjson-c-dev:s390x \
|
libjson-c-dev:s390x \
|
||||||
liblttng-ust-dev:s390x \
|
liblttng-ust-dev:s390x \
|
||||||
liblzo2-dev:s390x \
|
liblzo2-dev:s390x \
|
||||||
libncursesw5-dev:s390x \
|
libncursesw5-dev:s390x \
|
||||||
libnfs-dev:s390x \
|
libnfs-dev:s390x \
|
||||||
libnuma-dev:s390x \
|
libnuma-dev:s390x \
|
||||||
libpam0g-dev:s390x \
|
libpam0g-dev:s390x \
|
||||||
libpixman-1-dev:s390x \
|
libpixman-1-dev:s390x \
|
||||||
libpng-dev:s390x \
|
libpng-dev:s390x \
|
||||||
libpulse-dev:s390x \
|
libpulse-dev:s390x \
|
||||||
librbd-dev:s390x \
|
librbd-dev:s390x \
|
||||||
librdmacm-dev:s390x \
|
librdmacm-dev:s390x \
|
||||||
libsasl2-dev:s390x \
|
libsasl2-dev:s390x \
|
||||||
libsdl2-dev:s390x \
|
libsdl2-dev:s390x \
|
||||||
libsdl2-image-dev:s390x \
|
libsdl2-image-dev:s390x \
|
||||||
libseccomp-dev:s390x \
|
libseccomp-dev:s390x \
|
||||||
libselinux1-dev:s390x \
|
libselinux1-dev:s390x \
|
||||||
libslirp-dev:s390x \
|
libslirp-dev:s390x \
|
||||||
libsnappy-dev:s390x \
|
libsnappy-dev:s390x \
|
||||||
libssh-gcrypt-dev:s390x \
|
libssh-gcrypt-dev:s390x \
|
||||||
libsystemd-dev:s390x \
|
libsystemd-dev:s390x \
|
||||||
libtasn1-6-dev:s390x \
|
libtasn1-6-dev:s390x \
|
||||||
libubsan1:s390x \
|
libubsan1:s390x \
|
||||||
libudev-dev:s390x \
|
libudev-dev:s390x \
|
||||||
liburing-dev:s390x \
|
liburing-dev:s390x \
|
||||||
libusb-1.0-0-dev:s390x \
|
libusb-1.0-0-dev:s390x \
|
||||||
libusbredirhost-dev:s390x \
|
libusbredirhost-dev:s390x \
|
||||||
libvdeplug-dev:s390x \
|
libvdeplug-dev:s390x \
|
||||||
libvirglrenderer-dev:s390x \
|
libvirglrenderer-dev:s390x \
|
||||||
libvte-2.91-dev:s390x \
|
libvte-2.91-dev:s390x \
|
||||||
libzstd-dev:s390x \
|
libzstd-dev:s390x \
|
||||||
nettle-dev:s390x \
|
nettle-dev:s390x \
|
||||||
systemtap-sdt-dev:s390x \
|
systemtap-sdt-dev:s390x \
|
||||||
xfslibs-dev:s390x \
|
xfslibs-dev:s390x \
|
||||||
zlib1g-dev:s390x && \
|
zlib1g-dev:s390x && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
mkdir -p /usr/local/share/meson/cross && \
|
mkdir -p /usr/local/share/meson/cross && \
|
||||||
|
|
|
@ -18,120 +18,120 @@ exec "$@"' > /usr/bin/nosync && \
|
||||||
chmod +x /usr/bin/nosync && \
|
chmod +x /usr/bin/nosync && \
|
||||||
nosync dnf update -y && \
|
nosync dnf update -y && \
|
||||||
nosync dnf install -y \
|
nosync dnf install -y \
|
||||||
SDL2-devel \
|
SDL2-devel \
|
||||||
SDL2_image-devel \
|
SDL2_image-devel \
|
||||||
alsa-lib-devel \
|
alsa-lib-devel \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
brlapi-devel \
|
brlapi-devel \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
bzip2-devel \
|
bzip2-devel \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
capstone-devel \
|
capstone-devel \
|
||||||
ccache \
|
ccache \
|
||||||
clang \
|
clang \
|
||||||
ctags \
|
ctags \
|
||||||
cyrus-sasl-devel \
|
cyrus-sasl-devel \
|
||||||
daxctl-devel \
|
daxctl-devel \
|
||||||
dbus-daemon \
|
dbus-daemon \
|
||||||
device-mapper-multipath-devel \
|
device-mapper-multipath-devel \
|
||||||
diffutils \
|
diffutils \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
fuse3-devel \
|
fuse3-devel \
|
||||||
gcc \
|
gcc \
|
||||||
gcc-c++ \
|
gcc-c++ \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
glib2-devel \
|
glib2-devel \
|
||||||
glib2-static \
|
glib2-static \
|
||||||
glibc-langpack-en \
|
glibc-langpack-en \
|
||||||
glibc-static \
|
glibc-static \
|
||||||
glusterfs-api-devel \
|
glusterfs-api-devel \
|
||||||
gnutls-devel \
|
gnutls-devel \
|
||||||
gtk3-devel \
|
gtk3-devel \
|
||||||
hostname \
|
hostname \
|
||||||
jemalloc-devel \
|
jemalloc-devel \
|
||||||
json-c-devel \
|
json-c-devel \
|
||||||
libaio-devel \
|
libaio-devel \
|
||||||
libasan \
|
libasan \
|
||||||
libattr-devel \
|
libattr-devel \
|
||||||
libbpf-devel \
|
libbpf-devel \
|
||||||
libcacard-devel \
|
libcacard-devel \
|
||||||
libcap-ng-devel \
|
libcap-ng-devel \
|
||||||
libcmocka-devel \
|
libcmocka-devel \
|
||||||
libcurl-devel \
|
libcurl-devel \
|
||||||
libdrm-devel \
|
libdrm-devel \
|
||||||
libepoxy-devel \
|
libepoxy-devel \
|
||||||
libfdt-devel \
|
libfdt-devel \
|
||||||
libffi-devel \
|
libffi-devel \
|
||||||
libgcrypt-devel \
|
libgcrypt-devel \
|
||||||
libiscsi-devel \
|
libiscsi-devel \
|
||||||
libjpeg-devel \
|
libjpeg-devel \
|
||||||
libnfs-devel \
|
libnfs-devel \
|
||||||
libpmem-devel \
|
libpmem-devel \
|
||||||
libpng-devel \
|
libpng-devel \
|
||||||
librbd-devel \
|
librbd-devel \
|
||||||
libseccomp-devel \
|
libseccomp-devel \
|
||||||
libselinux-devel \
|
libselinux-devel \
|
||||||
libslirp-devel \
|
libslirp-devel \
|
||||||
libssh-devel \
|
libssh-devel \
|
||||||
libtasn1-devel \
|
libtasn1-devel \
|
||||||
libubsan \
|
libubsan \
|
||||||
liburing-devel \
|
liburing-devel \
|
||||||
libusbx-devel \
|
libusbx-devel \
|
||||||
libzstd-devel \
|
libzstd-devel \
|
||||||
llvm \
|
llvm \
|
||||||
lttng-ust-devel \
|
lttng-ust-devel \
|
||||||
lzo-devel \
|
lzo-devel \
|
||||||
make \
|
make \
|
||||||
mesa-libgbm-devel \
|
mesa-libgbm-devel \
|
||||||
meson \
|
meson \
|
||||||
ncurses-devel \
|
ncurses-devel \
|
||||||
nettle-devel \
|
nettle-devel \
|
||||||
ninja-build \
|
ninja-build \
|
||||||
nmap-ncat \
|
nmap-ncat \
|
||||||
numactl-devel \
|
numactl-devel \
|
||||||
openssh-clients \
|
openssh-clients \
|
||||||
pam-devel \
|
pam-devel \
|
||||||
pcre-static \
|
pcre-static \
|
||||||
perl-base \
|
perl-base \
|
||||||
pixman-devel \
|
pixman-devel \
|
||||||
pkgconfig \
|
pkgconfig \
|
||||||
pulseaudio-libs-devel \
|
pulseaudio-libs-devel \
|
||||||
python3 \
|
python3 \
|
||||||
python3-PyYAML \
|
python3-PyYAML \
|
||||||
python3-numpy \
|
python3-numpy \
|
||||||
python3-opencv \
|
python3-opencv \
|
||||||
python3-pillow \
|
python3-pillow \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
python3-sphinx \
|
python3-sphinx \
|
||||||
python3-sphinx_rtd_theme \
|
python3-sphinx_rtd_theme \
|
||||||
rdma-core-devel \
|
rdma-core-devel \
|
||||||
rpm \
|
rpm \
|
||||||
sed \
|
sed \
|
||||||
snappy-devel \
|
snappy-devel \
|
||||||
sparse \
|
sparse \
|
||||||
spice-protocol \
|
spice-protocol \
|
||||||
spice-server-devel \
|
spice-server-devel \
|
||||||
systemd-devel \
|
systemd-devel \
|
||||||
systemtap-sdt-devel \
|
systemtap-sdt-devel \
|
||||||
tar \
|
tar \
|
||||||
tesseract \
|
tesseract \
|
||||||
tesseract-langpack-eng \
|
tesseract-langpack-eng \
|
||||||
texinfo \
|
texinfo \
|
||||||
usbredir-devel \
|
usbredir-devel \
|
||||||
util-linux \
|
util-linux \
|
||||||
virglrenderer-devel \
|
virglrenderer-devel \
|
||||||
vte291-devel \
|
vte291-devel \
|
||||||
which \
|
which \
|
||||||
xen-devel \
|
xen-devel \
|
||||||
xfsprogs-devel \
|
xfsprogs-devel \
|
||||||
zlib-devel \
|
zlib-devel \
|
||||||
zlib-static && \
|
zlib-static && \
|
||||||
nosync dnf autoremove -y && \
|
nosync dnf autoremove -y && \
|
||||||
nosync dnf clean all -y && \
|
nosync dnf clean all -y && \
|
||||||
rpm -qa | sort > /packages.txt && \
|
rpm -qa | sort > /packages.txt && \
|
||||||
|
@ -142,8 +142,8 @@ exec "$@"' > /usr/bin/nosync && \
|
||||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
|
@ -104,6 +104,7 @@ RUN zypper update -y && \
|
||||||
rpm \
|
rpm \
|
||||||
sed \
|
sed \
|
||||||
snappy-devel \
|
snappy-devel \
|
||||||
|
sndio-devel \
|
||||||
sparse \
|
sparse \
|
||||||
spice-protocol-devel \
|
spice-protocol-devel \
|
||||||
systemd-devel \
|
systemd-devel \
|
||||||
|
@ -132,8 +133,8 @@ RUN zypper update -y && \
|
||||||
|
|
||||||
RUN /usr/bin/pip3 install meson==0.56.0
|
RUN /usr/bin/pip3 install meson==0.56.0
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
|
|
|
@ -11,122 +11,123 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
apt-get install -y eatmydata && \
|
apt-get install -y eatmydata && \
|
||||||
eatmydata apt-get dist-upgrade -y && \
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
eatmydata apt-get install --no-install-recommends -y \
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
bash \
|
bash \
|
||||||
bc \
|
bc \
|
||||||
bison \
|
bison \
|
||||||
bsdmainutils \
|
bsdmainutils \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
clang \
|
clang \
|
||||||
dbus \
|
dbus \
|
||||||
debianutils \
|
debianutils \
|
||||||
diffutils \
|
diffutils \
|
||||||
exuberant-ctags \
|
exuberant-ctags \
|
||||||
findutils \
|
findutils \
|
||||||
flex \
|
flex \
|
||||||
g++ \
|
g++ \
|
||||||
gcc \
|
gcc \
|
||||||
gcovr \
|
gcovr \
|
||||||
genisoimage \
|
genisoimage \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
hostname \
|
hostname \
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libasan5 \
|
libasan5 \
|
||||||
libasound2-dev \
|
libasound2-dev \
|
||||||
libattr1-dev \
|
libattr1-dev \
|
||||||
libbrlapi-dev \
|
libbrlapi-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
libc6-dev \
|
libc6-dev \
|
||||||
libcacard-dev \
|
libcacard-dev \
|
||||||
libcap-ng-dev \
|
libcap-ng-dev \
|
||||||
libcapstone-dev \
|
libcapstone-dev \
|
||||||
libcmocka-dev \
|
libcmocka-dev \
|
||||||
libcurl4-gnutls-dev \
|
libcurl4-gnutls-dev \
|
||||||
libdaxctl-dev \
|
libdaxctl-dev \
|
||||||
libdrm-dev \
|
libdrm-dev \
|
||||||
libepoxy-dev \
|
libepoxy-dev \
|
||||||
libfdt-dev \
|
libfdt-dev \
|
||||||
libffi-dev \
|
libffi-dev \
|
||||||
libfuse3-dev \
|
libfuse3-dev \
|
||||||
libgbm-dev \
|
libgbm-dev \
|
||||||
libgcrypt20-dev \
|
libgcrypt20-dev \
|
||||||
libglib2.0-dev \
|
libglib2.0-dev \
|
||||||
libglusterfs-dev \
|
libglusterfs-dev \
|
||||||
libgnutls28-dev \
|
libgnutls28-dev \
|
||||||
libgtk-3-dev \
|
libgtk-3-dev \
|
||||||
libibumad-dev \
|
libibumad-dev \
|
||||||
libibverbs-dev \
|
libibverbs-dev \
|
||||||
libiscsi-dev \
|
libiscsi-dev \
|
||||||
libjemalloc-dev \
|
libjemalloc-dev \
|
||||||
libjpeg-turbo8-dev \
|
libjpeg-turbo8-dev \
|
||||||
libjson-c-dev \
|
libjson-c-dev \
|
||||||
liblttng-ust-dev \
|
liblttng-ust-dev \
|
||||||
liblzo2-dev \
|
liblzo2-dev \
|
||||||
libncursesw5-dev \
|
libncursesw5-dev \
|
||||||
libnfs-dev \
|
libnfs-dev \
|
||||||
libnuma-dev \
|
libnuma-dev \
|
||||||
libpam0g-dev \
|
libpam0g-dev \
|
||||||
libpcre2-dev \
|
libpcre2-dev \
|
||||||
libpixman-1-dev \
|
libpixman-1-dev \
|
||||||
libpmem-dev \
|
libpmem-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpulse-dev \
|
libpulse-dev \
|
||||||
librbd-dev \
|
librbd-dev \
|
||||||
librdmacm-dev \
|
librdmacm-dev \
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsdl2-dev \
|
libsdl2-dev \
|
||||||
libsdl2-image-dev \
|
libsdl2-image-dev \
|
||||||
libseccomp-dev \
|
libseccomp-dev \
|
||||||
libselinux1-dev \
|
libselinux1-dev \
|
||||||
libslirp-dev \
|
libslirp-dev \
|
||||||
libsnappy-dev \
|
libsnappy-dev \
|
||||||
libspice-protocol-dev \
|
libsndio-dev \
|
||||||
libspice-server-dev \
|
libspice-protocol-dev \
|
||||||
libssh-dev \
|
libspice-server-dev \
|
||||||
libsystemd-dev \
|
libssh-dev \
|
||||||
libtasn1-6-dev \
|
libsystemd-dev \
|
||||||
libubsan1 \
|
libtasn1-6-dev \
|
||||||
libudev-dev \
|
libubsan1 \
|
||||||
libusb-1.0-0-dev \
|
libudev-dev \
|
||||||
libusbredirhost-dev \
|
libusb-1.0-0-dev \
|
||||||
libvdeplug-dev \
|
libusbredirhost-dev \
|
||||||
libvirglrenderer-dev \
|
libvdeplug-dev \
|
||||||
libvte-2.91-dev \
|
libvirglrenderer-dev \
|
||||||
libxen-dev \
|
libvte-2.91-dev \
|
||||||
libzstd-dev \
|
libxen-dev \
|
||||||
llvm \
|
libzstd-dev \
|
||||||
locales \
|
llvm \
|
||||||
make \
|
locales \
|
||||||
multipath-tools \
|
make \
|
||||||
ncat \
|
multipath-tools \
|
||||||
nettle-dev \
|
ncat \
|
||||||
ninja-build \
|
nettle-dev \
|
||||||
openssh-client \
|
ninja-build \
|
||||||
perl-base \
|
openssh-client \
|
||||||
pkgconf \
|
perl-base \
|
||||||
python3 \
|
pkgconf \
|
||||||
python3-numpy \
|
python3 \
|
||||||
python3-opencv \
|
python3-numpy \
|
||||||
python3-pillow \
|
python3-opencv \
|
||||||
python3-pip \
|
python3-pillow \
|
||||||
python3-setuptools \
|
python3-pip \
|
||||||
python3-sphinx \
|
python3-setuptools \
|
||||||
python3-sphinx-rtd-theme \
|
python3-sphinx \
|
||||||
python3-venv \
|
python3-sphinx-rtd-theme \
|
||||||
python3-wheel \
|
python3-venv \
|
||||||
python3-yaml \
|
python3-wheel \
|
||||||
rpm2cpio \
|
python3-yaml \
|
||||||
sed \
|
rpm2cpio \
|
||||||
sparse \
|
sed \
|
||||||
systemtap-sdt-dev \
|
sparse \
|
||||||
tar \
|
systemtap-sdt-dev \
|
||||||
tesseract-ocr \
|
tar \
|
||||||
tesseract-ocr-eng \
|
tesseract-ocr \
|
||||||
texinfo \
|
tesseract-ocr-eng \
|
||||||
xfslibs-dev \
|
texinfo \
|
||||||
zlib1g-dev && \
|
xfslibs-dev \
|
||||||
|
zlib1g-dev && \
|
||||||
eatmydata apt-get autoremove -y && \
|
eatmydata apt-get autoremove -y && \
|
||||||
eatmydata apt-get autoclean -y && \
|
eatmydata apt-get autoclean -y && \
|
||||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
|
@ -141,11 +142,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
|
|
||||||
RUN /usr/bin/pip3 install meson==0.56.0
|
RUN /usr/bin/pip3 install meson==0.56.0
|
||||||
|
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ENV LANG "en_US.UTF-8"
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV MAKE "/usr/bin/make"
|
ENV MAKE "/usr/bin/make"
|
||||||
ENV NINJA "/usr/bin/ninja"
|
ENV NINJA "/usr/bin/ninja"
|
||||||
ENV PYTHON "/usr/bin/python3"
|
ENV PYTHON "/usr/bin/python3"
|
||||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
||||||
# Apply patch https://reviews.llvm.org/D75820
|
# Apply patch https://reviews.llvm.org/D75820
|
||||||
# This is required for TSan in clang-10 to compile with QEMU.
|
# This is required for TSan in clang-10 to compile with QEMU.
|
||||||
RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h
|
RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit e3712b79122180fdb3b7a7ea8cbee47ece253f97
|
Subproject commit 79691a50a5f99bd7adda236f66c3c09371b01afa
|
|
@ -101,6 +101,7 @@ packages:
|
||||||
- sdl2-image
|
- sdl2-image
|
||||||
- sed
|
- sed
|
||||||
- snappy
|
- snappy
|
||||||
|
- sndio
|
||||||
- sparse
|
- sparse
|
||||||
- spice-protocol
|
- spice-protocol
|
||||||
- spice-server
|
- spice-server
|
||||||
|
|
|
@ -101,6 +101,7 @@ static void cxl_t3d(void)
|
||||||
|
|
||||||
qtest_start(cmdline->str);
|
qtest_start(cmdline->str);
|
||||||
qtest_end();
|
qtest_end();
|
||||||
|
rmdir(tmpfs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cxl_1pxb_2rp_2t3d(void)
|
static void cxl_1pxb_2rp_2t3d(void)
|
||||||
|
@ -115,6 +116,7 @@ static void cxl_1pxb_2rp_2t3d(void)
|
||||||
|
|
||||||
qtest_start(cmdline->str);
|
qtest_start(cmdline->str);
|
||||||
qtest_end();
|
qtest_end();
|
||||||
|
rmdir(tmpfs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cxl_2pxb_4rp_4t3d(void)
|
static void cxl_2pxb_4rp_4t3d(void)
|
||||||
|
@ -130,6 +132,7 @@ static void cxl_2pxb_4rp_4t3d(void)
|
||||||
|
|
||||||
qtest_start(cmdline->str);
|
qtest_start(cmdline->str);
|
||||||
qtest_end();
|
qtest_end();
|
||||||
|
rmdir(tmpfs);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_POSIX */
|
#endif /* CONFIG_POSIX */
|
||||||
|
|
||||||
|
|
|
@ -233,7 +233,7 @@ test_dbus_vmstate(Test *test)
|
||||||
test->src_qemu = src_qemu;
|
test->src_qemu = src_qemu;
|
||||||
if (test->migrate_fail) {
|
if (test->migrate_fail) {
|
||||||
wait_for_migration_fail(src_qemu, true);
|
wait_for_migration_fail(src_qemu, true);
|
||||||
qtest_set_expected_status(dst_qemu, 1);
|
qtest_set_expected_status(dst_qemu, EXIT_FAILURE);
|
||||||
} else {
|
} else {
|
||||||
wait_for_migration_complete(src_qemu);
|
wait_for_migration_complete(src_qemu);
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,16 +112,16 @@ static void test_pci_unplug_json_request(void)
|
||||||
|
|
||||||
static void test_q35_pci_unplug_json_request(void)
|
static void test_q35_pci_unplug_json_request(void)
|
||||||
{
|
{
|
||||||
const char *port = "-device '{\"driver\": \"pcie-root-port\", "
|
const char *port = "-device \"{'driver': 'pcie-root-port', "
|
||||||
"\"id\": \"p1\"}'";
|
"'id': 'p1'}\"";
|
||||||
|
|
||||||
const char *bridge = "-device '{\"driver\": \"pcie-pci-bridge\", "
|
const char *bridge = "-device \"{'driver': 'pcie-pci-bridge', "
|
||||||
"\"id\": \"b1\", "
|
"'id': 'b1', "
|
||||||
"\"bus\": \"p1\"}'";
|
"'bus': 'p1'}\"";
|
||||||
|
|
||||||
const char *device = "-device '{\"driver\": \"virtio-mouse-pci\", "
|
const char *device = "-device \"{'driver': 'virtio-mouse-pci', "
|
||||||
"\"bus\": \"b1\", "
|
"'bus': 'b1', "
|
||||||
"\"id\": \"dev0\"}'";
|
"'id': 'dev0'}\"";
|
||||||
|
|
||||||
QTestState *qtest = qtest_initf("-machine q35 %s %s %s",
|
QTestState *qtest = qtest_initf("-machine q35 %s %s %s",
|
||||||
port, bridge, device);
|
port, bridge, device);
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "qemu/cutils.h"
|
#include "qemu/cutils.h"
|
||||||
|
#include "qemu/sockets.h"
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "qapi/qmp/json-parser.h"
|
#include "qapi/qmp/json-parser.h"
|
||||||
#include "qapi/qmp/qjson.h"
|
#include "qapi/qmp/qjson.h"
|
||||||
|
@ -36,7 +37,7 @@ typedef struct {
|
||||||
|
|
||||||
static void socket_send(int fd, const char *buf, size_t size)
|
static void socket_send(int fd, const char *buf, size_t size)
|
||||||
{
|
{
|
||||||
size_t res = qemu_write_full(fd, buf, size);
|
ssize_t res = qemu_send_full(fd, buf, size);
|
||||||
|
|
||||||
assert(res == size);
|
assert(res == size);
|
||||||
}
|
}
|
||||||
|
@ -69,7 +70,7 @@ QDict *qmp_fd_receive(int fd)
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
char c;
|
char c;
|
||||||
|
|
||||||
len = read(fd, &c, 1);
|
len = recv(fd, &c, 1, 0);
|
||||||
if (len == -1 && errno == EINTR) {
|
if (len == -1 && errno == EINTR) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
|
#include "hw/net/e1000_regs.h"
|
||||||
#include "../libqtest.h"
|
#include "../libqtest.h"
|
||||||
#include "pci-pc.h"
|
#include "pci-pc.h"
|
||||||
#include "qemu/sockets.h"
|
#include "qemu/sockets.h"
|
||||||
|
@ -27,49 +28,13 @@
|
||||||
#include "qgraph.h"
|
#include "qgraph.h"
|
||||||
#include "e1000e.h"
|
#include "e1000e.h"
|
||||||
|
|
||||||
#define E1000E_IMS (0x00d0)
|
#define E1000E_IVAR_TEST_CFG \
|
||||||
|
(E1000E_RX0_MSG_ID | E1000_IVAR_INT_ALLOC_VALID | \
|
||||||
|
((E1000E_TX0_MSG_ID | E1000_IVAR_INT_ALLOC_VALID) << 8) | \
|
||||||
|
((E1000E_OTHER_MSG_ID | E1000_IVAR_INT_ALLOC_VALID) << 16) | \
|
||||||
|
E1000_IVAR_TX_INT_EVERY_WB)
|
||||||
|
|
||||||
#define E1000E_STATUS (0x0008)
|
#define E1000E_RING_LEN (0x1000)
|
||||||
#define E1000E_STATUS_LU BIT(1)
|
|
||||||
#define E1000E_STATUS_ASDV1000 BIT(9)
|
|
||||||
|
|
||||||
#define E1000E_CTRL (0x0000)
|
|
||||||
#define E1000E_CTRL_RESET BIT(26)
|
|
||||||
|
|
||||||
#define E1000E_RCTL (0x0100)
|
|
||||||
#define E1000E_RCTL_EN BIT(1)
|
|
||||||
#define E1000E_RCTL_UPE BIT(3)
|
|
||||||
#define E1000E_RCTL_MPE BIT(4)
|
|
||||||
|
|
||||||
#define E1000E_RFCTL (0x5008)
|
|
||||||
#define E1000E_RFCTL_EXTEN BIT(15)
|
|
||||||
|
|
||||||
#define E1000E_TCTL (0x0400)
|
|
||||||
#define E1000E_TCTL_EN BIT(1)
|
|
||||||
|
|
||||||
#define E1000E_CTRL_EXT (0x0018)
|
|
||||||
#define E1000E_CTRL_EXT_DRV_LOAD BIT(28)
|
|
||||||
#define E1000E_CTRL_EXT_TXLSFLOW BIT(22)
|
|
||||||
|
|
||||||
#define E1000E_IVAR (0x00E4)
|
|
||||||
#define E1000E_IVAR_TEST_CFG ((E1000E_RX0_MSG_ID << 0) | BIT(3) | \
|
|
||||||
(E1000E_TX0_MSG_ID << 8) | BIT(11) | \
|
|
||||||
(E1000E_OTHER_MSG_ID << 16) | BIT(19) | \
|
|
||||||
BIT(31))
|
|
||||||
|
|
||||||
#define E1000E_RING_LEN (0x1000)
|
|
||||||
|
|
||||||
#define E1000E_TDBAL (0x3800)
|
|
||||||
|
|
||||||
#define E1000E_TDBAH (0x3804)
|
|
||||||
#define E1000E_TDH (0x3810)
|
|
||||||
|
|
||||||
#define E1000E_RDBAL (0x2800)
|
|
||||||
#define E1000E_RDBAH (0x2804)
|
|
||||||
#define E1000E_RDH (0x2810)
|
|
||||||
|
|
||||||
#define E1000E_TXD_LEN (16)
|
|
||||||
#define E1000E_RXD_LEN (16)
|
|
||||||
|
|
||||||
static void e1000e_macreg_write(QE1000E *d, uint32_t reg, uint32_t val)
|
static void e1000e_macreg_write(QE1000E *d, uint32_t reg, uint32_t val)
|
||||||
{
|
{
|
||||||
|
@ -87,30 +52,34 @@ void e1000e_tx_ring_push(QE1000E *d, void *descr)
|
||||||
{
|
{
|
||||||
QE1000E_PCI *d_pci = container_of(d, QE1000E_PCI, e1000e);
|
QE1000E_PCI *d_pci = container_of(d, QE1000E_PCI, e1000e);
|
||||||
uint32_t tail = e1000e_macreg_read(d, E1000E_TDT);
|
uint32_t tail = e1000e_macreg_read(d, E1000E_TDT);
|
||||||
uint32_t len = e1000e_macreg_read(d, E1000E_TDLEN) / E1000E_TXD_LEN;
|
uint32_t len = e1000e_macreg_read(d, E1000E_TDLEN) / E1000_RING_DESC_LEN;
|
||||||
|
|
||||||
qtest_memwrite(d_pci->pci_dev.bus->qts, d->tx_ring + tail * E1000E_TXD_LEN,
|
qtest_memwrite(d_pci->pci_dev.bus->qts,
|
||||||
descr, E1000E_TXD_LEN);
|
d->tx_ring + tail * E1000_RING_DESC_LEN,
|
||||||
|
descr, E1000_RING_DESC_LEN);
|
||||||
e1000e_macreg_write(d, E1000E_TDT, (tail + 1) % len);
|
e1000e_macreg_write(d, E1000E_TDT, (tail + 1) % len);
|
||||||
|
|
||||||
/* Read WB data for the packet transmitted */
|
/* Read WB data for the packet transmitted */
|
||||||
qtest_memread(d_pci->pci_dev.bus->qts, d->tx_ring + tail * E1000E_TXD_LEN,
|
qtest_memread(d_pci->pci_dev.bus->qts,
|
||||||
descr, E1000E_TXD_LEN);
|
d->tx_ring + tail * E1000_RING_DESC_LEN,
|
||||||
|
descr, E1000_RING_DESC_LEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e1000e_rx_ring_push(QE1000E *d, void *descr)
|
void e1000e_rx_ring_push(QE1000E *d, void *descr)
|
||||||
{
|
{
|
||||||
QE1000E_PCI *d_pci = container_of(d, QE1000E_PCI, e1000e);
|
QE1000E_PCI *d_pci = container_of(d, QE1000E_PCI, e1000e);
|
||||||
uint32_t tail = e1000e_macreg_read(d, E1000E_RDT);
|
uint32_t tail = e1000e_macreg_read(d, E1000E_RDT);
|
||||||
uint32_t len = e1000e_macreg_read(d, E1000E_RDLEN) / E1000E_RXD_LEN;
|
uint32_t len = e1000e_macreg_read(d, E1000E_RDLEN) / E1000_RING_DESC_LEN;
|
||||||
|
|
||||||
qtest_memwrite(d_pci->pci_dev.bus->qts, d->rx_ring + tail * E1000E_RXD_LEN,
|
qtest_memwrite(d_pci->pci_dev.bus->qts,
|
||||||
descr, E1000E_RXD_LEN);
|
d->rx_ring + tail * E1000_RING_DESC_LEN,
|
||||||
|
descr, E1000_RING_DESC_LEN);
|
||||||
e1000e_macreg_write(d, E1000E_RDT, (tail + 1) % len);
|
e1000e_macreg_write(d, E1000E_RDT, (tail + 1) % len);
|
||||||
|
|
||||||
/* Read WB data for the packet received */
|
/* Read WB data for the packet received */
|
||||||
qtest_memread(d_pci->pci_dev.bus->qts, d->rx_ring + tail * E1000E_RXD_LEN,
|
qtest_memread(d_pci->pci_dev.bus->qts,
|
||||||
descr, E1000E_RXD_LEN);
|
d->rx_ring + tail * E1000_RING_DESC_LEN,
|
||||||
|
descr, E1000_RING_DESC_LEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void e1000e_foreach_callback(QPCIDevice *dev, int devfn, void *data)
|
static void e1000e_foreach_callback(QPCIDevice *dev, int devfn, void *data)
|
||||||
|
@ -151,53 +120,53 @@ static void e1000e_pci_start_hw(QOSGraphObject *obj)
|
||||||
qpci_device_enable(&d->pci_dev);
|
qpci_device_enable(&d->pci_dev);
|
||||||
|
|
||||||
/* Reset the device */
|
/* Reset the device */
|
||||||
val = e1000e_macreg_read(&d->e1000e, E1000E_CTRL);
|
val = e1000e_macreg_read(&d->e1000e, E1000_CTRL);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_CTRL, val | E1000E_CTRL_RESET);
|
e1000e_macreg_write(&d->e1000e, E1000_CTRL, val | E1000_CTRL_RST);
|
||||||
|
|
||||||
/* Enable and configure MSI-X */
|
/* Enable and configure MSI-X */
|
||||||
qpci_msix_enable(&d->pci_dev);
|
qpci_msix_enable(&d->pci_dev);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_IVAR, E1000E_IVAR_TEST_CFG);
|
e1000e_macreg_write(&d->e1000e, E1000_IVAR, E1000E_IVAR_TEST_CFG);
|
||||||
|
|
||||||
/* Check the device status - link and speed */
|
/* Check the device status - link and speed */
|
||||||
val = e1000e_macreg_read(&d->e1000e, E1000E_STATUS);
|
val = e1000e_macreg_read(&d->e1000e, E1000_STATUS);
|
||||||
g_assert_cmphex(val & (E1000E_STATUS_LU | E1000E_STATUS_ASDV1000),
|
g_assert_cmphex(val & (E1000_STATUS_LU | E1000_STATUS_LAN_INIT_DONE),
|
||||||
==, E1000E_STATUS_LU | E1000E_STATUS_ASDV1000);
|
==, E1000_STATUS_LU | E1000_STATUS_LAN_INIT_DONE);
|
||||||
|
|
||||||
/* Initialize TX/RX logic */
|
/* Initialize TX/RX logic */
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_RCTL, 0);
|
e1000e_macreg_write(&d->e1000e, E1000_RCTL, 0);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_TCTL, 0);
|
e1000e_macreg_write(&d->e1000e, E1000_TCTL, 0);
|
||||||
|
|
||||||
/* Notify the device that the driver is ready */
|
/* Notify the device that the driver is ready */
|
||||||
val = e1000e_macreg_read(&d->e1000e, E1000E_CTRL_EXT);
|
val = e1000e_macreg_read(&d->e1000e, E1000_CTRL_EXT);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_CTRL_EXT,
|
e1000e_macreg_write(&d->e1000e, E1000_CTRL_EXT,
|
||||||
val | E1000E_CTRL_EXT_DRV_LOAD | E1000E_CTRL_EXT_TXLSFLOW);
|
val | E1000_CTRL_EXT_DRV_LOAD);
|
||||||
|
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_TDBAL,
|
e1000e_macreg_write(&d->e1000e, E1000_TDBAL,
|
||||||
(uint32_t) d->e1000e.tx_ring);
|
(uint32_t) d->e1000e.tx_ring);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_TDBAH,
|
e1000e_macreg_write(&d->e1000e, E1000_TDBAH,
|
||||||
(uint32_t) (d->e1000e.tx_ring >> 32));
|
(uint32_t) (d->e1000e.tx_ring >> 32));
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_TDLEN, E1000E_RING_LEN);
|
e1000e_macreg_write(&d->e1000e, E1000E_TDLEN, E1000E_RING_LEN);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_TDT, 0);
|
e1000e_macreg_write(&d->e1000e, E1000E_TDT, 0);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_TDH, 0);
|
e1000e_macreg_write(&d->e1000e, E1000_TDH, 0);
|
||||||
|
|
||||||
/* Enable transmit */
|
/* Enable transmit */
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_TCTL, E1000E_TCTL_EN);
|
e1000e_macreg_write(&d->e1000e, E1000_TCTL, E1000_TCTL_EN);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_RDBAL,
|
e1000e_macreg_write(&d->e1000e, E1000_RDBAL,
|
||||||
(uint32_t)d->e1000e.rx_ring);
|
(uint32_t)d->e1000e.rx_ring);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_RDBAH,
|
e1000e_macreg_write(&d->e1000e, E1000_RDBAH,
|
||||||
(uint32_t)(d->e1000e.rx_ring >> 32));
|
(uint32_t)(d->e1000e.rx_ring >> 32));
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_RDLEN, E1000E_RING_LEN);
|
e1000e_macreg_write(&d->e1000e, E1000E_RDLEN, E1000E_RING_LEN);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_RDT, 0);
|
e1000e_macreg_write(&d->e1000e, E1000E_RDT, 0);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_RDH, 0);
|
e1000e_macreg_write(&d->e1000e, E1000_RDH, 0);
|
||||||
|
|
||||||
/* Enable receive */
|
/* Enable receive */
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_RFCTL, E1000E_RFCTL_EXTEN);
|
e1000e_macreg_write(&d->e1000e, E1000_RFCTL, E1000_RFCTL_EXTEN);
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_RCTL, E1000E_RCTL_EN |
|
e1000e_macreg_write(&d->e1000e, E1000_RCTL, E1000_RCTL_EN |
|
||||||
E1000E_RCTL_UPE |
|
E1000_RCTL_UPE |
|
||||||
E1000E_RCTL_MPE);
|
E1000_RCTL_MPE);
|
||||||
|
|
||||||
/* Enable all interrupts */
|
/* Enable all interrupts */
|
||||||
e1000e_macreg_write(&d->e1000e, E1000E_IMS, 0xFFFFFFFF);
|
e1000e_macreg_write(&d->e1000e, E1000_IMS, 0xFFFFFFFF);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,6 @@ libqos_srcs = files(
|
||||||
'sdhci.c',
|
'sdhci.c',
|
||||||
'tpci200.c',
|
'tpci200.c',
|
||||||
'virtio.c',
|
'virtio.c',
|
||||||
'virtio-9p.c',
|
|
||||||
'virtio-9p-client.c',
|
|
||||||
'virtio-balloon.c',
|
'virtio-balloon.c',
|
||||||
'virtio-blk.c',
|
'virtio-blk.c',
|
||||||
'vhost-user-blk.c',
|
'vhost-user-blk.c',
|
||||||
|
@ -62,6 +60,10 @@ libqos_srcs = files(
|
||||||
'x86_64_pc-machine.c',
|
'x86_64_pc-machine.c',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if have_virtfs
|
||||||
|
libqos_srcs += files('virtio-9p.c', 'virtio-9p-client.c')
|
||||||
|
endif
|
||||||
|
|
||||||
libqos = static_library('qos', libqos_srcs + genh,
|
libqos = static_library('qos', libqos_srcs + genh,
|
||||||
name_suffix: 'fa',
|
name_suffix: 'fa',
|
||||||
build_by_default: false)
|
build_by_default: false)
|
||||||
|
|
|
@ -16,9 +16,11 @@
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
|
#endif /* _WIN32 */
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
#include <sys/prctl.h>
|
#include <sys/prctl.h>
|
||||||
#endif /* __linux__ */
|
#endif /* __linux__ */
|
||||||
|
@ -27,13 +29,25 @@
|
||||||
#include "libqmp.h"
|
#include "libqmp.h"
|
||||||
#include "qemu/ctype.h"
|
#include "qemu/ctype.h"
|
||||||
#include "qemu/cutils.h"
|
#include "qemu/cutils.h"
|
||||||
|
#include "qemu/sockets.h"
|
||||||
#include "qapi/qmp/qdict.h"
|
#include "qapi/qmp/qdict.h"
|
||||||
#include "qapi/qmp/qjson.h"
|
#include "qapi/qmp/qjson.h"
|
||||||
#include "qapi/qmp/qlist.h"
|
#include "qapi/qmp/qlist.h"
|
||||||
#include "qapi/qmp/qstring.h"
|
#include "qapi/qmp/qstring.h"
|
||||||
|
|
||||||
#define MAX_IRQ 256
|
#define MAX_IRQ 256
|
||||||
#define SOCKET_TIMEOUT 50
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
# define SOCKET_TIMEOUT 50
|
||||||
|
# define CMD_EXEC "exec "
|
||||||
|
# define DEV_STDERR "/dev/fd/2"
|
||||||
|
# define DEV_NULL "/dev/null"
|
||||||
|
#else
|
||||||
|
# define SOCKET_TIMEOUT 50000
|
||||||
|
# define CMD_EXEC ""
|
||||||
|
# define DEV_STDERR "2"
|
||||||
|
# define DEV_NULL "nul"
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef void (*QTestSendFn)(QTestState *s, const char *buf);
|
typedef void (*QTestSendFn)(QTestState *s, const char *buf);
|
||||||
typedef void (*ExternalSendFn)(void *s, const char *buf);
|
typedef void (*ExternalSendFn)(void *s, const char *buf);
|
||||||
|
@ -57,6 +71,9 @@ struct QTestState
|
||||||
int qmp_fd;
|
int qmp_fd;
|
||||||
pid_t qemu_pid; /* our child QEMU process */
|
pid_t qemu_pid; /* our child QEMU process */
|
||||||
int wstatus;
|
int wstatus;
|
||||||
|
#ifdef _WIN32
|
||||||
|
DWORD exit_code;
|
||||||
|
#endif
|
||||||
int expected_status;
|
int expected_status;
|
||||||
bool big_endian;
|
bool big_endian;
|
||||||
bool irq_level[MAX_IRQ];
|
bool irq_level[MAX_IRQ];
|
||||||
|
@ -90,8 +107,16 @@ static int socket_accept(int sock)
|
||||||
struct sockaddr_un addr;
|
struct sockaddr_un addr;
|
||||||
socklen_t addrlen;
|
socklen_t addrlen;
|
||||||
int ret;
|
int ret;
|
||||||
|
/*
|
||||||
|
* timeout unit of blocking receive calls is different among platfoms.
|
||||||
|
* It's in seconds on non-Windows platforms but milliseconds on Windows.
|
||||||
|
*/
|
||||||
|
#ifndef _WIN32
|
||||||
struct timeval timeout = { .tv_sec = SOCKET_TIMEOUT,
|
struct timeval timeout = { .tv_sec = SOCKET_TIMEOUT,
|
||||||
.tv_usec = 0 };
|
.tv_usec = 0 };
|
||||||
|
#else
|
||||||
|
DWORD timeout = SOCKET_TIMEOUT;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO,
|
if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO,
|
||||||
(void *)&timeout, sizeof(timeout))) {
|
(void *)&timeout, sizeof(timeout))) {
|
||||||
|
@ -118,10 +143,18 @@ bool qtest_probe_child(QTestState *s)
|
||||||
pid_t pid = s->qemu_pid;
|
pid_t pid = s->qemu_pid;
|
||||||
|
|
||||||
if (pid != -1) {
|
if (pid != -1) {
|
||||||
|
#ifndef _WIN32
|
||||||
pid = waitpid(pid, &s->wstatus, WNOHANG);
|
pid = waitpid(pid, &s->wstatus, WNOHANG);
|
||||||
if (pid == 0) {
|
if (pid == 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
GetExitCodeProcess((HANDLE)pid, &s->exit_code);
|
||||||
|
if (s->exit_code == STILL_ACTIVE) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
CloseHandle((HANDLE)pid);
|
||||||
|
#endif
|
||||||
s->qemu_pid = -1;
|
s->qemu_pid = -1;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -132,24 +165,14 @@ void qtest_set_expected_status(QTestState *s, int status)
|
||||||
s->expected_status = status;
|
s->expected_status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qtest_kill_qemu(QTestState *s)
|
static void qtest_check_status(QTestState *s)
|
||||||
{
|
{
|
||||||
pid_t pid = s->qemu_pid;
|
|
||||||
int wstatus;
|
|
||||||
|
|
||||||
/* Skip wait if qtest_probe_child already reaped. */
|
|
||||||
if (pid != -1) {
|
|
||||||
kill(pid, SIGTERM);
|
|
||||||
TFR(pid = waitpid(s->qemu_pid, &s->wstatus, 0));
|
|
||||||
assert(pid == s->qemu_pid);
|
|
||||||
s->qemu_pid = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check whether qemu exited with expected exit status; anything else is
|
* Check whether qemu exited with expected exit status; anything else is
|
||||||
* fishy and should be logged with as much detail as possible.
|
* fishy and should be logged with as much detail as possible.
|
||||||
*/
|
*/
|
||||||
wstatus = s->wstatus;
|
#ifndef _WIN32
|
||||||
|
int wstatus = s->wstatus;
|
||||||
if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) != s->expected_status) {
|
if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) != s->expected_status) {
|
||||||
fprintf(stderr, "%s:%d: kill_qemu() tried to terminate QEMU "
|
fprintf(stderr, "%s:%d: kill_qemu() tried to terminate QEMU "
|
||||||
"process but encountered exit status %d (expected %d)\n",
|
"process but encountered exit status %d (expected %d)\n",
|
||||||
|
@ -165,6 +188,50 @@ void qtest_kill_qemu(QTestState *s)
|
||||||
__FILE__, __LINE__, sig, signame, dump);
|
__FILE__, __LINE__, sig, signame, dump);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if (s->exit_code != s->expected_status) {
|
||||||
|
fprintf(stderr, "%s:%d: kill_qemu() tried to terminate QEMU "
|
||||||
|
"process but encountered exit status %ld (expected %d)\n",
|
||||||
|
__FILE__, __LINE__, s->exit_code, s->expected_status);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void qtest_wait_qemu(QTestState *s)
|
||||||
|
{
|
||||||
|
#ifndef _WIN32
|
||||||
|
pid_t pid;
|
||||||
|
|
||||||
|
TFR(pid = waitpid(s->qemu_pid, &s->wstatus, 0));
|
||||||
|
assert(pid == s->qemu_pid);
|
||||||
|
#else
|
||||||
|
DWORD ret;
|
||||||
|
|
||||||
|
ret = WaitForSingleObject((HANDLE)s->qemu_pid, INFINITE);
|
||||||
|
assert(ret == WAIT_OBJECT_0);
|
||||||
|
GetExitCodeProcess((HANDLE)s->qemu_pid, &s->exit_code);
|
||||||
|
CloseHandle((HANDLE)s->qemu_pid);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
qtest_check_status(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
void qtest_kill_qemu(QTestState *s)
|
||||||
|
{
|
||||||
|
/* Skip wait if qtest_probe_child() already reaped */
|
||||||
|
if (s->qemu_pid != -1) {
|
||||||
|
#ifndef _WIN32
|
||||||
|
kill(s->qemu_pid, SIGTERM);
|
||||||
|
#else
|
||||||
|
TerminateProcess((HANDLE)s->qemu_pid, s->expected_status);
|
||||||
|
#endif
|
||||||
|
qtest_wait_qemu(s);
|
||||||
|
s->qemu_pid = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
qtest_check_status(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void kill_qemu_hook_func(void *s)
|
static void kill_qemu_hook_func(void *s)
|
||||||
|
@ -243,6 +310,38 @@ static const char *qtest_qemu_binary(void)
|
||||||
return qemu_bin;
|
return qemu_bin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
static pid_t qtest_create_process(char *cmd)
|
||||||
|
{
|
||||||
|
STARTUPINFO si;
|
||||||
|
PROCESS_INFORMATION pi;
|
||||||
|
BOOL ret;
|
||||||
|
|
||||||
|
ZeroMemory(&si, sizeof(si));
|
||||||
|
si.cb = sizeof(si);
|
||||||
|
ZeroMemory(&pi, sizeof(pi));
|
||||||
|
|
||||||
|
ret = CreateProcess(NULL, /* module name */
|
||||||
|
cmd, /* command line */
|
||||||
|
NULL, /* process handle not inheritable */
|
||||||
|
NULL, /* thread handle not inheritable */
|
||||||
|
FALSE, /* set handle inheritance to FALSE */
|
||||||
|
0, /* No creation flags */
|
||||||
|
NULL, /* use parent's environment block */
|
||||||
|
NULL, /* use parent's starting directory */
|
||||||
|
&si, /* pointer to STARTUPINFO structure */
|
||||||
|
&pi /* pointer to PROCESS_INFORMATION structure */
|
||||||
|
);
|
||||||
|
if (ret == 0) {
|
||||||
|
fprintf(stderr, "%s:%d: unable to create a new process (%s)\n",
|
||||||
|
__FILE__, __LINE__, strerror(GetLastError()));
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
return (pid_t)pi.hProcess;
|
||||||
|
}
|
||||||
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
|
QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
|
||||||
{
|
{
|
||||||
QTestState *s;
|
QTestState *s;
|
||||||
|
@ -270,6 +369,7 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
|
||||||
unlink(socket_path);
|
unlink(socket_path);
|
||||||
unlink(qmp_socket_path);
|
unlink(qmp_socket_path);
|
||||||
|
|
||||||
|
socket_init();
|
||||||
sock = init_socket(socket_path);
|
sock = init_socket(socket_path);
|
||||||
qmpsock = init_socket(qmp_socket_path);
|
qmpsock = init_socket(qmp_socket_path);
|
||||||
|
|
||||||
|
@ -278,7 +378,7 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
|
||||||
|
|
||||||
qtest_add_abrt_handler(kill_qemu_hook_func, s);
|
qtest_add_abrt_handler(kill_qemu_hook_func, s);
|
||||||
|
|
||||||
command = g_strdup_printf("exec %s %s"
|
command = g_strdup_printf(CMD_EXEC "%s %s"
|
||||||
"-qtest unix:%s "
|
"-qtest unix:%s "
|
||||||
"-qtest-log %s "
|
"-qtest-log %s "
|
||||||
"-chardev socket,path=%s,id=char0 "
|
"-chardev socket,path=%s,id=char0 "
|
||||||
|
@ -287,7 +387,7 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
|
||||||
"%s"
|
"%s"
|
||||||
" -accel qtest",
|
" -accel qtest",
|
||||||
qemu_binary, tracearg, socket_path,
|
qemu_binary, tracearg, socket_path,
|
||||||
getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null",
|
getenv("QTEST_LOG") ? DEV_STDERR : DEV_NULL,
|
||||||
qmp_socket_path,
|
qmp_socket_path,
|
||||||
extra_args ?: "");
|
extra_args ?: "");
|
||||||
|
|
||||||
|
@ -296,6 +396,7 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
|
||||||
s->pending_events = NULL;
|
s->pending_events = NULL;
|
||||||
s->wstatus = 0;
|
s->wstatus = 0;
|
||||||
s->expected_status = 0;
|
s->expected_status = 0;
|
||||||
|
#ifndef _WIN32
|
||||||
s->qemu_pid = fork();
|
s->qemu_pid = fork();
|
||||||
if (s->qemu_pid == 0) {
|
if (s->qemu_pid == 0) {
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
@ -318,6 +419,9 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
|
||||||
execlp("/bin/sh", "sh", "-c", command, NULL);
|
execlp("/bin/sh", "sh", "-c", command, NULL);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
s->qemu_pid = qtest_create_process(command);
|
||||||
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
g_free(command);
|
g_free(command);
|
||||||
s->fd = socket_accept(sock);
|
s->fd = socket_accept(sock);
|
||||||
|
@ -336,9 +440,19 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
|
||||||
s->irq_level[i] = false;
|
s->irq_level[i] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Stopping QEMU for debugging is not supported on Windows.
|
||||||
|
*
|
||||||
|
* Using DebugActiveProcess() API can suspend the QEMU process,
|
||||||
|
* but gdb cannot attach to the process. Using the undocumented
|
||||||
|
* NtSuspendProcess() can suspend the QEMU process and gdb can
|
||||||
|
* attach to the process, but gdb cannot resume it.
|
||||||
|
*/
|
||||||
|
#ifndef _WIN32
|
||||||
if (getenv("QTEST_STOP")) {
|
if (getenv("QTEST_STOP")) {
|
||||||
kill(s->qemu_pid, SIGSTOP);
|
kill(s->qemu_pid, SIGSTOP);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ask endianness of the target */
|
/* ask endianness of the target */
|
||||||
|
|
||||||
|
@ -392,6 +506,7 @@ QTestState *qtest_init_with_serial(const char *extra_args, int *sock_fd)
|
||||||
g_assert_true(sock_dir != NULL);
|
g_assert_true(sock_dir != NULL);
|
||||||
sock_path = g_strdup_printf("%s/sock", sock_dir);
|
sock_path = g_strdup_printf("%s/sock", sock_dir);
|
||||||
|
|
||||||
|
socket_init();
|
||||||
sock_fd_init = init_socket(sock_path);
|
sock_fd_init = init_socket(sock_path);
|
||||||
|
|
||||||
qts = qtest_initf("-chardev socket,id=s0,path=%s -serial chardev:s0 %s",
|
qts = qtest_initf("-chardev socket,id=s0,path=%s -serial chardev:s0 %s",
|
||||||
|
@ -428,7 +543,7 @@ void qtest_quit(QTestState *s)
|
||||||
|
|
||||||
static void socket_send(int fd, const char *buf, size_t size)
|
static void socket_send(int fd, const char *buf, size_t size)
|
||||||
{
|
{
|
||||||
size_t res = qemu_write_full(fd, buf, size);
|
ssize_t res = qemu_send_full(fd, buf, size);
|
||||||
|
|
||||||
assert(res == size);
|
assert(res == size);
|
||||||
}
|
}
|
||||||
|
@ -460,7 +575,7 @@ static GString *qtest_client_socket_recv_line(QTestState *s)
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
|
|
||||||
len = read(s->fd, buffer, sizeof(buffer));
|
len = recv(s->fd, buffer, sizeof(buffer), 0);
|
||||||
if (len == -1 && errno == EINTR) {
|
if (len == -1 && errno == EINTR) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,6 +75,15 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args);
|
||||||
*/
|
*/
|
||||||
QTestState *qtest_init_with_serial(const char *extra_args, int *sock_fd);
|
QTestState *qtest_init_with_serial(const char *extra_args, int *sock_fd);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qtest_wait_qemu:
|
||||||
|
* @s: #QTestState instance to operate on.
|
||||||
|
*
|
||||||
|
* Wait for the QEMU process to terminate. It is safe to call this function
|
||||||
|
* multiple times.
|
||||||
|
*/
|
||||||
|
void qtest_wait_qemu(QTestState *s);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* qtest_kill_qemu:
|
* qtest_kill_qemu:
|
||||||
* @s: #QTestState instance to operate on.
|
* @s: #QTestState instance to operate on.
|
||||||
|
|
|
@ -1342,7 +1342,7 @@ static void test_precopy_common(MigrateCommon *args)
|
||||||
wait_for_migration_fail(from, allow_active);
|
wait_for_migration_fail(from, allow_active);
|
||||||
|
|
||||||
if (args->result == MIG_TEST_FAIL_DEST_QUIT_ERR) {
|
if (args->result == MIG_TEST_FAIL_DEST_QUIT_ERR) {
|
||||||
qtest_set_expected_status(to, 1);
|
qtest_set_expected_status(to, EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (args->iterations) {
|
if (args->iterations) {
|
||||||
|
@ -1738,7 +1738,7 @@ static void do_test_validate_uuid(MigrateStart *args, bool should_fail)
|
||||||
migrate_qmp(from, uri, "{}");
|
migrate_qmp(from, uri, "{}");
|
||||||
|
|
||||||
if (should_fail) {
|
if (should_fail) {
|
||||||
qtest_set_expected_status(to, 1);
|
qtest_set_expected_status(to, EXIT_FAILURE);
|
||||||
wait_for_migration_fail(from, true);
|
wait_for_migration_fail(from, true);
|
||||||
} else {
|
} else {
|
||||||
wait_for_migration_complete(from);
|
wait_for_migration_complete(from);
|
||||||
|
@ -2141,6 +2141,10 @@ static void test_multifd_tcp_cancel(void)
|
||||||
|
|
||||||
migrate_cancel(from);
|
migrate_cancel(from);
|
||||||
|
|
||||||
|
/* Make sure QEMU process "to" exited */
|
||||||
|
qtest_set_expected_status(to, EXIT_FAILURE);
|
||||||
|
qtest_wait_qemu(to);
|
||||||
|
|
||||||
args = (MigrateStart){
|
args = (MigrateStart){
|
||||||
.only_target = true,
|
.only_target = true,
|
||||||
};
|
};
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include <glib/gstdio.h>
|
|
||||||
|
|
||||||
#include "libqtest.h"
|
#include "libqtest.h"
|
||||||
#include "qemu/module.h"
|
#include "qemu/module.h"
|
||||||
|
@ -62,9 +61,9 @@ int main(int argc, char **argv)
|
||||||
tpm_crb_swtpm_migration_test);
|
tpm_crb_swtpm_migration_test);
|
||||||
ret = g_test_run();
|
ret = g_test_run();
|
||||||
|
|
||||||
g_rmdir(ts.dst_tpm_path);
|
tpm_util_rmdir(ts.dst_tpm_path);
|
||||||
g_free(ts.dst_tpm_path);
|
g_free(ts.dst_tpm_path);
|
||||||
g_rmdir(ts.src_tpm_path);
|
tpm_util_rmdir(ts.src_tpm_path);
|
||||||
g_free(ts.src_tpm_path);
|
g_free(ts.src_tpm_path);
|
||||||
g_free(ts.uri);
|
g_free(ts.uri);
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include <glib/gstdio.h>
|
|
||||||
|
|
||||||
#include "libqtest.h"
|
#include "libqtest.h"
|
||||||
#include "qemu/module.h"
|
#include "qemu/module.h"
|
||||||
|
@ -66,9 +65,9 @@ int main(int argc, char **argv)
|
||||||
tpm_tis_swtpm_migration_test);
|
tpm_tis_swtpm_migration_test);
|
||||||
ret = g_test_run();
|
ret = g_test_run();
|
||||||
|
|
||||||
g_rmdir(ts.dst_tpm_path);
|
tpm_util_rmdir(ts.dst_tpm_path);
|
||||||
g_free(ts.dst_tpm_path);
|
g_free(ts.dst_tpm_path);
|
||||||
g_rmdir(ts.src_tpm_path);
|
tpm_util_rmdir(ts.src_tpm_path);
|
||||||
g_free(ts.src_tpm_path);
|
g_free(ts.src_tpm_path);
|
||||||
g_free(ts.uri);
|
g_free(ts.uri);
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include <glib/gstdio.h>
|
|
||||||
|
|
||||||
#include "libqtest.h"
|
#include "libqtest.h"
|
||||||
#include "qemu/module.h"
|
#include "qemu/module.h"
|
||||||
|
@ -61,9 +60,9 @@ int main(int argc, char **argv)
|
||||||
tpm_tis_swtpm_migration_test);
|
tpm_tis_swtpm_migration_test);
|
||||||
ret = g_test_run();
|
ret = g_test_run();
|
||||||
|
|
||||||
g_rmdir(ts.dst_tpm_path);
|
tpm_util_rmdir(ts.dst_tpm_path);
|
||||||
g_free(ts.dst_tpm_path);
|
g_free(ts.dst_tpm_path);
|
||||||
g_rmdir(ts.src_tpm_path);
|
tpm_util_rmdir(ts.src_tpm_path);
|
||||||
g_free(ts.src_tpm_path);
|
g_free(ts.src_tpm_path);
|
||||||
g_free(ts.uri);
|
g_free(ts.uri);
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
|
#include <glib/gstdio.h>
|
||||||
|
|
||||||
#include "hw/acpi/tpm.h"
|
#include "hw/acpi/tpm.h"
|
||||||
#include "libqtest.h"
|
#include "libqtest.h"
|
||||||
|
@ -292,3 +293,21 @@ void tpm_util_migration_start_qemu(QTestState **src_qemu,
|
||||||
g_free(src_qemu_args);
|
g_free(src_qemu_args);
|
||||||
g_free(dst_qemu_args);
|
g_free(dst_qemu_args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Remove directory with remainders of swtpm */
|
||||||
|
void tpm_util_rmdir(const char *path)
|
||||||
|
{
|
||||||
|
char *filename;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
filename = g_strdup_printf("%s/tpm2-00.permall", path);
|
||||||
|
g_unlink(filename);
|
||||||
|
g_free(filename);
|
||||||
|
|
||||||
|
filename = g_strdup_printf("%s/.lock", path);
|
||||||
|
g_unlink(filename);
|
||||||
|
g_free(filename);
|
||||||
|
|
||||||
|
ret = g_rmdir(path);
|
||||||
|
g_assert(!ret);
|
||||||
|
}
|
||||||
|
|
|
@ -53,5 +53,6 @@ void tpm_util_migration_start_qemu(QTestState **src_qemu,
|
||||||
const char *machine_options);
|
const char *machine_options);
|
||||||
|
|
||||||
void tpm_util_wait_for_migration_complete(QTestState *who);
|
void tpm_util_wait_for_migration_complete(QTestState *who);
|
||||||
|
void tpm_util_rmdir(const char *path);
|
||||||
|
|
||||||
#endif /* TESTS_TPM_UTIL_H */
|
#endif /* TESTS_TPM_UTIL_H */
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
S390X_SRC=$(SRC_PATH)/tests/tcg/s390x
|
S390X_SRC=$(SRC_PATH)/tests/tcg/s390x
|
||||||
VPATH+=$(S390X_SRC)
|
VPATH+=$(S390X_SRC)
|
||||||
CFLAGS+=-march=zEC12 -m64
|
CFLAGS+=-march=zEC12 -m64
|
||||||
|
|
||||||
|
config-cc.mak: Makefile
|
||||||
|
$(quiet-@)( \
|
||||||
|
$(call cc-option,-march=z14, CROSS_CC_HAS_Z14); \
|
||||||
|
$(call cc-option,-march=z15, CROSS_CC_HAS_Z15)) 3> config-cc.mak
|
||||||
|
-include config-cc.mak
|
||||||
|
|
||||||
TESTS+=hello-s390x
|
TESTS+=hello-s390x
|
||||||
TESTS+=csst
|
TESTS+=csst
|
||||||
TESTS+=ipm
|
TESTS+=ipm
|
||||||
|
@ -18,20 +25,24 @@ TESTS+=signals-s390x
|
||||||
TESTS+=branch-relative-long
|
TESTS+=branch-relative-long
|
||||||
TESTS+=noexec
|
TESTS+=noexec
|
||||||
|
|
||||||
|
Z13_TESTS=vistr
|
||||||
|
$(Z13_TESTS): CFLAGS+=-march=z13 -O2
|
||||||
|
TESTS+=$(Z13_TESTS)
|
||||||
|
|
||||||
|
ifneq ($(CROSS_CC_HAS_Z14),)
|
||||||
Z14_TESTS=vfminmax
|
Z14_TESTS=vfminmax
|
||||||
vfminmax: LDFLAGS+=-lm
|
vfminmax: LDFLAGS+=-lm
|
||||||
$(Z14_TESTS): CFLAGS+=-march=z14 -O2
|
$(Z14_TESTS): CFLAGS+=-march=z14 -O2
|
||||||
|
TESTS+=$(Z14_TESTS)
|
||||||
|
endif
|
||||||
|
|
||||||
TESTS+=$(if $(shell $(CC) -march=z14 -S -o /dev/null -xc /dev/null \
|
ifneq ($(CROSS_CC_HAS_Z15),)
|
||||||
>/dev/null 2>&1 && echo OK),$(Z14_TESTS))
|
Z15_TESTS=vxeh2_vs
|
||||||
|
Z15_TESTS+=vxeh2_vcvt
|
||||||
VECTOR_TESTS=vxeh2_vs
|
Z15_TESTS+=vxeh2_vlstr
|
||||||
VECTOR_TESTS+=vxeh2_vcvt
|
$(Z15_TESTS): CFLAGS+=-march=z15 -O2
|
||||||
VECTOR_TESTS+=vxeh2_vlstr
|
TESTS+=$(Z15_TESTS)
|
||||||
$(VECTOR_TESTS): CFLAGS+=-march=z15 -O2
|
endif
|
||||||
|
|
||||||
TESTS+=$(if $(shell $(CC) -march=z15 -S -o /dev/null -xc /dev/null \
|
|
||||||
>/dev/null 2>&1 && echo OK),$(VECTOR_TESTS))
|
|
||||||
|
|
||||||
ifneq ($(HAVE_GDB_BIN),)
|
ifneq ($(HAVE_GDB_BIN),)
|
||||||
GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py
|
GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Test the VECTOR ISOLATE STRING (vistr) instruction
|
||||||
|
*/
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "vx.h"
|
||||||
|
|
||||||
|
static inline void vistr(S390Vector *v1, S390Vector *v2,
|
||||||
|
const uint8_t m3, const uint8_t m5)
|
||||||
|
{
|
||||||
|
asm volatile("vistr %[v1], %[v2], %[m3], %[m5]\n"
|
||||||
|
: [v1] "=v" (v1->v)
|
||||||
|
: [v2] "v" (v2->v)
|
||||||
|
, [m3] "i" (m3)
|
||||||
|
, [m5] "i" (m5)
|
||||||
|
: "cc");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
S390Vector vd = {};
|
||||||
|
S390Vector vs16 = {
|
||||||
|
.h[0] = 0x1234, .h[1] = 0x0056, .h[2] = 0x7800, .h[3] = 0x0000,
|
||||||
|
.h[4] = 0x0078, .h[5] = 0x0000, .h[6] = 0x6543, .h[7] = 0x2100
|
||||||
|
};
|
||||||
|
S390Vector vs32 = {
|
||||||
|
.w[0] = 0x12340000, .w[1] = 0x78654300,
|
||||||
|
.w[2] = 0x0, .w[3] = 0x12,
|
||||||
|
};
|
||||||
|
|
||||||
|
vistr(&vd, &vs16, 1, 0);
|
||||||
|
if (vd.h[0] != 0x1234 || vd.h[1] != 0x0056 || vd.h[2] != 0x7800 ||
|
||||||
|
vd.h[3] || vd.h[4] || vd.h[5] || vd.h[6] || vd.h[7]) {
|
||||||
|
puts("ERROR: vitrh failed!");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
vistr(&vd, &vs32, 2, 0);
|
||||||
|
if (vd.w[0] != 0x12340000 || vd.w[1] != 0x78654300 || vd.w[2] || vd.w[3]) {
|
||||||
|
puts("ERROR: vitrf failed!");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -66,6 +66,9 @@ class FreeBSDVM(basevm.BaseVM):
|
||||||
|
|
||||||
# libs: networking
|
# libs: networking
|
||||||
"libslirp",
|
"libslirp",
|
||||||
|
|
||||||
|
# libs: sndio
|
||||||
|
"sndio",
|
||||||
]
|
]
|
||||||
|
|
||||||
BUILD_SCRIPT = """
|
BUILD_SCRIPT = """
|
||||||
|
|
|
@ -22,8 +22,8 @@ class OpenBSDVM(basevm.BaseVM):
|
||||||
name = "openbsd"
|
name = "openbsd"
|
||||||
arch = "x86_64"
|
arch = "x86_64"
|
||||||
|
|
||||||
link = "https://cdn.openbsd.org/pub/OpenBSD/7.1/amd64/install71.iso"
|
link = "https://cdn.openbsd.org/pub/OpenBSD/7.2/amd64/install72.iso"
|
||||||
csum = "d3a7c5b9bf890bc404304a1c96f9ee72e1d9bbcf9cc849c1133bdb0d67843396"
|
csum = "0369ef40a3329efcb978c578c7fdc7bda71e502aecec930a74b44160928c91d3"
|
||||||
size = "20G"
|
size = "20G"
|
||||||
pkgs = [
|
pkgs = [
|
||||||
# tools
|
# tools
|
||||||
|
@ -56,6 +56,9 @@ class OpenBSDVM(basevm.BaseVM):
|
||||||
|
|
||||||
# libs: migration
|
# libs: migration
|
||||||
"zstd",
|
"zstd",
|
||||||
|
|
||||||
|
# libs: networking
|
||||||
|
"libslirp",
|
||||||
]
|
]
|
||||||
|
|
||||||
BUILD_SCRIPT = """
|
BUILD_SCRIPT = """
|
||||||
|
|
22
util/osdep.c
22
util/osdep.c
|
@ -502,6 +502,28 @@ int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ssize_t qemu_send_full(int s, const void *buf, size_t count)
|
||||||
|
{
|
||||||
|
ssize_t ret = 0;
|
||||||
|
ssize_t total = 0;
|
||||||
|
|
||||||
|
while (count) {
|
||||||
|
ret = send(s, buf, count, 0);
|
||||||
|
if (ret < 0) {
|
||||||
|
if (errno == EINTR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
count -= ret;
|
||||||
|
buf += ret;
|
||||||
|
total += ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
void qemu_set_hw_version(const char *version)
|
void qemu_set_hw_version(const char *version)
|
||||||
{
|
{
|
||||||
hw_version = version;
|
hw_version = version;
|
||||||
|
|
Loading…
Reference in New Issue