diff options
author | Jason Macnak <natsu@google.com> | 2023-08-03 17:01:36 -0700 |
---|---|---|
committer | Jason Macnak <natsu@google.com> | 2023-08-07 10:12:20 -0700 |
commit | 749c51d74f4db9b5d62880d6b6416c08d9fd7897 (patch) | |
tree | 51e133739081d2b6a897b90a723819efd6ca403c | |
parent | cd97af4f4283d2c386c5e76aeac953118807c8a9 (diff) | |
download | cuttlefish_vmm-749c51d74f4db9b5d62880d6b6416c08d9fd7897.tar.gz |
Revert "Delete device/google/cuttlefish_vmm"
This reverts commit cd97af4f4283d2c386c5e76aeac953118807c8a9.
Bug: b/200592498
Test: see next change
Change-Id: Idd8f0a85d2dd294019ca9577ab063c4e6ecde85a
-rw-r--r-- | Dockerfile | 87 | ||||
-rw-r--r-- | METADATA | 3 | ||||
-rw-r--r-- | OWNERS | 11 | ||||
-rw-r--r-- | aarch64-linux-gnu/Cargo.lock | 1067 | ||||
-rw-r--r-- | aarch64-linux-gnu/builder-packages.txt | 444 | ||||
-rw-r--r-- | aarch64-linux-gnu/cargo_version.txt | 4 | ||||
-rw-r--r-- | aarch64-linux-gnu/rustup_show.txt | 4 | ||||
-rwxr-xr-x | check_links.sh | 28 | ||||
-rwxr-xr-x | gen_android_bp.sh | 141 | ||||
-rwxr-xr-x | generate-gfxstream-manifest.sh | 31 | ||||
-rw-r--r-- | manifest.xml | 49 | ||||
-rwxr-xr-x | rebuild-docker.sh | 149 | ||||
-rwxr-xr-x | rebuild-internal.sh | 399 | ||||
-rwxr-xr-x | rebuild.sh | 423 | ||||
-rwxr-xr-x | update-manifest-gfxstream.py | 122 | ||||
-rw-r--r-- | x86_64-linux-gnu/Cargo.lock | 982 | ||||
-rw-r--r-- | x86_64-linux-gnu/builder-packages.txt | 515 | ||||
-rw-r--r-- | x86_64-linux-gnu/builder_image.txt | 1 | ||||
-rw-r--r-- | x86_64-linux-gnu/cargo_version.txt | 4 | ||||
-rw-r--r-- | x86_64-linux-gnu/rustup_show.txt | 14 |
20 files changed, 4478 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dee59ae --- /dev/null +++ b/Dockerfile @@ -0,0 +1,87 @@ +FROM debian:buster-slim AS docker_vmm + +ENV container docker +ENV LC_ALL C.UTF-8 +ENV DEBIAN_FRONTEND noninteractive + +SHELL [ "/bin/bash", "-c" ] + +# Set up the user to be the same as the user creating the container. Not +# strictly necessary, but this way all the permissions of the generated files +# will match. + +ARG USER +ARG UID + +ENV USER $USER +ENV HOME /home/$USER +ENV CUSTOM_MANIFEST "" + +RUN apt update \ + && apt install -y sudo + +RUN useradd -m -s /bin/bash $USER -u $UID -d $HOME \ + && passwd -d $USER \ + && echo "$USER ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers + +RUN mkdir /source && chown -R $USER /source +RUN mkdir /output && chown -R $USER /output +RUN mkdir /working && chown -R $USER /working +RUN mkdir /static && chown -R $USER /static + +USER $USER +WORKDIR $HOME + +COPY --chown=$USER manifest.xml /static/manifest.xml +COPY --chown=$USER custom.xml /static/custom.xml +COPY --chown=$USER rebuild-internal.sh /static/rebuild-internal.sh + +RUN TOOLS_DIR=/static/tools /static/rebuild-internal.sh install_packages + +VOLUME /source +VOLUME /working +VOLUME /output + +FROM docker_vmm AS docker_vmm_persistent + +ENV container docker +ENV LC_ALL C.UTF-8 +ENV DEBIAN_FRONTEND noninteractive + +SHELL [ "/bin/bash", "-c" ] + +USER root + +# Containers built from this image are meant to persist, once started. A user +# account is created on them where the work of building crosvm is carried out, +# persistently. + +RUN apt-get update \ + && apt-get install -y systemd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ + && rm -f /var/run/nologin + +RUN rm -f /lib/systemd/system/multi-user.target.wants/* \ + /etc/systemd/system/*.wants/* \ + /lib/systemd/system/local-fs.target.wants/* \ + /lib/systemd/system/sockets.target.wants/*udev* \ + /lib/systemd/system/sockets.target.wants/*initctl* \ + /lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup* \ + /lib/systemd/system/systemd-update-utmp* + +VOLUME [ "/sys/fs/cgroup" ] + +CMD ["/lib/systemd/systemd"] + +RUN apt update \ + && apt install -y apt-utils sudo dpkg-dev coreutils \ + openssh-server openssh-client psmisc iptables iproute2 dnsmasq \ + net-tools rsyslog equivs + +RUN apt install -y dialog + +RUN sed -i -r -e 's/^#{0,1}\s*PasswordAuthentication\s+(yes|no)/PasswordAuthentication yes/g' /etc/ssh/sshd_config \ + && sed -i -r -e 's/^#{0,1}\s*PermitEmptyPasswords\s+(yes|no)/PermitEmptyPasswords yes/g' /etc/ssh/sshd_config \ + && sed -i -r -e 's/^#{0,1}\s*ChallengeResponseAuthentication\s+(yes|no)/ChallengeResponseAuthentication no/g' /etc/ssh/sshd_config \ + && sed -i -r -e 's/^#{0,1}\s*UsePAM\s+(yes|no)/UsePAM no/g' /etc/ssh/sshd_config diff --git a/METADATA b/METADATA new file mode 100644 index 0000000..d97975c --- /dev/null +++ b/METADATA @@ -0,0 +1,3 @@ +third_party { + license_type: NOTICE +} @@ -0,0 +1,11 @@ +# Current team members +adelva@google.com +jemoreira@google.com +malchev@google.com +muntsinger@google.com +natsu@google.com +rammuthiah@google.com +schuffelen@google.com + +# Former team members +ghartman@google.com diff --git a/aarch64-linux-gnu/Cargo.lock b/aarch64-linux-gnu/Cargo.lock new file mode 100644 index 0000000..bc97430 --- /dev/null +++ b/aarch64-linux-gnu/Cargo.lock @@ -0,0 +1,1067 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "aarch64" +version = "0.1.0" +dependencies = [ + "arch", + "base", + "data_model", + "devices", + "hypervisor", + "kernel_cmdline", + "kvm", + "kvm_sys", + "libc", + "minijail", + "remain", + "resources", + "sync", + "vm_control", + "vm_memory", +] + +[[package]] +name = "acpi_tables" +version = "0.1.0" +dependencies = [ + "data_model", +] + +[[package]] +name = "android_log-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e" + +[[package]] +name = "arch" +version = "0.1.0" +dependencies = [ + "acpi_tables", + "base", + "devices", + "hypervisor", + "kernel_cmdline", + "libc", + "minijail", + "resources", + "sync", + "vm_control", + "vm_memory", +] + +[[package]] +name = "assertions" +version = "0.1.0" + +[[package]] +name = "async-trait" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b246867b8b3b6ae56035f1eb1ed557c1d8eae97f0d53696138a50fa0e3a3b8c0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "audio_streams" +version = "0.1.0" +dependencies = [ + "sync", + "sys_util", +] + +[[package]] +name = "base" +version = "0.1.0" +dependencies = [ + "sys_util", +] + +[[package]] +name = "bit_field" +version = "0.1.0" +dependencies = [ + "bit_field_derive", +] + +[[package]] +name = "bit_field_derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bitflags" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + +[[package]] +name = "cc" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cras-sys" +version = "0.1.0" +dependencies = [ + "audio_streams", + "data_model", +] + +[[package]] +name = "cros_async" +version = "0.1.0" +dependencies = [ + "base", + "futures", + "io_uring", + "libc", + "paste", + "pin-utils", + "slab", + "syscall_defines", +] + +[[package]] +name = "crosvm" +version = "0.1.0" +dependencies = [ + "aarch64", + "acpi_tables", + "arch", + "assertions", + "audio_streams", + "base", + "bit_field", + "crosvm_plugin", + "data_model", + "devices", + "disk", + "enumn", + "gpu_buffer", + "gpu_renderer", + "hypervisor", + "kernel_cmdline", + "kernel_loader", + "kvm", + "kvm_sys", + "libc", + "libcras", + "minijail", + "msg_socket", + "net_util", + "p9", + "protobuf", + "protos", + "rand_ish", + "remain", + "resources", + "sync", + "vhost", + "vm_control", + "vm_memory", + "x86_64", +] + +[[package]] +name = "crosvm_plugin" +version = "0.17.0" +dependencies = [ + "base", + "kvm", + "kvm_sys", + "libc", + "protobuf", + "protos", +] + +[[package]] +name = "data_model" +version = "0.1.0" +dependencies = [ + "assertions", + "libc", +] + +[[package]] +name = "devices" +version = "0.1.0" +dependencies = [ + "acpi_tables", + "audio_streams", + "base", + "bit_field", + "bitflags", + "cros_async", + "data_model", + "disk", + "enumn", + "gpu_buffer", + "gpu_display", + "gpu_renderer", + "hypervisor", + "kvm_sys", + "libc", + "libcras", + "linux_input_sys", + "minijail", + "msg_on_socket_derive", + "msg_socket", + "net_sys", + "net_util", + "p9", + "protos", + "rand_ish", + "remain", + "resources", + "sync", + "syscall_defines", + "tempfile 3.0.7", + "tpm2", + "usb_util", + "vfio_sys", + "vhost", + "virtio_sys", + "vm_control", + "vm_memory", +] + +[[package]] +name = "disk" +version = "0.1.0" +dependencies = [ + "async-trait", + "base", + "cros_async", + "data_model", + "futures", + "libc", + "protobuf", + "protos", + "remain", + "vm_memory", +] + +[[package]] +name = "enumn" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8e3078b7b2a8a671cb7a3d17b4760e4181ea243227776ba83fd043b4ca034e" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a4d35f7401e948629c9c3d6638fb9bf94e0b2121e96c3b428cc4e631f3eb74" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d674eaa0056896d5ada519900dbf97ead2e46a7b6621e8160d79e2f2e1e2784b" + +[[package]] +name = "futures-executor" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc709ca1da6f66143b8c9bec8e6260181869893714e9b5a490b169b0414144ab" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc94b64bb39543b4e432f1790b6bf18e3ee3b74653c5449f63310e9a74b123c" + +[[package]] +name = "futures-macro" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f57ed14da4603b2554682e9f2ff3c65d7567b53188db96cb71538217fc64581b" +dependencies = [ + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8764258ed64ebc5d9ed185cf86a95db5cac810269c5d20ececb32e0088abbd" + +[[package]] +name = "futures-task" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dd26820a9f3637f1302da8bceba3ff33adbe53464b54ca24d4e2d4f1db30f94" +dependencies = [ + "once_cell", +] + +[[package]] +name = "futures-util" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a894a0acddba51a2d49a6f4263b1e64b8c579ece8af50fa86503d52cd1eea34" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project", + "pin-utils", + "proc-macro-hack", + "proc-macro-nested", + "slab", +] + +[[package]] +name = "getopts" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "getrandom" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gpu_buffer" +version = "0.1.0" +dependencies = [ + "base", + "data_model", +] + +[[package]] +name = "gpu_display" +version = "0.1.0" +dependencies = [ + "base", + "cc", + "data_model", + "libc", + "linux_input_sys", +] + +[[package]] +name = "gpu_renderer" +version = "0.1.0" +dependencies = [ + "base", + "data_model", + "libc", + "vm_memory", +] + +[[package]] +name = "hermit-abi" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" +dependencies = [ + "libc", +] + +[[package]] +name = "hypervisor" +version = "0.1.0" +dependencies = [ + "base", + "bit_field", + "data_model", + "enumn", + "kvm", + "kvm_sys", + "libc", + "msg_socket", + "sync", + "vm_memory", +] + +[[package]] +name = "io_uring" +version = "0.1.0" +dependencies = [ + "base", + "libc", + "syscall_defines", +] + +[[package]] +name = "kernel_cmdline" +version = "0.1.0" +dependencies = [ + "libc", +] + +[[package]] +name = "kernel_loader" +version = "0.1.0" +dependencies = [ + "base", + "libc", + "vm_memory", +] + +[[package]] +name = "kvm" +version = "0.1.0" +dependencies = [ + "base", + "data_model", + "kvm_sys", + "libc", + "msg_socket", + "sync", + "vm_memory", +] + +[[package]] +name = "kvm_sys" +version = "0.1.0" +dependencies = [ + "base", + "libc", +] + +[[package]] +name = "libc" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743" + +[[package]] +name = "libcras" +version = "0.1.0" +dependencies = [ + "audio_streams", + "cras-sys", + "data_model", + "libc", + "sys_util", +] + +[[package]] +name = "linux_input_sys" +version = "0.1.0" +dependencies = [ + "base", + "data_model", + "libc", +] + +[[package]] +name = "log" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "memchr" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" + +[[package]] +name = "minijail" +version = "0.2.1" +dependencies = [ + "libc", + "minijail-sys", +] + +[[package]] +name = "minijail-sys" +version = "0.0.11" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "msg_on_socket_derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "msg_socket" +version = "0.1.0" +dependencies = [ + "base", + "cros_async", + "data_model", + "futures", + "libc", + "msg_on_socket_derive", + "sync", +] + +[[package]] +name = "net_sys" +version = "0.1.0" +dependencies = [ + "base", +] + +[[package]] +name = "net_util" +version = "0.1.0" +dependencies = [ + "base", + "data_model", + "libc", + "net_sys", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" + +[[package]] +name = "p9" +version = "0.1.0" +dependencies = [ + "libc", + "wire_format_derive", +] + +[[package]] +name = "paste" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0520af26d4cf99643dbbe093a61507922b57232d9978d8491fdc8f7b44573c8c" + +[[package]] +name = "pin-project" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" + +[[package]] +name = "poll_token_derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" + +[[package]] +name = "proc-macro-hack" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" + +[[package]] +name = "proc-macro-nested" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" + +[[package]] +name = "proc-macro2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "protobuf" +version = "2.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d147edb77bcccbfc81fabffdc7bd50c13e103b15ca1e27515fe40de69a5776b" + +[[package]] +name = "protobuf-codegen" +version = "2.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e81f70c25aab9506f87253c55f7cdcd8917635d5597382958d20025c211bbbd" +dependencies = [ + "protobuf", +] + +[[package]] +name = "protoc" +version = "2.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57408af2c106a7f08cc61e15be6a31e3ace8ea26f90dd1be1ad19abf1073d36a" +dependencies = [ + "log", + "which", +] + +[[package]] +name = "protoc-rust" +version = "2.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21c1582ff3efeccef1385b1c2dfaf4a9b5bc7794865624fc2a3ca9dff1145fa1" +dependencies = [ + "protobuf", + "protobuf-codegen", + "protoc", + "tempfile 3.1.0", +] + +[[package]] +name = "protos" +version = "0.1.0" +dependencies = [ + "kvm_sys", + "protobuf", + "protoc-rust", +] + +[[package]] +name = "qcow_utils" +version = "0.1.0" +dependencies = [ + "base", + "disk", + "getopts", + "libc", +] + +[[package]] +name = "quote" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom", + "libc", + "rand_chacha", + "rand_core", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_ish" +version = "0.1.0" + +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + +[[package]] +name = "remain" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ba1e78fa68412cb93ef642fd4d20b9a941be49ee9333875ebaf13112673ea7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "resources" +version = "0.1.0" +dependencies = [ + "base", + "gpu_buffer", + "libc", + "msg_socket", +] + +[[package]] +name = "slab" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" + +[[package]] +name = "syn" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea9c5432ff16d6152371f808fb5a871cd67368171b09bb21b43df8e4a47a3556" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "sync" +version = "0.1.0" + +[[package]] +name = "sys_util" +version = "0.1.0" +dependencies = [ + "android_log-sys", + "data_model", + "libc", + "poll_token_derive", + "sync", + "syscall_defines", + "tempfile 3.0.7", +] + +[[package]] +name = "syscall_defines" +version = "0.1.0" + +[[package]] +name = "tempfile" +version = "3.0.7" +dependencies = [ + "libc", +] + +[[package]] +name = "tempfile" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +dependencies = [ + "cfg-if", + "libc", + "rand", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "thiserror" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "318234ffa22e0920fe9a40d7b8369b5f649d490980cf7aadcf1eb91594869b42" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae2447b6282786c3493999f40a9be2a6ad20cb8bd268b0a0dbf5a065535c0ab" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tpm2" +version = "0.1.0" +dependencies = [ + "tpm2-sys", +] + +[[package]] +name = "tpm2-sys" +version = "0.1.0" +dependencies = [ + "num_cpus", + "pkg-config", +] + +[[package]] +name = "unicode-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" + +[[package]] +name = "unicode-xid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" + +[[package]] +name = "usb_sys" +version = "0.1.0" +dependencies = [ + "base", +] + +[[package]] +name = "usb_util" +version = "0.1.0" +dependencies = [ + "assertions", + "base", + "data_model", + "libc", + "remain", + "usb_sys", +] + +[[package]] +name = "vfio_sys" +version = "0.1.0" +dependencies = [ + "base", +] + +[[package]] +name = "vhost" +version = "0.1.0" +dependencies = [ + "assertions", + "base", + "libc", + "net_util", + "virtio_sys", + "vm_memory", +] + +[[package]] +name = "virtio_sys" +version = "0.1.0" +dependencies = [ + "base", +] + +[[package]] +name = "vm_control" +version = "0.1.0" +dependencies = [ + "base", + "data_model", + "hypervisor", + "libc", + "msg_socket", + "resources", + "sync", + "vm_memory", +] + +[[package]] +name = "vm_memory" +version = "0.1.0" +dependencies = [ + "base", + "cros_async", + "data_model", + "libc", + "syscall_defines", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "which" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87c14ef7e1b8b8ecfc75d5eca37949410046e66f15d185c01d70824f1f8111ef" +dependencies = [ + "libc", + "thiserror", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wire_format_derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "x86_64" +version = "0.1.0" +dependencies = [ + "acpi_tables", + "arch", + "assertions", + "base", + "data_model", + "devices", + "hypervisor", + "kernel_cmdline", + "kernel_loader", + "libc", + "minijail", + "remain", + "resources", + "sync", + "vm_control", + "vm_memory", +] diff --git a/aarch64-linux-gnu/builder-packages.txt b/aarch64-linux-gnu/builder-packages.txt new file mode 100644 index 0000000..04b2f71 --- /dev/null +++ b/aarch64-linux-gnu/builder-packages.txt @@ -0,0 +1,444 @@ +adduser 3.118 +apt 1.8.2.1 +apt-utils 1.8.2.1 +autoconf 2.69-11 +automake 1:1.16.1-4 +autopoint 0.19.8.1-9 +autotools-dev 20180224.1 +base-files 10.3+deb10u6 +base-passwd 3.5.46 +bash 5.0-4 +binutils 2.31.1-16 +binutils-aarch64-linux-gnu 2.31.1-16 +binutils-common:arm64 2.31.1-16 +bsd-mailx 8.1.2-0.20180807cvs-1 +bsdmainutils 11.1.2+b1 +bsdutils 1:2.33.1-0.1 +build-essential 12.6 +bzip2 1.0.6-9.2~deb10u1 +ca-certificates 20200601~deb10u1 +cmake 3.13.4-1 +cmake-data 3.13.4-1 +coreutils 8.30-3 +cpp 4:8.3.0-1 +cpp-8 8.3.0-6 +cron 3.0pl1-134+deb10u1 +curl 7.64.0-4+deb10u1 +dash 0.5.10.2-5 +dbus 1.12.20-0+deb10u1 +debconf 1.5.71 +debhelper 12.1.1 +debian-archive-keyring 2019.1 +debianutils 4.8.6.1 +dh-autoreconf 19 +dh-python 3.20190308 +dh-strip-nondeterminism 1.1.2-1 +dialog 1.3-20190211-1 +diffutils 1:3.7-3 +dirmngr 2.2.12-1+deb10u1 +dmsetup 2:1.02.155-3 +dns-root-data 2019031302 +dnsmasq 2.80-1 +dnsmasq-base 2.80-1 +dpkg 1.19.7 +dpkg-dev 1.19.7 +dwz 0.12-3 +e2fsprogs 1.44.5-1+deb10u3 +equivs 2.2.0 +exim4-base 4.92-8+deb10u4 +exim4-config 4.92-8+deb10u4 +exim4-daemon-light 4.92-8+deb10u4 +fakeroot 1.23-1 +fdisk 2.33.1-0.1 +file 1:5.35-4+deb10u1 +findutils 4.6.0+git+20190209-2 +g++ 4:8.3.0-1 +g++-8 8.3.0-6 +gcc 4:8.3.0-1 +gcc-8 8.3.0-6 +gcc-8-base:arm64 8.3.0-6 +gettext 0.19.8.1-9 +gettext-base 0.19.8.1-9 +gir1.2-glib-2.0:arm64 1.58.3-2 +git 1:2.20.1-2+deb10u3 +git-man 1:2.20.1-2+deb10u3 +gnupg 2.2.12-1+deb10u1 +gnupg-l10n 2.2.12-1+deb10u1 +gnupg-utils 2.2.12-1+deb10u1 +gpg 2.2.12-1+deb10u1 +gpg-agent 2.2.12-1+deb10u1 +gpg-wks-client 2.2.12-1+deb10u1 +gpg-wks-server 2.2.12-1+deb10u1 +gpgconf 2.2.12-1+deb10u1 +gpgsm 2.2.12-1+deb10u1 +gpgv 2.2.12-1+deb10u1 +grep 3.3-1 +groff-base 1.22.4-3 +gzip 1.9-3 +hostname 3.21 +init-system-helpers 1.56+nmu1 +intltool-debian 0.35.0+20060710.5 +iproute2 4.20.0-2 +iptables 1.8.2-4 +krb5-locales 1.17-3 +less 487-0.1+b1 +libacl1:arm64 2.2.53-4 +libalgorithm-diff-perl 1.19.03-2 +libalgorithm-diff-xs-perl 0.04-5+b1 +libalgorithm-merge-perl 0.08-3 +libapparmor1:arm64 2.13.2-10 +libapt-inst2.0:arm64 1.8.2.1 +libapt-pkg5.0:arm64 1.8.2.1 +libarchive-cpio-perl 0.10-1 +libarchive-zip-perl 1.64-1 +libarchive13:arm64 3.3.3-4+deb10u1 +libargon2-1:arm64 0~20171227-0.2 +libasan5:arm64 8.3.0-6 +libassuan0:arm64 2.5.2-1 +libatm1:arm64 1:2.5.1-2 +libatomic1:arm64 8.3.0-6 +libattr1:arm64 1:2.4.48-4 +libaudit-common 1:2.8.4-3 +libaudit1:arm64 1:2.8.4-3 +libbinutils:arm64 2.31.1-16 +libblkid1:arm64 2.33.1-0.1 +libbsd0:arm64 0.9.1-2 +libbz2-1.0:arm64 1.0.6-9.2~deb10u1 +libc-bin 2.28-10 +libc-dev-bin 2.28-10 +libc6:arm64 2.28-10 +libc6-dev:arm64 2.28-10 +libcap-dev:arm64 1:2.25-2 +libcap-ng0:arm64 0.7.9-2 +libcap2:arm64 1:2.25-2 +libcap2-bin 1:2.25-2 +libcc1-0:arm64 8.3.0-6 +libcom-err2:arm64 1.44.5-1+deb10u3 +libcroco3:arm64 0.6.12-3 +libcryptsetup12:arm64 2:2.1.0-5+deb10u2 +libcurl3-gnutls:arm64 7.64.0-4+deb10u1 +libcurl4:arm64 7.64.0-4+deb10u1 +libdb5.3:arm64 5.3.28+dfsg1-0.5 +libdbus-1-3:arm64 1.12.20-0+deb10u1 +libdebconfclient0:arm64 0.249 +libdevmapper1.02.1:arm64 2:1.02.155-3 +libdpkg-perl 1.19.7 +libdrm-amdgpu1:arm64 2.4.97-1 +libdrm-common 2.4.97-1 +libdrm-dev:arm64 2.4.97-1 +libdrm-etnaviv1:arm64 2.4.97-1 +libdrm-freedreno1:arm64 2.4.97-1 +libdrm-nouveau2:arm64 2.4.97-1 +libdrm-radeon1:arm64 2.4.97-1 +libdrm-tegra0:arm64 2.4.97-1 +libdrm2:arm64 2.4.97-1 +libedit2:arm64 3.1-20181209-1 +libegl-mesa0:arm64 18.3.6-2+deb10u1 +libegl1:arm64 1.1.0-1 +libegl1-mesa-dev:arm64 18.3.6-2+deb10u1 +libelf1:arm64 0.176-1.1 +liberror-perl 0.17027-2 +libestr0:arm64 0.1.10-2.1 +libevent-2.1-6:arm64 2.1.8-stable-4 +libexpat1:arm64 2.2.6-2+deb10u1 +libexpat1-dev:arm64 2.2.6-2+deb10u1 +libext2fs2:arm64 1.44.5-1+deb10u3 +libfakeroot:arm64 1.23-1 +libfastjson4:arm64 0.99.8-2 +libfdisk1:arm64 2.33.1-0.1 +libfdt-dev 1.4.7-3 +libfdt1:arm64 1.4.7-3 +libffi6:arm64 3.2.1-9 +libfile-fcntllock-perl 0.22-3+b5 +libfile-stripnondeterminism-perl 1.1.2-1 +libgbm1:arm64 18.3.6-2+deb10u1 +libgcc-8-dev:arm64 8.3.0-6 +libgcc1:arm64 1:8.3.0-6 +libgcrypt20:arm64 1.8.4-5 +libgdbm-compat4:arm64 1.18.1-4 +libgdbm6:arm64 1.18.1-4 +libgirepository-1.0-1:arm64 1.58.3-2 +libgl1:arm64 1.1.0-1 +libgl1-mesa-dev:arm64 18.3.6-2+deb10u1 +libgl1-mesa-dri:arm64 18.3.6-2+deb10u1 +libglapi-mesa:arm64 18.3.6-2+deb10u1 +libgles1:arm64 1.1.0-1 +libgles2:arm64 1.1.0-1 +libgles2-mesa-dev:arm64 18.3.6-2+deb10u1 +libglib2.0-0:arm64 2.58.3-2+deb10u2 +libglib2.0-data 2.58.3-2+deb10u2 +libglvnd-core-dev:arm64 1.1.0-1 +libglvnd-dev:arm64 1.1.0-1 +libglvnd0:arm64 1.1.0-1 +libglx-mesa0:arm64 18.3.6-2+deb10u1 +libglx0:arm64 1.1.0-1 +libgmp10:arm64 2:6.1.2+dfsg-4 +libgnutls-dane0:arm64 3.6.7-4+deb10u5 +libgnutls30:arm64 3.6.7-4+deb10u5 +libgomp1:arm64 8.3.0-6 +libgpg-error0:arm64 1.35-1 +libgpm2:arm64 1.20.7-5 +libgssapi-krb5-2:arm64 1.17-3 +libhogweed4:arm64 3.4.1-1 +libicu63:arm64 63.1-6+deb10u1 +libidn11:arm64 1.33-2.2 +libidn2-0:arm64 2.0.5-1+deb10u1 +libip4tc0:arm64 1.8.2-4 +libip6tc0:arm64 1.8.2-4 +libiptc0:arm64 1.8.2-4 +libisl19:arm64 0.20-2 +libitm1:arm64 8.3.0-6 +libjansson4:arm64 2.12-1 +libjson-c3:arm64 0.12.1+ds-2+deb10u1 +libjsoncpp1:arm64 1.7.4-3 +libk5crypto3:arm64 1.17-3 +libkeyutils1:arm64 1.6-6 +libkmod2:arm64 26-1 +libkrb5-3:arm64 1.17-3 +libkrb5support0:arm64 1.17-3 +libksba8:arm64 1.3.5-2 +libldap-2.4-2:arm64 2.4.47+dfsg-3+deb10u2 +libldap-common 2.4.47+dfsg-3+deb10u2 +libllvm7:arm64 1:7.0.1-8+deb10u2 +liblocale-gettext-perl 1.07-3+b4 +liblockfile-bin 1.14-1.1 +liblockfile1:arm64 1.14-1.1 +liblognorm5:arm64 2.0.5-1 +liblsan0:arm64 8.3.0-6 +libltdl-dev:arm64 2.4.6-9 +libltdl7:arm64 2.4.6-9 +liblz4-1:arm64 1.8.3-1 +liblzma5:arm64 5.2.4-1 +libmagic-mgc 1:5.35-4+deb10u1 +libmagic1:arm64 1:5.35-4+deb10u1 +libmail-sendmail-perl 0.80-1 +libmnl0:arm64 1.0.4-2 +libmount1:arm64 2.33.1-0.1 +libmpc3:arm64 1.1.0-1 +libmpdec2:arm64 2.4.2-2 +libmpfr6:arm64 4.0.2-1 +libncurses6:arm64 6.1+20181013-2+deb10u2 +libncursesw6:arm64 6.1+20181013-2+deb10u2 +libnetfilter-conntrack3:arm64 1.0.7-1 +libnettle6:arm64 3.4.1-1 +libnfnetlink0:arm64 1.0.1-3+b1 +libnftables0:arm64 0.9.0-2 +libnftnl11:arm64 1.1.2-2 +libnghttp2-14:arm64 1.36.0-2+deb10u1 +libnpth0:arm64 1.6-1 +libnss-systemd:arm64 241-7~deb10u4 +libopengl0:arm64 1.1.0-1 +libp11-kit0:arm64 0.23.15-2 +libpam-cap:arm64 1:2.25-2 +libpam-modules:arm64 1.3.1-5 +libpam-modules-bin 1.3.1-5 +libpam-runtime 1.3.1-5 +libpam-systemd:arm64 241-7~deb10u4 +libpam0g:arm64 1.3.1-5 +libpciaccess-dev:arm64 0.14-1 +libpciaccess0:arm64 0.14-1 +libpcre2-8-0:arm64 10.32-5 +libpcre3:arm64 2:8.39-12 +libperl5.28:arm64 5.28.1-6+deb10u1 +libpipeline1:arm64 1.5.1-2 +libpopt0:arm64 1.16-12 +libprocps7:arm64 2:3.3.15-2 +libprotobuf-dev:arm64 3.6.1.3-2 +libprotobuf-lite17:arm64 3.6.1.3-2 +libprotobuf17:arm64 3.6.1.3-2 +libprotoc17:arm64 3.6.1.3-2 +libpsl5:arm64 0.20.2-2 +libpthread-stubs0-dev:arm64 0.4-1 +libpython-stdlib:arm64 2.7.16-1 +libpython2-stdlib:arm64 2.7.16-1 +libpython2.7-minimal:arm64 2.7.16-2+deb10u1 +libpython2.7-stdlib:arm64 2.7.16-2+deb10u1 +libpython3-dev:arm64 3.7.3-1 +libpython3-stdlib:arm64 3.7.3-1 +libpython3.7:arm64 3.7.3-2+deb10u2 +libpython3.7-dev:arm64 3.7.3-2+deb10u2 +libpython3.7-minimal:arm64 3.7.3-2+deb10u2 +libpython3.7-stdlib:arm64 3.7.3-2+deb10u2 +libreadline7:arm64 7.0-5 +librhash0:arm64 1.3.8-1 +librtmp1:arm64 2.4+20151223.gitfa8646d.1-2 +libsasl2-2:arm64 2.1.27+dfsg-1+deb10u1 +libsasl2-modules:arm64 2.1.27+dfsg-1+deb10u1 +libsasl2-modules-db:arm64 2.1.27+dfsg-1+deb10u1 +libseccomp2:arm64 2.3.3-4 +libselinux1:arm64 2.8-1+b1 +libsemanage-common 2.8-2 +libsemanage1:arm64 2.8-2 +libsensors-config 1:3.5.0-3 +libsensors5:arm64 1:3.5.0-3 +libsepol1:arm64 2.8-1 +libsigsegv2:arm64 2.12-2 +libsmartcols1:arm64 2.33.1-0.1 +libsqlite3-0:arm64 3.27.2-3 +libss2:arm64 1.44.5-1+deb10u3 +libssh2-1:arm64 1.8.0-2.1 +libssl-dev:arm64 1.1.1d-0+deb10u3 +libssl1.1:arm64 1.1.1d-0+deb10u3 +libstdc++-8-dev:arm64 8.3.0-6 +libstdc++6:arm64 8.3.0-6 +libsys-hostname-long-perl 1.5-1 +libsystemd0:arm64 241-7~deb10u4 +libtasn1-6:arm64 4.13-3 +libtinfo6:arm64 6.1+20181013-2+deb10u2 +libtool 2.4.6-9 +libtsan0:arm64 8.3.0-6 +libubsan1:arm64 8.3.0-6 +libuchardet0:arm64 0.0.6-3 +libudev1:arm64 241-7~deb10u4 +libunbound8:arm64 1.9.0-2+deb10u2 +libunistring2:arm64 0.9.10-1 +libusb-1.0-0:arm64 2:1.0.22-2 +libusb-1.0-0-dev:arm64 2:1.0.22-2 +libusb-1.0-doc 2:1.0.22-2 +libuuid1:arm64 2.33.1-0.1 +libuv1:arm64 1.24.1-1 +libwayland-bin 1.16.0-1 +libwayland-client0:arm64 1.16.0-1 +libwayland-cursor0:arm64 1.16.0-1 +libwayland-dev:arm64 1.16.0-1 +libwayland-egl1:arm64 1.16.0-1 +libwayland-server0:arm64 1.16.0-1 +libwrap0:arm64 7.6.q-28 +libx11-6:arm64 2:1.6.7-1+deb10u1 +libx11-data 2:1.6.7-1+deb10u1 +libx11-dev:arm64 2:1.6.7-1+deb10u1 +libx11-xcb-dev:arm64 2:1.6.7-1+deb10u1 +libx11-xcb1:arm64 2:1.6.7-1+deb10u1 +libxau-dev:arm64 1:1.0.8-1+b2 +libxau6:arm64 1:1.0.8-1+b2 +libxcb-dri2-0:arm64 1.13.1-2 +libxcb-dri2-0-dev:arm64 1.13.1-2 +libxcb-dri3-0:arm64 1.13.1-2 +libxcb-dri3-dev:arm64 1.13.1-2 +libxcb-glx0:arm64 1.13.1-2 +libxcb-glx0-dev:arm64 1.13.1-2 +libxcb-present-dev:arm64 1.13.1-2 +libxcb-present0:arm64 1.13.1-2 +libxcb-randr0:arm64 1.13.1-2 +libxcb-randr0-dev:arm64 1.13.1-2 +libxcb-render0:arm64 1.13.1-2 +libxcb-render0-dev:arm64 1.13.1-2 +libxcb-shape0:arm64 1.13.1-2 +libxcb-shape0-dev:arm64 1.13.1-2 +libxcb-sync-dev:arm64 1.13.1-2 +libxcb-sync1:arm64 1.13.1-2 +libxcb-xfixes0:arm64 1.13.1-2 +libxcb-xfixes0-dev:arm64 1.13.1-2 +libxcb1:arm64 1.13.1-2 +libxcb1-dev:arm64 1.13.1-2 +libxdamage-dev:arm64 1:1.1.4-3+b3 +libxdamage1:arm64 1:1.1.4-3+b3 +libxdmcp-dev:arm64 1:1.1.2-3 +libxdmcp6:arm64 1:1.1.2-3 +libxext-dev:arm64 2:1.3.3-1+b2 +libxext6:arm64 2:1.3.3-1+b2 +libxfixes-dev:arm64 1:5.0.3-1 +libxfixes3:arm64 1:5.0.3-1 +libxml2:arm64 2.9.4+dfsg1-7+b3 +libxmuu1:arm64 2:1.1.2-2+b3 +libxshmfence-dev:arm64 1.3-1 +libxshmfence1:arm64 1.3-1 +libxtables12:arm64 1.8.2-4 +libxxf86vm-dev:arm64 1:1.1.4-1+b2 +libxxf86vm1:arm64 1:1.1.4-1+b2 +libzstd1:arm64 1.3.8+dfsg-3 +linux-libc-dev:arm64 4.19.152-1 +login 1:4.5-1.1 +logrotate 3.14.0-4 +lsb-base 10.2019051400 +m4 1.4.18-2 +make 4.2.1-1.2 +man-db 2.8.5-2 +manpages 4.16-2 +manpages-dev 4.16-2 +mawk 1.3.3-17+b3 +mesa-common-dev:arm64 18.3.6-2+deb10u1 +mime-support 3.62 +mount 2.33.1-0.1 +nasm 2.14-1 +ncurses-base 6.1+20181013-2+deb10u2 +ncurses-bin 6.1+20181013-2+deb10u2 +ncurses-term 6.1+20181013-2+deb10u2 +net-tools 1.60+git20180626.aebd88e-1 +netbase 5.6 +nftables 0.9.0-2 +ninja-build 1.8.2-1 +openssh-client 1:7.9p1-10+deb10u2 +openssh-server 1:7.9p1-10+deb10u2 +openssh-sftp-server 1:7.9p1-10+deb10u2 +openssl 1.1.1d-0+deb10u3 +passwd 1:4.5-1.1 +patch 2.7.6-3+deb10u1 +perl 5.28.1-6+deb10u1 +perl-base 5.28.1-6+deb10u1 +perl-modules-5.28 5.28.1-6+deb10u1 +pinentry-curses 1.1.0-2 +pkg-config 0.29-6 +po-debconf 1.0.21 +procps 2:3.3.15-2 +protobuf-compiler 3.6.1.3-2 +psmisc 23.2-1 +publicsuffix 20190415.1030-1 +python 2.7.16-1 +python-minimal 2.7.16-1 +python-pip-whl 18.1-5 +python2 2.7.16-1 +python2-minimal 2.7.16-1 +python2.7 2.7.16-2+deb10u1 +python2.7-minimal 2.7.16-2+deb10u1 +python3 3.7.3-1 +python3-asn1crypto 0.24.0-1 +python3-cffi-backend 1.12.2-1 +python3-crypto 2.6.1-9+b1 +python3-cryptography 2.6.1-3+deb10u2 +python3-dbus 1.2.8-3 +python3-dev 3.7.3-1 +python3-distutils 3.7.3-1 +python3-entrypoints 0.3-1 +python3-gi 3.30.4-1 +python3-keyring 17.1.1-1 +python3-keyrings.alt 3.1.1-1 +python3-lib2to3 3.7.3-1 +python3-minimal 3.7.3-1 +python3-pip 18.1-5 +python3-pkg-resources 40.8.0-1 +python3-secretstorage 2.3.1-2 +python3-setuptools 40.8.0-1 +python3-six 1.12.0-1 +python3-wheel 0.32.3-2 +python3-xdg 0.25-5 +python3.7 3.7.3-2+deb10u2 +python3.7-dev 3.7.3-2+deb10u2 +python3.7-minimal 3.7.3-2+deb10u2 +readline-common 7.0-5 +rsyslog 8.1901.0-1 +sed 4.7-1 +sensible-utils 0.0.12 +shared-mime-info 1.10-1 +sudo 1.8.27-1+deb10u2 +systemd 241-7~deb10u4 +systemd-sysv 241-7~deb10u4 +sysvinit-utils 2.93-8 +tar 1.30+dfsg-6 +tzdata 2020a-0+deb10u1 +ucf 3.0038+nmu1 +util-linux 2.33.1-0.1 +x11proto-core-dev 2018.4-4 +x11proto-damage-dev 1:2018.4-4 +x11proto-dev 2018.4-4 +x11proto-fixes-dev 1:2018.4-4 +x11proto-xext-dev 2018.4-4 +x11proto-xf86vidmode-dev 2018.4-4 +xauth 1:1.0.10-1 +xdg-user-dirs 0.17-2 +xorg-sgml-doctools 1:1.11-1 +xtrans-dev 1.3.5-1 +xutils-dev 1:7.7+5+b1 +xz-utils 5.2.4-1 +zlib1g:arm64 1:1.2.11.dfsg-1 +zlib1g-dev:arm64 1:1.2.11.dfsg-1 diff --git a/aarch64-linux-gnu/cargo_version.txt b/aarch64-linux-gnu/cargo_version.txt new file mode 100644 index 0000000..65fc209 --- /dev/null +++ b/aarch64-linux-gnu/cargo_version.txt @@ -0,0 +1,4 @@ +cargo 1.47.0 (f3c7e066a 2020-08-28) +release: 1.47.0 +commit-hash: f3c7e066ad66e05439cf8eab165a2de580b41aaf +commit-date: 2020-08-28 diff --git a/aarch64-linux-gnu/rustup_show.txt b/aarch64-linux-gnu/rustup_show.txt new file mode 100644 index 0000000..f8e6995 --- /dev/null +++ b/aarch64-linux-gnu/rustup_show.txt @@ -0,0 +1,4 @@ +Default host: aarch64-unknown-linux-gnu + +stable-aarch64-unknown-linux-gnu (overridden by '/source/platform/crosvm/rust-toolchain') +rustc 1.47.0 (18bf6b4f0 2020-10-07) diff --git a/check_links.sh b/check_links.sh new file mode 100755 index 0000000..cfcb797 --- /dev/null +++ b/check_links.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Checks that, when we define a local library, we use it everywhere + +pushd "$(dirname "$0")" >/dev/null 2>&1 +base="$(pwd)" +popd >/dev/null 2>&1 + +local_libraries=( \ + $(find "${base}"/x86_64-linux-gnu/bin \ + "${base}"/aarch64-linux-gnu/bin \ + -type f -print) +) + +exit_code=0 + +for check_links_for in "${local_libraries[@]}"; do + library_stub="$(basename "${check_links_for}")" + library_stub="${library_stub/.*/}" + for library_to_check in "${local_libraries[@]}"; do + bad_links="$(ldd "${library_to_check}" | grep "${library_stub}" | grep -v "${base}" )" + if [[ -n "${bad_links}" ]]; then + echo ${library_to_check} has bad link to ${library_stub}: ${bad_links} + exit_code=2 + fi + done +done +exit ${exit_code} diff --git a/gen_android_bp.sh b/gen_android_bp.sh new file mode 100755 index 0000000..9a43dce --- /dev/null +++ b/gen_android_bp.sh @@ -0,0 +1,141 @@ +#!/bin/bash +# +# This script must be run in the location of the script! +# +# This script generates Android.bp files for this and all subdirs of this +# +DIR="${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm" + +function remove_trailing_slash { + if [[ $1 == "/" ]]; then + echo $i + else + echo ${1%/} + fi +} + +set -o errexit + +function check_location() { + local my_loc="$(realpath ${DIR})" + my_loc=$(remove_trailing_slash ${my_loc}) + + local my_pwd="$(realpath $PWD)" + my_pwd="$(remove_trailing_slash ${my_pwd})" + if [[ "${my_loc}" != "${my_pwd}" ]]; then + echo ${my_loc} + echo ${my_pwd} + >&2 echo "the script location must be run where the script is located" + exit 10 + fi +} + +my_name=`basename $0` + +# take arch, return the path of the output Android.bp file +function get_output_file() { + local blueprint_dir=$1 + blueprint_dir="$(remove_trailing_slash ${blueprint_dir})" + echo "${blueprint_dir}/Android.bp" +} + +# starting from old Android.bp +function gen_license() { + local year=${1:-"2019"} +cat <<EOF +// Autogenerated via ${my_name} +// +// Copyright (C) ${year} The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +EOF +} + +# +# first two args are module type (e.g. prebuilt_usr_share_host) +# and the whitespaces for indentation +# +# the rest must be in this form: +# --name=value +# +# then, it simply generates this line repeatedly: +# <indent>name: value, +# +# e.g. --name="\"foo\"" will generate +# name: "foo", +# +function gen_module() { + local mod_name=$1 # e.g. prebuilt_usr_share_host + local indent="$2" + shift 2 + local long_options=() + local long_opt="" + local OPTIND=1 + while getopts ":-:" op; do + # a long opt like --srcs="some" is actually: + # - + - + "srcs=some" + # that's a short option '-' just like h, and + # the OPTARGS of the option '-' is srcs=some + if [[ "$op" != "-" ]]; then + >&2 echo "gen_module does take long options with = only" + exit 8 + fi + long_op="${OPTARG%%=*}" + OPTARG="${OPTARG#$long_op}" + OPTARG="${OPTARG#=}" + long_options+=( "$long_op" ) + declare local ${long_op}="${OPTARG}" + done + + echo "$mod_name {" + for field in "${long_options[@]}"; do + eval local value=\$$field + echo "${indent}${field}: ${value}," + done + echo "}" +} + +function gen_main_android_bp() { + gen_license 2019 + + cat <<EOF +// NOTE: Using cc_prebuilt_binary because cc_prebuilt_library can't handle stem on pie + +EOF + +for i in */bin/*; do + if [[ ! -L "$i" ]]; then + name="${i//\//_}" + name="${name//-/_}" + name="${name/_bin_/_}" + path="$(dirname $(dirname "$i"))" + stem="$(basename "$i")" + + if [[ "crosvm" != "${stem}" ]]; then + name="${name}_for_crosvm" + fi + + gen_module "cc_prebuilt_binary" ' ' \ + --name="\"${name}\"" \ + --srcs="[\"$i\"]" \ + --stem="\"$stem"\" \ + --relative_install_path="\"${path}\"" \ + --defaults="[\"cuttlefish_host_only\"]" + fi +done +} + +# main +check_location +gen_main_android_bp > $(get_output_file ${DIR}) diff --git a/generate-gfxstream-manifest.sh b/generate-gfxstream-manifest.sh new file mode 100755 index 0000000..835f4a9 --- /dev/null +++ b/generate-gfxstream-manifest.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Copyright 2020 - The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the', help='License'); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an', help='AS IS' BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Modifies an input manifest.xml to point to a particular Android build +# id of gfxstream + +set -e + +BUILD_ID=$1 +INPUT_MANIFEST=$2 + +/google/data/ro/projects/android/fetch_artifact \ + --bid ${BUILD_ID} \ + --target gfxstream_sdk_tools_linux "manifest_${BUILD_ID}.xml" + +# Check the output and use it to replace the INPUT_MANIFEST +./update-manifest-gfxstream.py \ + manifest_${BUILD_ID}.xml \ + ${INPUT_MANIFEST} diff --git a/manifest.xml b/manifest.xml new file mode 100644 index 0000000..e8e750a --- /dev/null +++ b/manifest.xml @@ -0,0 +1,49 @@ +<?xml version='1.0' encoding='utf-8'?> +<manifest> + <remote fetch=".." name="aosp" review="https://android-review.googlesource.com/"/> + <default remote="aosp" revision="master" sync-j="4"/> + <manifest-server url="http://android-smartsync.corp.google.com/android.googlesource.com/manifestserver"/> + <project groups="crosvm" name="platform/external/adhd" path="platform/adhd" revision="3251a51ed88868722f32f8984434f616e195c433"/> + <project groups="crosvm" name="platform/external/crosvm" path="platform/crosvm" revision="21d42d32b3d0820456705a066d2c6e2bc9f56337"/> + <project groups="crosvm" name="platform/external/libdrm" path="external/libdrm" revision="c149d6c7426e311b72c325e7ecb49e329c3a34fb"/> + <project groups="crosvm" name="platform/external/libepoxy" path="third_party/libepoxy" revision="826b368df68f65e11500d73e4c5e51668c11417c"/> + <project groups="crosvm" name="platform/external/minigbm" path="third_party/minigbm" revision="1e4aff732191e7b734246ebebde450c394272993"/> + <project groups="crosvm" name="platform/external/minijail" path="platform/minijail" revision="5f9e3001c61626d2863dad91248ba8496c3ef511"/> + <project groups="crosvm" name="platform/external/virglrenderer" path="third_party/virglrenderer" revision="6e313aa49336f55b599c900054feaebf49d7cbd1"/> + <project groups="crosvm" name="platform/tools/repohooks" path="tools/repohooks" revision="3798d7e067b927a16dc9e47bc6af949f9a2f4e20"/> + <repo-hooks enabled-list="pre-upload" in-project="platform/tools/repohooks"/> + <project groups="gfxstream" name="platform/external/ffmpeg" path="external/ffmpeg" revision="5c6f92dd1b16590153367ce79ed9b098cace354f"/> + <project groups="gfxstream" name="platform/external/boringssl" path="external/boringssl" revision="07e050eb7fd8a6c6456bf6ce6cd7c289b2e338ef"/> + <project groups="gfxstream" name="platform/prebuilts/ninja/linux-x86" path="prebuilts/ninja/linux-x86" revision="7ef4cb95e1ed4305e99f03a8e8ad28d26134a45b"/> + <project groups="gfxstream" name="device/generic/vulkan-cereal" path="device/generic/vulkan-cereal" revision="ea978cef5a41c292dd9bd0ce9bf08648e76ca030"/> + <project groups="gfxstream" name="platform/external/protobuf" path="external/protobuf" revision="ca15ad7fb89a626c0d2a98240b11a2523727f9be"/> + <project groups="gfxstream" name="platform/external/libusb" path="external/libusb" revision="ad0473413edec14805e59599ff537eba0f5b8d33"/> + <project groups="gfxstream" name="platform/external/grpc-grpc" path="external/grpc" revision="0d80ea35ba09d0462ca13f236cc9ddc3fb749c57"/> + <project groups="gfxstream" name="platform/external/googletest" path="external/googletest" revision="ee3fca52fa6409aacab73bf519633d21a3a3a738"/> + <project groups="gfxstream" name="platform/external/tinyobjloader" path="external/tinyobjloader" revision="d16a940067fbc191364fc1d3e2a2d907209c9320"/> + <project groups="gfxstream" name="device/generic/goldfish-opengl" path="device/generic/goldfish-opengl" revision="8d4f39f4a7361d959f0e1f2d019fe210a9f31920"/> + <project groups="gfxstream" name="platform/external/libffi" path="external/libffi" revision="30bc66eb2043d8434e94f29beda87001e58c2a34"/> + <project groups="gfxstream" name="platform/external/angle" path="external/angle" revision="61ed0a943789204b9cc14074afdfb8587a345ef8"/> + <project groups="gfxstream" name="platform/external/libpng" path="external/libpng" revision="5d19b1bb0f5694f2ae47b3cc2ccfeb571764b439"/> + <project groups="gfxstream" name="platform/external/lz4" path="external/lz4" revision="1a184fdeb99f4cc11b774ac5b0b824b38105ec6c"/> + <project groups="gfxstream" name="platform/external/nasm" path="external/nasm" revision="645e4f02c622ba67eb754000cc00c9db8be31f85"/> + <project groups="gfxstream" name="platform/external/curl" path="external/curl" revision="1da4b04273638c8afe6f88bd7a7ccfb693640773"/> + <project groups="gfxstream" name="platform/external/libyuv" path="external/libyuv" revision="df6bc4ade7d8a2923269e543b27175eeee26e90b"/> + <project groups="gfxstream" name="platform/prebuilts/android-emulator-build/protobuf" path="prebuilts/android-emulator-build/protobuf" revision="8e2a5472dd374e6c971d30eb3d00898a8c1a25c8"/> + <project groups="gfxstream" name="platform/prebuilts/clang/host/linux-x86" path="prebuilts/clang/host/linux-x86" revision="8c62cb647097f74de4fef942e39d845ecb476c10"/> + <project groups="gfxstream" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8" revision="70a8d2affe5a31cbb6ae03469a83981b3331c9a4"/> + <project groups="gfxstream" name="platform/prebuilts/android-emulator-build/common" path="prebuilts/android-emulator-build/common" revision="46f6c3d021ff6ec4a4d1464fe921d2eb1608c5c9"/> + <project groups="gfxstream" name="platform/prebuilts/android-emulator-build/mesa" path="prebuilts/android-emulator-build/mesa" revision="be7c00f399b415511d73308f0af0c0310512aced"/> + <project groups="gfxstream" name="platform/external/google-breakpad" path="external/google-breakpad" revision="a1414818b9f9810a3b45f1f55d9c00f5116ec7d9"/> + <project groups="gfxstream" name="platform/external/deqp" path="external/deqp" revision="7949c69a10e39ce76e2af700a1c3ee29756ad51e"/> + <project groups="gfxstream" name="platform/prebuilts/android-emulator-build/curl" path="prebuilts/android-emulator-build/curl" revision="06f0905068b9ebfdd2d11b4d310c36b68c2fbe2f"/> + <project groups="gfxstream" name="platform/external/zlib" path="external/zlib" revision="7656f9eff09cc38244978773777ee64b7b31155d"/> + <project groups="gfxstream" name="platform/prebuilts/android-emulator-build/mesa-deps" path="prebuilts/android-emulator-build/mesa-deps" revision="17837fdb1889014fa01cbbbda56afc9b6034815f"/> + <project groups="gfxstream" name="platform/external/libvpx" path="external/libvpx" revision="62332cf39b0302e240acb10ed78d61d5ea282a39"/> + <project groups="gfxstream" name="platform/external/c-ares" path="external/cares" revision="b88261c9132d21c234dfbf36db3c6c3f5780051a"/> + <project groups="gfxstream" name="platform/external/qemu" path="external/qemu" revision="1ff47c5b95b509f124a653e5b50568f63204cda4"/> + <project groups="gfxstream" name="platform/external/astc-codec" path="external/astc-codec" revision="17ae36822a8084f45ae51f9031e81f8318254f33"/> + <project groups="gfxstream" name="platform/prebuilts/android-emulator-build/qemu-android-deps" path="prebuilts/android-emulator-build/qemu-android-deps" revision="715d3bed0a3dc4f9980528c9bfb81469f2d3cbab"/> + <project groups="gfxstream" name="platform/external/google-benchmark" path="external/google-benchmark" revision="db1632fadc79df388a2a7248157c965ee40248a1"/> + <project groups="gfxstream" name="platform/prebuilts/cmake/linux-x86" path="prebuilts/cmake/linux-x86" revision="40dcb6f55bd2e8731e3e4f1a1721f7ff0fb83cb1"/> +</manifest> diff --git a/rebuild-docker.sh b/rebuild-docker.sh new file mode 100755 index 0000000..1a5a477 --- /dev/null +++ b/rebuild-docker.sh @@ -0,0 +1,149 @@ +#!/bin/bash -r + +function container_exists() { + [[ $(docker ps -a --filter "name=^/$1$" --format '{{.Names}}') == $1 ]] && echo $1; +} + +declare -A map_uname_to_docker_builder_arch=( [aarch64]=linux/arm64 [x86_64]=linux/amd64 ) + +# inputs +# $1 = image name +# $2 = container name +# $3 = architecture (x86_64 or aarch64) +# $4 = user name +# $5 = user ID +# $6 = persistent? +# $7 = path to sources dir +# $8 = path to working dir +# $9 = path to output dir +# $10 = reuse image/container? (0: no reuse; 1: reuse image; 2: reuse container) +# $11 = build image (when reuse = 0) +# $12 = path to Dockerfile +# $13 = path to docker context dir +# $14 = docker_flags_len +# $15 = (docker_flags) +# $16 = _prepare_source_len +# $17 = (_prepare_source) +function build_with_docker() { + set -o errexit + set -x + + local -a _docker_target=( ${1} ) + local _container_name=${2} + local _arch=${3} + local _docker_image=${1}_${_arch} + local _user=${4} + local _uid=${5} + local _persistent=${6} + + if [[ ${_persistent} -eq 1 ]]; then + _docker_image=${1}_${_arch}_persistent + fi + local _docker_source= + if [ "${7}" != 'x' ]; then + _docker_source="-v ${7#x}:/source:rw" + fi + local _docker_working= + if [ "${8}" != 'x' ]; then + _docker_working="-v ${8#x}:/working:rw" + fi + local _docker_output= + if [ "${9}" != 'x' ]; then + _docker_output="-v ${9#x}:/output:rw" + fi + local _reuse=${10} + local _build_image=${11} + local _dockerfile=${12} + local _docker_context=${13} + shift 13 + local -a _args=("$@") + local -i _docker_flags_len=${_args[0]} + local -a _docker_flags=("${_args[@]:1:$_docker_flags_len}") + local -i _prepare_source_len=${_args[(_docker_flags_len+1)]} + local -a _prepare_source=("${_args[@]:(_docker_flags_len+2):_prepare_source_len}") + + local _build_or_retry=${_arch}_retry + + if [[ ${_reuse} -ne 1 ]]; then + _build_or_retry=${_arch}_build + if [[ ${_persistent} -eq 1 ]]; then + _docker_target+=("${_docker_target[0]}_persistent") + fi + if [[ ${_build_image} -eq 1 ]]; then + if [[ ${_arch} != $(uname -m) ]]; then + export DOCKER_CLI_EXPERIMENTAL=enabled + # from + # https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/getting-started-with-docker-for-arm-on-linux + docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3 + docker buildx create \ + --name docker_vmm_${_arch}_builder \ + --platform ${map_uname_to_docker_builder_arch[${_arch}]} \ + --use + docker buildx inspect --bootstrap + for _target in ${_docker_target[@]}; do + docker buildx build \ + --platform ${map_uname_to_docker_builder_arch[${_arch}]} \ + --target ${_target} \ + -f ${_dockerfile} \ + -t ${_docker_image}:latest \ + ${_docker_context} \ + --build-arg USER=${_user} \ + --build-arg UID=${_uid} --load + done + docker buildx rm docker_vmm_${_arch}_builder + unset DOCKER_CLI_EXPERIMENTAL + else + for _target in ${_docker_target[@]}; do + docker build \ + -f ${_dockerfile} \ + --target ${_target} \ + -t ${_docker_image}:latest \ + ${_docker_context} \ + --build-arg USER=${_user} \ + --build-arg UID=${_uid} + done + fi + fi + if [[ ${_persistent} -eq 1 ]]; then + if [[ -n "$(container_exists ${_container_name})" ]]; then + docker rm -f ${_container_name} + fi + docker run -d \ + --privileged \ + --name ${_container_name} \ + -h ${_container_name} \ + ${_docker_source} \ + ${_docker_working} \ + ${_docker_output} \ + -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ + ${_docker_image}:latest + fi +# else +# # If we are reusing the docker image, then we cannot change the target +# # architecture (though we can change the persistence) of the container. +# echo TODO + fi + + if [[ ${_persistent} -eq 1 ]]; then + if [[ "$(docker inspect --format='{{.State.Status}}' ${_container_name})" == "paused" ]]; then + docker unpause ${_container_name} + fi + docker exec -it \ + --user ${_user} \ + ${_docker_flags[@]} \ + ${_container_name} \ + /static/rebuild-internal.sh ${_prepare_source[@]} ${_build_or_retry} + docker pause ${_container_name} + else + docker run -it --rm \ + --user ${_user} \ + ${_docker_flags[@]} \ + ${_docker_source} \ + ${_docker_working} \ + ${_docker_output} \ + ${_docker_image}:latest \ + /static/rebuild-internal.sh ${_prepare_source[@]} ${_build_or_retry} + fi +} + +build_with_docker $@ diff --git a/rebuild-internal.sh b/rebuild-internal.sh new file mode 100755 index 0000000..5839af5 --- /dev/null +++ b/rebuild-internal.sh @@ -0,0 +1,399 @@ +#!/bin/bash + +# Note: not intended to be invoked directly, see rebuild.sh. +# +# Rebuilds Crosvm and its dependencies from a clean state. + +: ${TOOLS_DIR:="$(pwd)/tools"} + +setup_env() { + : ${SOURCE_DIR:="$(pwd)/source"} + : ${WORKING_DIR:="$(pwd)/working"} + : ${CUSTOM_MANIFEST:=""} + + ARCH="$(uname -m)" + : ${OUTPUT_DIR:="$(pwd)/${ARCH}-linux-gnu"} + OUTPUT_BIN_DIR="${OUTPUT_DIR}/bin" + OUTPUT_ETC_DIR="${OUTPUT_DIR}/etc" + OUTPUT_LIB_DIR="${OUTPUT_DIR}/bin" + + export PATH="${PATH}:${TOOLS_DIR}:${HOME}/.local/bin" + export PKG_CONFIG_PATH="${WORKING_DIR}/usr/lib/pkgconfig" +} + +set -o errexit +set -x + +fatal_echo() { + echo "$@" + exit 1 +} + +prepare_cargo() { + echo Setting up cargo... + cd + rm -rf .cargo + # Sometimes curl hangs. When it does, retry + retry curl -LO \ + "https://static.rust-lang.org/rustup/archive/1.14.0/$(uname -m)-unknown-linux-gnu/rustup-init" + # echo "0077ff9c19f722e2be202698c037413099e1188c0c233c12a2297bf18e9ff6e7 *rustup-init" | sha256sum -c - + chmod +x rustup-init + ./rustup-init -y --no-modify-path + source $HOME/.cargo/env + if [[ -n "$1" ]]; then + rustup target add "$1" + fi + rustup component add rustfmt-preview + rm rustup-init + + if [[ -n "$1" ]]; then + cat >>~/.cargo/config <<EOF +[target.$1] +linker = "${1/-unknown-/-}" +EOF + fi +} + +install_packages() { + echo Installing packages... + sudo dpkg --add-architecture arm64 + sudo apt-get update + sudo apt-get install -y \ + autoconf \ + automake \ + build-essential \ + "$@" \ + cmake \ + curl \ + gcc \ + g++ \ + git \ + libcap-dev \ + libfdt-dev \ + libegl1-mesa-dev \ + libgl1-mesa-dev \ + libgles2-mesa-dev \ + libpciaccess-dev \ + libssl-dev \ + libtool \ + libusb-1.0-0-dev \ + libwayland-dev \ + make \ + nasm \ + ninja-build \ + pkg-config \ + protobuf-compiler \ + python \ + python3 \ + python3-pip \ + xutils-dev # Needed to pacify autogen.sh for libepoxy + mkdir -p "${TOOLS_DIR}" + curl https://storage.googleapis.com/git-repo-downloads/repo > "${TOOLS_DIR}/repo" + chmod a+x "${TOOLS_DIR}/repo" + + # Meson getting started guide mentions that the distro version is frequently + # outdated and recommends installing via pip. + pip3 install meson + + # Tools for building gfxstream + pip3 install absl-py + pip3 install urlfetch + + case "$(uname -m)" in + aarch64) + prepare_cargo + ;; + x86_64) + # Cross-compilation is x86_64 specific + sudo apt install -y crossbuild-essential-arm64 + prepare_cargo aarch64-unknown-linux-gnu + ;; + esac +} + +retry() { + for i in $(seq 5); do + "$@" && return 0 + sleep 1 + done + return 1 +} + +fetch_source() { + echo "Fetching source..." + + mkdir -p "${SOURCE_DIR}" + cd "${SOURCE_DIR}" + + if ! git config user.name; then + git config --global user.name "AOSP Crosvm Builder" + git config --global user.email "nobody@android.com" + git config --global color.ui false + fi + + if [[ -z "${CUSTOM_MANIFEST}" ]]; then + # Building Crosvm currently depends using Chromium's directory scheme for subproject + # directories ('third_party' vs 'external'). + fatal_echo "CUSTOM_MANIFEST must be provided. You most likely want to provide a full path to" \ + "a copy of device/google/cuttlefish_vmm/manifest.xml." + fi + + cp ${CUSTOM_MANIFEST} manifest.xml + repo init --depth=1 -q -u https://android.googlesource.com/platform/manifest -m ../../manifest.xml + repo sync +} + +prepare_source() { + if [ "$(ls -A $SOURCE_DIR)" ]; then + echo "${SOURCE_DIR} is non empty. Run this from an empty directory if you wish to fetch the source." 1>&2 + exit 2 + fi + fetch_source +} + +resync_source() { + echo "Deleting source directory..." + rm -rf "${SOURCE_DIR}/.*" + rm -rf "${SOURCE_DIR}/*" + fetch_source +} + +compile_libdrm() { + cd "${SOURCE_DIR}/external/libdrm" + + meson build \ + --libdir="${WORKING_DIR}/usr/lib" \ + --prefix="${WORKING_DIR}/usr" \ + -Damdgpu=false \ + -Dfreedreno=false \ + -Dintel=false \ + -Dlibkms=false \ + -Dnouveau=false \ + -Dradeon=false \ + -Dvc4=false \ + -Dvmwgfx=false + + cd build + + ninja install + + cp "${WORKING_DIR}"/usr/lib/libdrm.so.2 "${OUTPUT_LIB_DIR}" +} + +compile_minijail() { + echo "Compiling Minijail..." + + cd "${SOURCE_DIR}/platform/minijail" + + make -j OUT="${WORKING_DIR}" + + cp "${WORKING_DIR}/libminijail.so" "${OUTPUT_LIB_DIR}" +} + +compile_minigbm() { + echo "Compiling Minigbm..." + + cd "${SOURCE_DIR}/third_party/minigbm" + + # Minigbm's package config file has a default hard-coded path. Update here so + # that dependent packages can find the files. + sed -i "s|prefix=/usr\$|prefix=${WORKING_DIR}/usr|" gbm.pc + + # The gbm used by upstream linux distros is not compatible with crosvm, which must use Chrome OS's + # minigbm. + local cpp_flags=() + local make_flags=() + local minigbm_drv=(${MINIGBM_DRV}) + for drv in "${minigbm_drv[@]}"; do + cpp_flags+=(-D"DRV_${drv}") + make_flags+=("DRV_${drv}"=1) + done + + make -j install \ + "${make_flags[@]}" \ + CPPFLAGS="${cpp_flags[*]}" \ + DESTDIR="${WORKING_DIR}" \ + OUT="${WORKING_DIR}" + + cp ${WORKING_DIR}/usr/lib/libgbm.so.1 "${OUTPUT_LIB_DIR}" +} + +compile_epoxy() { + cd "${SOURCE_DIR}/third_party/libepoxy" + + meson build \ + --libdir="${WORKING_DIR}/usr/lib" \ + --prefix="${WORKING_DIR}/usr" \ + -Dglx=no \ + -Dx11=false \ + -Degl=yes + + cd build + + ninja install + + cp "${WORKING_DIR}"/usr/lib/libepoxy.so.0 "${OUTPUT_LIB_DIR}" +} + +compile_virglrenderer() { + echo "Compiling VirglRenderer..." + + # Note: depends on libepoxy + cd "${SOURCE_DIR}/third_party/virglrenderer" + + # Meson doesn't like gbm's version code. + sed -i "s|_gbm_ver = '0.0.0'|_gbm_ver = '0'|" meson.build + + # Meson needs to have dependency information for header lookup. + sed -i "s|cc.has_header('epoxy/egl.h')|cc.has_header('epoxy/egl.h', dependencies: epoxy_dep)|" meson.build + + # Need to figure out the right way to pass this down... + grep "install_rpath" src/meson.build || \ + sed -i "s|install : true|install : true, install_rpath : '\$ORIGIN',|" src/meson.build + + meson build \ + --libdir="${WORKING_DIR}/usr/lib" \ + --prefix="${WORKING_DIR}/usr" \ + -Dplatforms=egl \ + -Dminigbm_allocation=false \ + -Dunstable_apis=true + + cd build + + ninja install + + cp "${WORKING_DIR}/usr/lib/libvirglrenderer.so.1" "${OUTPUT_LIB_DIR}" + + cd "${OUTPUT_LIB_DIR}" + ln -s -f "libvirglrenderer.so.1" "libvirglrenderer.so" +} + +compile_gfxstream() { + echo "Compiling gfxstream..." + + # Note: depends on libepoxy + cd "${SOURCE_DIR}/external/qemu" + + # TODO: Fix or remove network unit tests that are failing in docker, + # so we can take out "notests" + python3 android/build/python/cmake.py --gfxstream_only --no-tests + local dist_dir="${SOURCE_DIR}/external/qemu/objs/distribution/emulator/lib64" + + chmod +x "${dist_dir}/libc++.so.1" + chmod +x "${dist_dir}/libandroid-emu-shared.so" + chmod +x "${dist_dir}/libemugl_common.so" + chmod +x "${dist_dir}/libOpenglRender.so" + chmod +x "${dist_dir}/libgfxstream_backend.so" + + cp "${dist_dir}/libc++.so.1" "${OUTPUT_LIB_DIR}" + cp "${dist_dir}/libandroid-emu-shared.so" "${OUTPUT_LIB_DIR}" + cp "${dist_dir}/libemugl_common.so" "${OUTPUT_LIB_DIR}" + cp "${dist_dir}/libOpenglRender.so" "${OUTPUT_LIB_DIR}" + cp "${dist_dir}/libgfxstream_backend.so" "${OUTPUT_LIB_DIR}" +} + +compile_crosvm() { + echo "Compiling Crosvm..." + + source "${HOME}/.cargo/env" + cd "${SOURCE_DIR}/platform/crosvm" + + # Workaround for aosp/1412815 + cargo install protobuf-codegen + cd "${SOURCE_DIR}/platform/crosvm/protos/src" + sed -i "s/pub use cdisk_spec_proto::cdisk_spec/pub mod cdisk_spec/" lib.rs + PATH="$HOME/.cargo/bin:$PATH" protoc --rust_out . cdisk_spec.proto + cd "${SOURCE_DIR}/platform/crosvm" + + local crosvm_features=audio,gpu,composite-disk,virtio-gpu-next + + if [[ $BUILD_GFXSTREAM -eq 1 ]]; then + crosvm_features+=,gfxstream + fi + + RUSTFLAGS="-C link-arg=-Wl,-rpath,\$ORIGIN -C link-arg=-L${OUTPUT_LIB_DIR}" \ + cargo build --features ${crosvm_features} + + # Save the outputs + cp Cargo.lock "${OUTPUT_DIR}" + cp target/debug/crosvm "${OUTPUT_BIN_DIR}" + + cargo --version --verbose > "${OUTPUT_DIR}/cargo_version.txt" + rustup show > "${OUTPUT_DIR}/rustup_show.txt" +} + +compile() { + echo "Compiling..." + mkdir -p \ + "${WORKING_DIR}" \ + "${OUTPUT_DIR}" \ + "${OUTPUT_BIN_DIR}" \ + "${OUTPUT_ETC_DIR}" \ + "${OUTPUT_LIB_DIR}" + + if [[ $BUILD_CROSVM -eq 1 ]]; then + compile_libdrm + compile_minijail + compile_minigbm + compile_epoxy + compile_virglrenderer + fi + + # TODO: Finish the aarch64 cross/native gfxstream build + if [[ $BUILD_GFXSTREAM -eq 1 ]]; then + compile_gfxstream + fi + + if [[ $BUILD_CROSVM -eq 1 ]]; then + compile_crosvm + fi + + dpkg-query -W > "${OUTPUT_DIR}/builder-packages.txt" + echo "Results in ${OUTPUT_DIR}" +} + +aarch64_retry() { + MINIGBM_DRV="RADEON VC4" BUILD_CROSVM=1 compile +} + +aarch64_build() { + rm -rf "${WORKING_DIR}/*" + aarch64_retry +} + +x86_64_retry() { + MINIGBM_DRV="I915 RADEON VC4" BUILD_GFXSTREAM=1 compile +} + +x86_64_build() { + rm -rf "${WORKING_DIR}/*" + x86_64_retry +} + +if [[ $# -lt 1 ]]; then + echo Choosing default config + set setup_env prepare_source x86_64_build +fi + +echo Steps: "$@" + +for i in "$@"; do + echo $i + case "$i" in + ARCH=*) ARCH="${i/ARCH=/}" ;; + CUSTOM_MANIFEST=*) CUSTOM_MANIFEST="${i/CUSTOM_MANIFEST=/}" ;; + aarch64_build) $i ;; + aarch64_retry) $i ;; + setup_env) $i ;; + install_packages) $i ;; + fetch_source) $i ;; + resync_source) $i ;; + prepare_source) $i ;; + x86_64_build) $i ;; + x86_64_retry) $i ;; + *) echo $i unknown 1>&2 + echo usage: $0 'install_packages|prepare_source|resync_source|fetch_source|$(uname -m)_build|$(uname -m)_retry' 1>&2 + exit 2 + ;; + esac +done diff --git a/rebuild.sh b/rebuild.sh new file mode 100755 index 0000000..32fc36c --- /dev/null +++ b/rebuild.sh @@ -0,0 +1,423 @@ +#!/bin/bash + +set -e + +# Common code to build a host image on GCE + +# INTERNAL_extra_source may be set to a directory containing the source for +# extra package to build. + +# INTERNAL_IP can be set to --internal-ip run on a GCE instance +# The instance will need --scope compute-rw + +source "${ANDROID_BUILD_TOP}/external/shflags/shflags" +DIR="${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm" + +# ARM-board options + +DEFINE_boolean arm false "Build on an ARM board" +DEFINE_string arm_instance "" "IP address or DNS name of an ARM system to do the secondary build" +DEFINE_string arm_user "vsoc-01" "User to invoke on the ARM system" + +# Docker options + +DEFINE_boolean docker false "Build inside docker" +DEFINE_boolean docker_persistent true "Build inside a privileged, persistent container (faster for iterative development)" +DEFINE_string docker_arch "$(uname -m)" "Target architectre" +DEFINE_boolean docker_build_image true "When --noreuse is specified, this flag controls building the docker image (else we assume it was built and reuse it)" +DEFINE_string docker_image "docker_vmm" "Name of docker image to build" +DEFINE_string docker_container "docker_vmm" "Name of docker container to create" +DEFINE_string docker_source "" "Path to sources checked out using manifest" +DEFINE_string docker_working "" "Path to working directory" +DEFINE_string docker_output "" "Output directory (when --docker is specified)" +DEFINE_string docker_user "${USER}" "Docker-container user" +DEFINE_string docker_uid "${UID}" "Docker-container user ID" + +# GCE options + +DEFINE_boolean gce false "Build on a GCE instance" +DEFINE_string gce_project "$(gcloud config get-value project)" "Project to use" "p" +DEFINE_string gce_source_image_family debian-10 "Image familty to use as the base" "s" +DEFINE_string gce_source_image_project debian-cloud "Project holding the base image" "m" +DEFINE_string gce_instance "${USER}-build" "Instance name to create for the build" "i" +DEFINE_string gce_user cuttlefish_crosvm_builder "User name to use on GCE when doing the build" +DEFINE_string gce_zone "$(gcloud config get-value compute/zone)" "Zone to use" "z" + +# Common options + +DEFINE_string manifest "" "Path to custom manifest to use for the build" +DEFINE_boolean reuse false "Set to true to reuse a previously-set-up instance." +DEFINE_boolean reuse_resync false "Reuse a previously-set-up instance, but clean and re-sync the sources. Overrides --reuse if both are specified." + +SSH_FLAGS=(${INTERNAL_IP}) + +wait_for_instance() { + alive="" + while [[ -z "${alive}" ]]; do + sleep 5 + alive="$(gcloud compute ssh "${SSH_FLAGS[@]}" "$@" -- uptime || true)" + done +} + +check_common_docker_options() { + if [[ -z "${FLAGS_docker_image}" ]]; then + echo Option --docker_image must not be empty 1>&1 + fail=1 + fi + if [[ -z "${FLAGS_docker_container}" ]]; then + echo Options --docker_container must not be empty 1>&2 + fail=1 + fi + if [[ -z "${FLAGS_docker_user}" ]]; then + echo Options --docker_user must not be empty 1>&2 + fail=1 + fi + if [[ -z "${FLAGS_docker_uid}" ]]; then + echo Options --docker_uid must not be empty 1>&2 + fail=1 + fi + # Volume mapping are specified only when a container is created. With + # --reuse, an already-created persistent container is reused, which implies + # that we cannot change the volume maps. For non-persistent containers, we + # use docker run, which creates and runs the continer in one step; in that + # case, we must pass the same values for --docker_source and --docker_output + # that we passed when we ran the non-persistent continer the first time. + if [[ ${_reuse} -eq 1 && ${FLAGS_docker_persistent} -eq ${FLAGS_TRUE} ]]; then + if [ -n "${FLAGS_docker_source}" ]; then + echo Option --docker_source may not be specified with --reuse and --docker_persistent 1>&2 + fail=1 + fi + if [ -n "${FLAGS_docker_working}" ]; then + echo Option --docker_working may not be specified with --reuse and --docker_persistent 1>&2 + fail=1 + fi + if [ -n "${FLAGS_docker_output}" ]; then + echo Option --docker_output may not be specified with --reuse and --docker_persistent 1>&2 + fail=1 + fi + fi + if [[ "${fail}" -ne 0 ]]; then + exit "${fail}" + fi +} + +build_locally_using_docker() { + check_common_docker_options + case "${FLAGS_docker_arch}" in + aarch64) ;; + x86_64) ;; + *) echo Invalid value ${FLAGS_docker_arch} for --docker_arch 1>&2 + fail=1 + ;; + esac + if [[ "${fail}" -ne 0 ]]; then + exit "${fail}" + fi + local -i _persistent=0 + if [[ ${FLAGS_docker_persistent} -eq ${FLAGS_TRUE} ]]; then + _persistent=1 + fi + + local -i _build_image=0 + if [[ ${FLAGS_docker_build_image} -eq ${FLAGS_TRUE} ]]; then + _build_image=1 + fi + + local _docker_output="" + if [ -z "${FLAGS_docker_output}" ]; then + _docker_output="${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm/${FLAGS_docker_arch}-linux-gnu" + else + _docker_output="${FLAGS_docker_output}" + fi + + local _temp="$(mktemp -d)" + rsync -avR "${relative_source_files[@]/#/${DIR}/./}" "${_temp}" + if [ -n "${custom_manifest}" ]; then + cp "${custom_manifest}" "${_temp}"/custom.xml + else + touch "${_temp}"/custom.xml + fi + + ${DIR}/rebuild-docker.sh "${FLAGS_docker_image}" \ + "${FLAGS_docker_container}" \ + "${FLAGS_docker_arch}" \ + "${FLAGS_docker_user}" \ + "${FLAGS_docker_uid}" \ + "${_persistent}" \ + "x${FLAGS_docker_source}" \ + "x${FLAGS_docker_working}" \ + "x${_docker_output}" \ + "${_reuse}" \ + "${_build_image}" \ + "${_temp}/Dockerfile" \ + "${_temp}" \ + "${#docker_flags[@]}" "${docker_flags[@]}" \ + "${#_prepare_source[@]}" "${_prepare_source[@]}" + + rm -rf "${_temp}" +} + +function build_on_gce() { + check_common_docker_options + if [[ -z "${FLAGS_gce_instance}" ]]; then + echo Must specify instance 1>&2 + fail=1 + fi + if [[ -z "${FLAGS_gce_project}" ]]; then + echo Must specify project 1>&2 + fail=1 + fi + if [[ -z "${FLAGS_gce_zone}" ]]; then + echo Must specify zone 1>&2 + fail=1 + fi + if [[ "${fail}" -ne 0 ]]; then + exit "${fail}" + fi + project_zone_flags=(--project="${FLAGS_gce_project}" --zone="${FLAGS_gce_zone}") + if [ ${_reuse} -eq 0 ]; then + delete_instances=("${FLAGS_gce_instance}") + gcloud compute instances delete -q \ + "${delete_instances[@]}" \ + "${project_zone_flags[@]}" || \ + echo Instance does not exist + gcloud compute images delete -q \ + "${delete_instances[@]/%/-image}" \ + --project "${FLAGS_gce_project}" || \ + echo Image does not exist + gcloud compute disks delete -q \ + "${delete_instances[@]/%/-disk}" \ + "${project_zone_flags[@]}" || \ + echo Disk does not exist + + gcloud compute disks create \ + "${delete_instances[@]/%/-disk}" \ + "${project_zone_flags[@]}" \ + --image-project="${FLAGS_gce_source_image_project}" \ + --image-family="${FLAGS_gce_source_image_family}" + gcloud compute images create \ + "${delete_instances[@]/%/-image}" \ + --source-disk "${delete_instances[@]/%/-disk}" \ + --project "${FLAGS_gce_project}" --source-disk-zone "${FLAGS_gce_zone}" \ + --licenses "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx" + gcloud compute instances create \ + "${delete_instances[@]}" \ + "${project_zone_flags[@]}" \ + --image "${delete_instances[@]/%/-image}" \ + --boot-disk-size=200GB \ + --machine-type=n1-standard-8 \ + --min-cpu-platform "Intel Skylake" + + wait_for_instance "${FLAGS_gce_instance}" "${project_zone_flags[@]}" + + # install docker + gcloud beta compute ssh "${SSH_FLAGS[@]}" \ + "${project_zone_flags[@]}" \ + "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \ + 'curl -fsSL https://get.docker.com | /bin/bash' + gcloud beta compute ssh "${SSH_FLAGS[@]}" \ + "${project_zone_flags[@]}" \ + "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \ + sudo usermod -aG docker "${FLAGS_gce_user}" + + # beta for the --internal-ip flag that may be passed via SSH_FLAGS + + gcloud beta compute ssh "${SSH_FLAGS[@]}" \ + "${project_zone_flags[@]}" \ + "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \ + mkdir -p '$PWD/docker $PWD/docker/source $PWD/docker/working $PWD/docker/output' + + tar czv -C "${DIR}" -f - "${relative_source_files[@]}" | \ + gcloud beta compute ssh "${SSH_FLAGS[@]}" \ + "${project_zone_flags[@]}" \ + "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \ + 'tar xzv -C ~/docker -f -' + if [ -n "${custom_manifest}" ]; then + gcloud beta compute scp "${SSH_FLAGS[@]}" \ + "${project_zone_flags[@]}" \ + "${custom_manifest}" \ + "${FLAGS_gce_user}@${FLAGS_gce_instance}:~/docker/custom.xml" + else + gcloud beta compute ssh "${SSH_FLAGS[@]}" \ + "${project_zone_flags[@]}" \ + "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \ + "touch ~/docker/custom.xml" + fi + fi + + local _status=$(gcloud compute instances list \ + --project="${FLAGS_gce_project}" \ + --zones="${FLAGS_gce_zone}" \ + --filter="name=('${FLAGS_gce_instance}')" \ + --format=flattened | awk '/status:/ {print $2}') + if [ "${_status}" != "RUNNING" ] ; then + echo "Instance ${FLAGS_gce_instance} is not running." + exit 1; + fi + + local -i _persistent=0 + if [[ ${FLAGS_docker_persistent} -eq ${FLAGS_TRUE} ]]; then + _persistent=1 + fi + local -i _build_image=0 + if [[ ${FLAGS_docker_build_image} -eq ${FLAGS_TRUE} ]]; then + _build_image=1 + fi + gcloud beta compute ssh "${SSH_FLAGS[@]}" \ + "${project_zone_flags[@]}" \ + "${FLAGS_gce_user}@${FLAGS_gce_instance}" -- \ + ./docker/rebuild-docker.sh "${FLAGS_docker_image}" \ + "${FLAGS_docker_container}" \ + "${FLAGS_docker_arch}" \ + '${USER}' \ + '${UID}' \ + "${_persistent}" \ + 'x$PWD/docker/source' \ + 'x$PWD/docker/working' \ + 'x$PWD/docker/output' \ + "${_reuse}" \ + "${_build_image}" \ + '~/docker/Dockerfile' \ + '~/docker/' \ + "${#docker_flags[@]}" "${docker_flags[@]}" \ + "${#_prepare_source[@]}" "${_prepare_source[@]}" + + gcloud beta compute ssh "${SSH_FLAGS[@]}" \ + "${project_zone_flags[@]}" \ + "${FLAGS_gce_user}@${FLAGS_gce_instance}" --command \ + 'tar czv -C $PWD/docker/output -f - $(find $PWD/docker/output -printf "%P\n")' | \ + tar xzv -C ${DIR}/${FLAGS_docker_arch}-linux-gnu -f - + + gcloud compute disks describe \ + "${project_zone_flags[@]}" "${FLAGS_gce_instance}" | \ + grep ^sourceImage: > "${DIR}"/x86_64-linux-gnu/builder_image.txt +} + +function build_on_arm_board() { + check_common_docker_options + if [[ "${FLAGS_docker_arch}" != "aarch64" ]]; then + echo ARM board supports building only aarch64 1>&2 + fail=1 + fi + if [[ -z "${FLAGS_arm_instance}" ]]; then + echo Must specify IP address of ARM board 1>&2 + fail=1 + fi + if [[ -z "${FLAGS_arm_user}" ]]; then + echo Must specify a user account on ARM board 1>&2 + fail=1 + fi + if [[ "${fail}" -ne 0 ]]; then + exit "${fail}" + fi + if [[ "${_reuse}" -eq 0 ]]; then + ssh -t "${FLAGS_arm_user}@${FLAGS_arm_instance}" -- \ + rm -rf '$PWD/docker' + fi + rsync -avR -e ssh \ + "${relative_source_files[@]/#/${DIR}/./}" \ + "${FLAGS_arm_user}@${FLAGS_arm_instance}:~/docker/" + + if [ -n "${custom_manifest}" ]; then + scp "${custom_manifest}" "${FLAGS_arm_user}@${FLAGS_arm_instance}":~/docker/custom.xml + else + ssh -t "${FLAGS_arm_user}@${FLAGS_arm_instance}" -- \ + "touch ~/docker/custom.xml" + fi + + local -i _persistent=0 + if [[ ${FLAGS_docker_persistent} -eq ${FLAGS_TRUE} ]]; then + _persistent=1 + fi + local -i _build_image=0 + if [[ ${FLAGS_docker_build_image} -eq ${FLAGS_TRUE} ]]; then + _build_image=1 + fi + ssh -t "${FLAGS_arm_user}@${FLAGS_arm_instance}" -- \ + mkdir -p '$PWD/docker/source' '$PWD/docker/working' '$PWD/docker/output' + ssh -t "${FLAGS_arm_user}@${FLAGS_arm_instance}" -- \ + ./docker/rebuild-docker.sh "${FLAGS_docker_image}" \ + "${FLAGS_docker_container}" \ + "${FLAGS_docker_arch}" \ + '${USER}' \ + '${UID}' \ + "${_persistent}" \ + 'x$PWD/docker/source' \ + 'x$PWD/docker/working' \ + 'x$PWD/docker/output' \ + "${_reuse}" \ + "${_build_image}" \ + '~/docker/Dockerfile' \ + '~/docker/' \ + "${#docker_flags[@]}" "${docker_flags[@]}" \ + "${#_prepare_source[@]}" "${_prepare_source[@]}" + + rsync -avR -e ssh "${FLAGS_arm_user}@${FLAGS_arm_instance}":docker/output/./ \ + "${ANDROID_BUILD_TOP}/device/google/cuttlefish_vmm/${FLAGS_docker_arch}-linux-gnu" +} + +main() { + set -o errexit + set -x + fail=0 + relative_source_files=("rebuild-docker.sh" + "rebuild-internal.sh" + "Dockerfile" + "manifest.xml" + ".dockerignore") + # These must match the definitions in the Dockerfile + docker_flags=("-eSOURCE_DIR=/source" "-eWORKING_DIR=/working" "-eOUTPUT_DIR=/output" "-eTOOLS_DIR=/static/tools") + + if [[ $(( $((${FLAGS_gce}==${FLAGS_TRUE})) + $((${FLAGS_arm}==${FLAGS_TRUE})) + $((${FLAGS_docker}==${FLAGS_TRUE})) )) > 1 ]]; then + echo You may specify only one of --gce, --docker, or --arm 1>&2 + exit 2 + fi + + if [[ -n "${FLAGS_manifest}" ]]; then + if [[ ! -f "${FLAGS_manifest}" ]]; then + echo custom manifest not found: ${FLAGS_manifest} 1>&1 + exit 2 + fi + custom_manifest="${FLAGS_manifest}" + docker_flags+=("-eCUSTOM_MANIFEST=/static/custom.xml") + else + custom_manifest="${DIR}/manifest.xml" + docker_flags+=("-eCUSTOM_MANIFEST=/static/manifest.xml") + fi + local -a _prepare_source=(setup_env fetch_source); + local -i _reuse=0 + if [[ ${FLAGS_reuse} -eq ${FLAGS_TRUE} ]]; then + # neither install packages, nor sync sources; skip to building them + _prepare_source=(setup_env) + # unless you're setting up a non-persistent container and --docker_source is + # the empty string; in this case, --reuse implies --reuse_resync + if [[ "${FLAGS_docker_persistent}" -eq ${FLAGS_FALSE} && \ + -z "${FLAGS_docker_source}" ]]; then + _prepare_source+=(resync_source) + fi + _reuse=1 + fi + if [[ ${FLAGS_reuse_resync} -eq ${FLAGS_TRUE} ]]; then + # do not install packages but clean and sync sources afresh + _prepare_source=(setup_env resync_source); + _reuse=1 + fi + if [[ ${FLAGS_gce} -eq ${FLAGS_TRUE} ]]; then + build_on_gce + exit 0 + gcloud compute instances delete -q \ + "${project_zone_flags[@]}" \ + "${FLAGS_gce_instance}" + fi + if [[ ${FLAGS_arm} -eq ${FLAGS_TRUE} ]]; then + build_on_arm_board + exit 0 + fi + if [[ ${FLAGS_docker} -eq ${FLAGS_TRUE} ]]; then + build_locally_using_docker + exit 0 + fi +} + +FLAGS "$@" || exit 1 +main "${FLAGS_ARGV[@]}" diff --git a/update-manifest-gfxstream.py b/update-manifest-gfxstream.py new file mode 100755 index 0000000..6d60064 --- /dev/null +++ b/update-manifest-gfxstream.py @@ -0,0 +1,122 @@ +#!/usr/bin/python3 +# Copyright 2020 - The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the', help='License'); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an', help='AS IS' BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Script that makes it easy to have the docker build correspond to a particular +# gfxstream Android build id + +import os +import subprocess +import sys +import lxml.etree as etree + +gfxstream_manifest_filename = sys.argv[1] +target_manifest_filename = sys.argv[2] + +# Don't need to check out the entire emulator repo to build gfxstream +gfxstream_projects = set([ + "device/generic/goldfish-opengl", + "device/generic/vulkan-cereal", + "platform/external/angle", + "platform/external/astc-codec", + "platform/external/boringssl", + "platform/external/c-ares", + "platform/external/curl", + "platform/external/deqp", + "platform/external/ffmpeg", + "platform/external/googletest", + "platform/external/google-benchmark", + "platform/external/google-breakpad", + "platform/external/grpc-grpc", + "platform/external/libffi", + "platform/external/libvpx", + "platform/external/libyuv", + "platform/external/libpng", + "platform/external/libusb", + "platform/external/lz4", + "platform/external/protobuf", + "platform/external/qemu", + "platform/external/tinyobjloader", + "platform/external/nasm", + "platform/external/zlib", + "platform/prebuilts/android-emulator-build/common", + "platform/prebuilts/android-emulator-build/curl", + "platform/prebuilts/android-emulator-build/mesa", + "platform/prebuilts/android-emulator-build/mesa-deps", + "platform/prebuilts/android-emulator-build/protobuf", + "platform/prebuilts/android-emulator-build/qemu-android-deps", + "platform/prebuilts/clang/host/linux-x86", + "platform/prebuilts/cmake/linux-x86", + "platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8", + "platform/prebuilts/ninja/linux-x86", +]) + +def generate_filtered_gfxstream_projects(filename): + outs = [] + + out = etree.Element("manifest") + + t = etree.parse(filename) + r = t.getroot() + + for e in r.findall("project"): + if e.attrib["name"] in gfxstream_projects: + outp = etree.SubElement(out, "project") + outs.append(outp) + outp.set("groups", "gfxstream") + outp.set("name", e.attrib["name"]) + outp.set("path", e.attrib["path"]) + outp.set("revision", e.attrib["revision"]) + + return dict(map(lambda e: (e.attrib["name"], e), outs)) + +def update_projects(current_gfxstream_projects, target_manifest_filename): + target_root = etree.parse( \ + target_manifest_filename, + etree.XMLParser(remove_blank_text=True)).getroot() + + found_projects = [] + + for e in target_root.findall("project"): + if e.attrib["name"] in gfxstream_projects: + e.set("revision", current_gfxstream_projects[e.attrib["name"]].attrib["revision"]) + found_projects.append(e.attrib["name"]) + + projects_to_add = gfxstream_projects - set(found_projects) + + for p in projects_to_add: + project_element = current_gfxstream_projects[p] + outp = etree.SubElement(target_root, "project") + outp.set("groups", project_element.attrib["groups"]) + outp.set("name", project_element.attrib["name"]) + outp.set("path", project_element.attrib["path"]) + outp.set("revision", project_element.attrib["revision"]) + + return target_root + +print("Generating...") +output_string = etree.tostring( \ + update_projects( + generate_filtered_gfxstream_projects(gfxstream_manifest_filename), + target_manifest_filename), + pretty_print=True, + xml_declaration=True,encoding="utf-8") + +print("Result: ") +print(output_string.decode()) +print("Writing result to %s" % target_manifest_filename) + +fh = open(target_manifest_filename, 'wb') +fh.write(output_string) +fh.close() diff --git a/x86_64-linux-gnu/Cargo.lock b/x86_64-linux-gnu/Cargo.lock new file mode 100644 index 0000000..fa6fb2f --- /dev/null +++ b/x86_64-linux-gnu/Cargo.lock @@ -0,0 +1,982 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "aarch64" +version = "0.1.0" +dependencies = [ + "arch", + "data_model", + "devices", + "io_jail", + "kernel_cmdline", + "kvm", + "kvm_sys", + "libc", + "remain", + "resources", + "sync", + "sys_util", + "vm_control", +] + +[[package]] +name = "acpi_tables" +version = "0.1.0" +dependencies = [ + "data_model", +] + +[[package]] +name = "arch" +version = "0.1.0" +dependencies = [ + "devices", + "io_jail", + "kernel_cmdline", + "kvm", + "libc", + "resources", + "sync", + "sys_util", + "vm_control", +] + +[[package]] +name = "assertions" +version = "0.1.0" + +[[package]] +name = "audio_streams" +version = "0.1.0" +dependencies = [ + "sync", + "sys_util", +] + +[[package]] +name = "bit_field" +version = "0.1.0" +dependencies = [ + "bit_field_derive", +] + +[[package]] +name = "bit_field_derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bitflags" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + +[[package]] +name = "cc" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cras-sys" +version = "0.1.0" +dependencies = [ + "audio_streams", + "data_model", +] + +[[package]] +name = "cros_async" +version = "0.1.0" +dependencies = [ + "futures", + "libc", + "paste", + "sys_util", + "syscall_defines", +] + +[[package]] +name = "crosvm" +version = "0.1.0" +dependencies = [ + "aarch64", + "acpi_tables", + "arch", + "assertions", + "audio_streams", + "bit_field", + "crosvm_plugin", + "data_model", + "devices", + "disk", + "enumn", + "gpu_buffer", + "gpu_renderer", + "io_jail", + "kernel_cmdline", + "kernel_loader", + "kvm", + "kvm_sys", + "libc", + "libcras", + "minijail-sys", + "msg_socket", + "net_util", + "p9", + "protobuf", + "protos", + "rand_ish", + "remain", + "resources", + "sync", + "sys_util", + "vhost", + "vm_control", + "x86_64", +] + +[[package]] +name = "crosvm_plugin" +version = "0.17.0" +dependencies = [ + "kvm", + "kvm_sys", + "libc", + "protobuf", + "protos", + "sys_util", +] + +[[package]] +name = "data_model" +version = "0.1.0" +dependencies = [ + "assertions", +] + +[[package]] +name = "devices" +version = "0.1.0" +dependencies = [ + "audio_streams", + "bit_field", + "bitflags", + "data_model", + "disk", + "enumn", + "gpu_buffer", + "gpu_display", + "gpu_renderer", + "io_jail", + "kvm", + "kvm_sys", + "libc", + "libcras", + "linux_input_sys", + "msg_on_socket_derive", + "msg_socket", + "net_sys", + "net_util", + "p9", + "protos", + "remain", + "resources", + "sync", + "sys_util", + "syscall_defines", + "tempfile 3.0.7", + "tpm2", + "usb_util", + "vfio_sys", + "vhost", + "virtio_sys", + "vm_control", +] + +[[package]] +name = "disk" +version = "0.1.0" +dependencies = [ + "data_model", + "libc", + "protobuf", + "protos", + "remain", + "sys_util", +] + +[[package]] +name = "enumn" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" + +[[package]] +name = "futures-executor" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" + +[[package]] +name = "futures-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" +dependencies = [ + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" + +[[package]] +name = "futures-task" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" +dependencies = [ + "once_cell", +] + +[[package]] +name = "futures-util" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project", + "pin-utils", + "proc-macro-hack", + "proc-macro-nested", + "slab", +] + +[[package]] +name = "getopts" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "getrandom" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gpu_buffer" +version = "0.1.0" +dependencies = [ + "data_model", + "sys_util", +] + +[[package]] +name = "gpu_display" +version = "0.1.0" +dependencies = [ + "cc", + "data_model", + "libc", + "linux_input_sys", + "sys_util", +] + +[[package]] +name = "gpu_renderer" +version = "0.1.0" +dependencies = [ + "data_model", + "libc", + "sys_util", +] + +[[package]] +name = "hermit-abi" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" +dependencies = [ + "libc", +] + +[[package]] +name = "io_jail" +version = "0.1.0" +dependencies = [ + "libc", + "minijail-sys", +] + +[[package]] +name = "kernel_cmdline" +version = "0.1.0" +dependencies = [ + "libc", +] + +[[package]] +name = "kernel_loader" +version = "0.1.0" +dependencies = [ + "libc", + "sys_util", +] + +[[package]] +name = "kvm" +version = "0.1.0" +dependencies = [ + "data_model", + "kvm_sys", + "libc", + "msg_socket", + "sys_util", +] + +[[package]] +name = "kvm_sys" +version = "0.1.0" +dependencies = [ + "libc", + "sys_util", +] + +[[package]] +name = "libc" +version = "0.2.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10" + +[[package]] +name = "libcras" +version = "0.1.0" +dependencies = [ + "audio_streams", + "cras-sys", + "data_model", + "libc", + "sys_util", +] + +[[package]] +name = "linux_input_sys" +version = "0.1.0" +dependencies = [ + "data_model", + "libc", + "sys_util", +] + +[[package]] +name = "log" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "memchr" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" + +[[package]] +name = "minijail-sys" +version = "0.0.11" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "msg_on_socket_derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "msg_socket" +version = "0.1.0" +dependencies = [ + "cros_async", + "data_model", + "futures", + "libc", + "msg_on_socket_derive", + "sys_util", +] + +[[package]] +name = "net_sys" +version = "0.1.0" +dependencies = [ + "sys_util", +] + +[[package]] +name = "net_util" +version = "0.1.0" +dependencies = [ + "data_model", + "libc", + "net_sys", + "sys_util", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" + +[[package]] +name = "p9" +version = "0.1.0" +dependencies = [ + "libc", + "wire_format_derive", +] + +[[package]] +name = "paste" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ddc8e145de01d9180ac7b78b9676f95a9c2447f6a88b2c2a04702211bc5d71" + +[[package]] +name = "pin-project" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" + +[[package]] +name = "poll_token_derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" + +[[package]] +name = "proc-macro-hack" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" + +[[package]] +name = "proc-macro-nested" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" + +[[package]] +name = "proc-macro2" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "protobuf" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb14183cc7f213ee2410067e1ceeadba2a7478a59432ff0747a335202798b1e2" + +[[package]] +name = "protobuf-codegen" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3360a1e017386e7d9fc65f7425bef9bcf1e62871f8b5a7b0570ef2ff5073f9a0" +dependencies = [ + "protobuf", +] + +[[package]] +name = "protoc" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93daf2f02fa5b0fca2798a24c5a77b6e0d262dc9c386335e04ddbd25ca8237e9" +dependencies = [ + "log", + "which", +] + +[[package]] +name = "protoc-rust" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61d4df67d09fc026da7cdf2d039e0340d4a09775f65d4216762886d2f1a1f245" +dependencies = [ + "protobuf", + "protobuf-codegen", + "protoc", + "tempfile 3.1.0", +] + +[[package]] +name = "protos" +version = "0.1.0" +dependencies = [ + "kvm_sys", + "protobuf", + "protoc-rust", +] + +[[package]] +name = "qcow_utils" +version = "0.1.0" +dependencies = [ + "disk", + "getopts", + "libc", + "sys_util", +] + +[[package]] +name = "quote" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom", + "libc", + "rand_chacha", + "rand_core", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_ish" +version = "0.1.0" + +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + +[[package]] +name = "remain" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ba1e78fa68412cb93ef642fd4d20b9a941be49ee9333875ebaf13112673ea7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "resources" +version = "0.1.0" +dependencies = [ + "gpu_buffer", + "libc", + "msg_socket", + "sys_util", +] + +[[package]] +name = "slab" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" + +[[package]] +name = "syn" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e69abc24912995b3038597a7a593be5053eb0fb44f3cc5beec0deb421790c1f4" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "sync" +version = "0.1.0" + +[[package]] +name = "sys_util" +version = "0.1.0" +dependencies = [ + "data_model", + "libc", + "poll_token_derive", + "sync", + "syscall_defines", + "tempfile 3.0.7", +] + +[[package]] +name = "syscall_defines" +version = "0.1.0" + +[[package]] +name = "tempfile" +version = "3.0.7" +dependencies = [ + "libc", +] + +[[package]] +name = "tempfile" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +dependencies = [ + "cfg-if", + "libc", + "rand", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "thiserror" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tpm2" +version = "0.1.0" +dependencies = [ + "tpm2-sys", +] + +[[package]] +name = "tpm2-sys" +version = "0.1.0" +dependencies = [ + "num_cpus", + "pkg-config", +] + +[[package]] +name = "unicode-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" + +[[package]] +name = "unicode-xid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" + +[[package]] +name = "usb_sys" +version = "0.1.0" +dependencies = [ + "sys_util", +] + +[[package]] +name = "usb_util" +version = "0.1.0" +dependencies = [ + "assertions", + "data_model", + "libc", + "remain", + "sys_util", + "usb_sys", +] + +[[package]] +name = "vfio_sys" +version = "0.1.0" +dependencies = [ + "sys_util", +] + +[[package]] +name = "vhost" +version = "0.1.0" +dependencies = [ + "assertions", + "libc", + "net_util", + "sys_util", + "virtio_sys", +] + +[[package]] +name = "virtio_sys" +version = "0.1.0" +dependencies = [ + "sys_util", +] + +[[package]] +name = "vm_control" +version = "0.1.0" +dependencies = [ + "data_model", + "kvm", + "libc", + "msg_socket", + "resources", + "sync", + "sys_util", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "which" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87c14ef7e1b8b8ecfc75d5eca37949410046e66f15d185c01d70824f1f8111ef" +dependencies = [ + "libc", + "thiserror", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wire_format_derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "x86_64" +version = "0.1.0" +dependencies = [ + "acpi_tables", + "arch", + "assertions", + "data_model", + "devices", + "io_jail", + "kernel_cmdline", + "kernel_loader", + "kvm", + "kvm_sys", + "libc", + "remain", + "resources", + "sync", + "sys_util", + "vm_control", +] diff --git a/x86_64-linux-gnu/builder-packages.txt b/x86_64-linux-gnu/builder-packages.txt new file mode 100644 index 0000000..711d630 --- /dev/null +++ b/x86_64-linux-gnu/builder-packages.txt @@ -0,0 +1,515 @@ +adduser 3.118 +apt 1.8.2.1 +apt-utils 1.8.2.1 +autoconf 2.69-11 +automake 1:1.16.1-4 +autopoint 0.19.8.1-9 +autotools-dev 20180224.1 +base-files 10.3+deb10u5 +base-passwd 3.5.46 +bash 5.0-4 +binutils 2.31.1-16 +binutils-aarch64-linux-gnu 2.31.1-16 +binutils-common:amd64 2.31.1-16 +binutils-x86-64-linux-gnu 2.31.1-16 +bsd-mailx 8.1.2-0.20180807cvs-1 +bsdmainutils 11.1.2+b1 +bsdutils 1:2.33.1-0.1 +build-essential 12.6 +bzip2 1.0.6-9.2~deb10u1 +ca-certificates 20200601~deb10u1 +cmake 3.13.4-1 +cmake-data 3.13.4-1 +coreutils 8.30-3 +cpp 4:8.3.0-1 +cpp-8 8.3.0-6 +cpp-8-aarch64-linux-gnu 8.3.0-2cross1 +cpp-aarch64-linux-gnu 4:8.3.0-1 +cron 3.0pl1-134+deb10u1 +cross-config 2.6.15-3 +crossbuild-essential-arm64 12.6 +curl 7.64.0-4+deb10u1 +dash 0.5.10.2-5 +dbus 1.12.20-0+deb10u1 +debconf 1.5.71 +debhelper 12.1.1 +debian-archive-keyring 2019.1 +debianutils 4.8.6.1 +dh-autoreconf 19 +dh-python 3.20190308 +dh-strip-nondeterminism 1.1.2-1 +dialog 1.3-20190211-1 +diffutils 1:3.7-3 +dirmngr 2.2.12-1+deb10u1 +dmsetup 2:1.02.155-3 +dns-root-data 2019031302 +dnsmasq 2.80-1 +dnsmasq-base 2.80-1 +dpkg 1.19.7 +dpkg-cross 2.6.15-3 +dpkg-dev 1.19.7 +dwz 0.12-3 +e2fsprogs 1.44.5-1+deb10u3 +equivs 2.2.0 +exim4-base 4.92-8+deb10u4 +exim4-config 4.92-8+deb10u4 +exim4-daemon-light 4.92-8+deb10u4 +fakeroot 1.23-1 +fdisk 2.33.1-0.1 +file 1:5.35-4+deb10u1 +findutils 4.6.0+git+20190209-2 +g++ 4:8.3.0-1 +g++-8 8.3.0-6 +g++-8-aarch64-linux-gnu 8.3.0-2cross1 +g++-aarch64-linux-gnu 4:8.3.0-1 +gcc 4:8.3.0-1 +gcc-8 8.3.0-6 +gcc-8-aarch64-linux-gnu 8.3.0-2cross1 +gcc-8-aarch64-linux-gnu-base:amd64 8.3.0-2cross1 +gcc-8-base:amd64 8.3.0-6 +gcc-8-cross-base 8.3.0-2cross1 +gcc-aarch64-linux-gnu 4:8.3.0-1 +gettext 0.19.8.1-9 +gettext-base 0.19.8.1-9 +gir1.2-glib-2.0:amd64 1.58.3-2 +git 1:2.20.1-2+deb10u3 +git-man 1:2.20.1-2+deb10u3 +gnupg 2.2.12-1+deb10u1 +gnupg-l10n 2.2.12-1+deb10u1 +gnupg-utils 2.2.12-1+deb10u1 +gpg 2.2.12-1+deb10u1 +gpg-agent 2.2.12-1+deb10u1 +gpg-wks-client 2.2.12-1+deb10u1 +gpg-wks-server 2.2.12-1+deb10u1 +gpgconf 2.2.12-1+deb10u1 +gpgsm 2.2.12-1+deb10u1 +gpgv 2.2.12-1+deb10u1 +grep 3.3-1 +groff-base 1.22.4-3 +gzip 1.9-3 +hostname 3.21 +init-system-helpers 1.56+nmu1 +intltool-debian 0.35.0+20060710.5 +iproute2 4.20.0-2 +iptables 1.8.2-4 +krb5-locales 1.17-3 +less 487-0.1+b1 +libacl1:amd64 2.2.53-4 +libalgorithm-diff-perl 1.19.03-2 +libalgorithm-diff-xs-perl 0.04-5+b1 +libalgorithm-merge-perl 0.08-3 +libapparmor1:amd64 2.13.2-10 +libapt-inst2.0:amd64 1.8.2.1 +libapt-pkg5.0:amd64 1.8.2.1 +libarchive-cpio-perl 0.10-1 +libarchive-zip-perl 1.64-1 +libarchive13:amd64 3.3.3-4+deb10u1 +libargon2-1:amd64 0~20171227-0.2 +libasan5:amd64 8.3.0-6 +libasan5-arm64-cross 8.3.0-2cross1 +libassuan0:amd64 2.5.2-1 +libatm1:amd64 1:2.5.1-2 +libatomic1:amd64 8.3.0-6 +libatomic1-arm64-cross 8.3.0-2cross1 +libattr1:amd64 1:2.4.48-4 +libaudit-common 1:2.8.4-3 +libaudit1:amd64 1:2.8.4-3 +libauthen-sasl-perl 2.1600-1 +libbinutils:amd64 2.31.1-16 +libblkid1:amd64 2.33.1-0.1 +libbsd0:amd64 0.9.1-2 +libbz2-1.0:amd64 1.0.6-9.2~deb10u1 +libc-bin 2.28-10 +libc-dev-bin 2.28-10 +libc6:amd64 2.28-10 +libc6-arm64-cross 2.28-7cross1 +libc6-dev:amd64 2.28-10 +libc6-dev-arm64-cross 2.28-7cross1 +libcap-dev:amd64 1:2.25-2 +libcap-ng0:amd64 0.7.9-2 +libcap2:amd64 1:2.25-2 +libcap2-bin 1:2.25-2 +libcc1-0:amd64 8.3.0-6 +libcom-err2:amd64 1.44.5-1+deb10u3 +libconfig-auto-perl 0.44-1 +libconfig-inifiles-perl 3.000001-1 +libcroco3:amd64 0.6.12-3 +libcryptsetup12:amd64 2:2.1.0-5+deb10u2 +libcurl3-gnutls:amd64 7.64.0-4+deb10u1 +libcurl4:amd64 7.64.0-4+deb10u1 +libdata-dump-perl 1.23-1 +libdb5.3:amd64 5.3.28+dfsg1-0.5 +libdbus-1-3:amd64 1.12.20-0+deb10u1 +libdebconfclient0:amd64 0.249 +libdebian-dpkgcross-perl 2.6.15-3 +libdevmapper1.02.1:amd64 2:1.02.155-3 +libdpkg-perl 1.19.7 +libdrm-amdgpu1:amd64 2.4.97-1 +libdrm-common 2.4.97-1 +libdrm-dev:amd64 2.4.97-1 +libdrm-intel1:amd64 2.4.97-1 +libdrm-nouveau2:amd64 2.4.97-1 +libdrm-radeon1:amd64 2.4.97-1 +libdrm2:amd64 2.4.97-1 +libedit2:amd64 3.1-20181209-1 +libegl-mesa0:amd64 18.3.6-2+deb10u1 +libegl1:amd64 1.1.0-1 +libegl1-mesa-dev:amd64 18.3.6-2+deb10u1 +libelf1:amd64 0.176-1.1 +libencode-locale-perl 1.05-1 +liberror-perl 0.17027-2 +libestr0:amd64 0.1.10-2.1 +libevent-2.1-6:amd64 2.1.8-stable-4 +libexpat1:amd64 2.2.6-2+deb10u1 +libexpat1-dev:amd64 2.2.6-2+deb10u1 +libext2fs2:amd64 1.44.5-1+deb10u3 +libfakeroot:amd64 1.23-1 +libfastjson4:amd64 0.99.8-2 +libfdisk1:amd64 2.33.1-0.1 +libfdt-dev 1.4.7-3 +libfdt1:amd64 1.4.7-3 +libffi6:amd64 3.2.1-9 +libfile-fcntllock-perl 0.22-3+b5 +libfile-homedir-perl 1.004-1 +libfile-listing-perl 6.04-1 +libfile-stripnondeterminism-perl 1.1.2-1 +libfile-which-perl 1.23-1 +libfont-afm-perl 1.20-2 +libgbm1:amd64 18.3.6-2+deb10u1 +libgcc-8-dev:amd64 8.3.0-6 +libgcc-8-dev-arm64-cross 8.3.0-2cross1 +libgcc1:amd64 1:8.3.0-6 +libgcc1-arm64-cross 1:8.3.0-2cross1 +libgcrypt20:amd64 1.8.4-5 +libgdbm-compat4:amd64 1.18.1-4 +libgdbm6:amd64 1.18.1-4 +libgirepository-1.0-1:amd64 1.58.3-2 +libgl1:amd64 1.1.0-1 +libgl1-mesa-dev:amd64 18.3.6-2+deb10u1 +libgl1-mesa-dri:amd64 18.3.6-2+deb10u1 +libglapi-mesa:amd64 18.3.6-2+deb10u1 +libgles1:amd64 1.1.0-1 +libgles2:amd64 1.1.0-1 +libgles2-mesa-dev:amd64 18.3.6-2+deb10u1 +libglib2.0-0:amd64 2.58.3-2+deb10u2 +libglib2.0-data 2.58.3-2+deb10u2 +libglvnd-core-dev:amd64 1.1.0-1 +libglvnd-dev:amd64 1.1.0-1 +libglvnd0:amd64 1.1.0-1 +libglx-mesa0:amd64 18.3.6-2+deb10u1 +libglx0:amd64 1.1.0-1 +libgmp10:amd64 2:6.1.2+dfsg-4 +libgnutls-dane0:amd64 3.6.7-4+deb10u5 +libgnutls30:amd64 3.6.7-4+deb10u5 +libgomp1:amd64 8.3.0-6 +libgomp1-arm64-cross 8.3.0-2cross1 +libgpg-error0:amd64 1.35-1 +libgpm2:amd64 1.20.7-5 +libgssapi-krb5-2:amd64 1.17-3 +libhogweed4:amd64 3.4.1-1 +libhtml-form-perl 6.03-1 +libhtml-format-perl 2.12-1 +libhtml-parser-perl 3.72-3+b3 +libhtml-tagset-perl 3.20-3 +libhtml-tree-perl 5.07-2 +libhttp-cookies-perl 6.04-1 +libhttp-daemon-perl 6.01-3 +libhttp-date-perl 6.02-1 +libhttp-message-perl 6.18-1 +libhttp-negotiate-perl 6.01-1 +libicu63:amd64 63.1-6+deb10u1 +libidn11:amd64 1.33-2.2 +libidn2-0:amd64 2.0.5-1+deb10u1 +libio-html-perl 1.001-1 +libio-socket-ssl-perl 2.060-3 +libio-string-perl 1.08-3 +libip4tc0:amd64 1.8.2-4 +libip6tc0:amd64 1.8.2-4 +libiptc0:amd64 1.8.2-4 +libisl19:amd64 0.20-2 +libitm1:amd64 8.3.0-6 +libitm1-arm64-cross 8.3.0-2cross1 +libjansson4:amd64 2.12-1 +libjson-c3:amd64 0.12.1+ds-2+deb10u1 +libjsoncpp1:amd64 1.7.4-3 +libk5crypto3:amd64 1.17-3 +libkeyutils1:amd64 1.6-6 +libkmod2:amd64 26-1 +libkrb5-3:amd64 1.17-3 +libkrb5support0:amd64 1.17-3 +libksba8:amd64 1.3.5-2 +libldap-2.4-2:amd64 2.4.47+dfsg-3+deb10u2 +libldap-common 2.4.47+dfsg-3+deb10u2 +libllvm7:amd64 1:7.0.1-8+deb10u2 +liblocale-gettext-perl 1.07-3+b4 +liblockfile-bin 1.14-1.1 +liblockfile1:amd64 1.14-1.1 +liblognorm5:amd64 2.0.5-1 +liblsan0:amd64 8.3.0-6 +liblsan0-arm64-cross 8.3.0-2cross1 +libltdl-dev:amd64 2.4.6-9 +libltdl7:amd64 2.4.6-9 +liblwp-mediatypes-perl 6.02-1 +liblwp-protocol-https-perl 6.07-2 +liblz4-1:amd64 1.8.3-1 +liblzma5:amd64 5.2.4-1 +libmagic-mgc 1:5.35-4+deb10u1 +libmagic1:amd64 1:5.35-4+deb10u1 +libmail-sendmail-perl 0.80-1 +libmailtools-perl 2.18-1 +libmnl0:amd64 1.0.4-2 +libmount1:amd64 2.33.1-0.1 +libmpc3:amd64 1.1.0-1 +libmpdec2:amd64 2.4.2-2 +libmpfr6:amd64 4.0.2-1 +libmpx2:amd64 8.3.0-6 +libncurses6:amd64 6.1+20181013-2+deb10u2 +libncursesw6:amd64 6.1+20181013-2+deb10u2 +libnet-http-perl 6.18-1 +libnet-smtp-ssl-perl 1.04-1 +libnet-ssleay-perl 1.85-2+b1 +libnetfilter-conntrack3:amd64 1.0.7-1 +libnettle6:amd64 3.4.1-1 +libnfnetlink0:amd64 1.0.1-3+b1 +libnftables0:amd64 0.9.0-2 +libnftnl11:amd64 1.1.2-2 +libnghttp2-14:amd64 1.36.0-2+deb10u1 +libnpth0:amd64 1.6-1 +libnss-systemd:amd64 241-7~deb10u4 +libopengl0:amd64 1.1.0-1 +libp11-kit0:amd64 0.23.15-2 +libpam-cap:amd64 1:2.25-2 +libpam-modules:amd64 1.3.1-5 +libpam-modules-bin 1.3.1-5 +libpam-runtime 1.3.1-5 +libpam-systemd:amd64 241-7~deb10u4 +libpam0g:amd64 1.3.1-5 +libpciaccess-dev:amd64 0.14-1 +libpciaccess0:amd64 0.14-1 +libpcre2-8-0:amd64 10.32-5 +libpcre3:amd64 2:8.39-12 +libperl5.28:amd64 5.28.1-6+deb10u1 +libpipeline1:amd64 1.5.1-2 +libpopt0:amd64 1.16-12 +libprocps7:amd64 2:3.3.15-2 +libprotobuf-dev:amd64 3.6.1.3-2 +libprotobuf-lite17:amd64 3.6.1.3-2 +libprotobuf17:amd64 3.6.1.3-2 +libprotoc17:amd64 3.6.1.3-2 +libpsl5:amd64 0.20.2-2 +libpthread-stubs0-dev:amd64 0.4-1 +libpython-stdlib:amd64 2.7.16-1 +libpython2-stdlib:amd64 2.7.16-1 +libpython2.7-minimal:amd64 2.7.16-2+deb10u1 +libpython2.7-stdlib:amd64 2.7.16-2+deb10u1 +libpython3-dev:amd64 3.7.3-1 +libpython3-stdlib:amd64 3.7.3-1 +libpython3.7:amd64 3.7.3-2+deb10u2 +libpython3.7-dev:amd64 3.7.3-2+deb10u2 +libpython3.7-minimal:amd64 3.7.3-2+deb10u2 +libpython3.7-stdlib:amd64 3.7.3-2+deb10u2 +libquadmath0:amd64 8.3.0-6 +libreadline7:amd64 7.0-5 +librhash0:amd64 1.3.8-1 +librtmp1:amd64 2.4+20151223.gitfa8646d.1-2 +libsasl2-2:amd64 2.1.27+dfsg-1+deb10u1 +libsasl2-modules:amd64 2.1.27+dfsg-1+deb10u1 +libsasl2-modules-db:amd64 2.1.27+dfsg-1+deb10u1 +libseccomp2:amd64 2.3.3-4 +libselinux1:amd64 2.8-1+b1 +libsemanage-common 2.8-2 +libsemanage1:amd64 2.8-2 +libsensors-config 1:3.5.0-3 +libsensors5:amd64 1:3.5.0-3 +libsepol1:amd64 2.8-1 +libsigsegv2:amd64 2.12-2 +libsmartcols1:amd64 2.33.1-0.1 +libsqlite3-0:amd64 3.27.2-3 +libss2:amd64 1.44.5-1+deb10u3 +libssh2-1:amd64 1.8.0-2.1 +libssl-dev:amd64 1.1.1d-0+deb10u3 +libssl1.1:amd64 1.1.1d-0+deb10u3 +libstdc++-8-dev:amd64 8.3.0-6 +libstdc++-8-dev-arm64-cross 8.3.0-2cross1 +libstdc++6:amd64 8.3.0-6 +libstdc++6-arm64-cross 8.3.0-2cross1 +libsys-hostname-long-perl 1.5-1 +libsystemd0:amd64 241-7~deb10u4 +libtasn1-6:amd64 4.13-3 +libtimedate-perl 2.3000-2+deb10u1 +libtinfo6:amd64 6.1+20181013-2+deb10u2 +libtool 2.4.6-9 +libtry-tiny-perl 0.30-1 +libtsan0:amd64 8.3.0-6 +libtsan0-arm64-cross 8.3.0-2cross1 +libubsan1:amd64 8.3.0-6 +libubsan1-arm64-cross 8.3.0-2cross1 +libuchardet0:amd64 0.0.6-3 +libudev1:amd64 241-7~deb10u4 +libunbound8:amd64 1.9.0-2+deb10u2 +libunistring2:amd64 0.9.10-1 +liburi-perl 1.76-1 +libusb-1.0-0:amd64 2:1.0.22-2 +libusb-1.0-0-dev:amd64 2:1.0.22-2 +libusb-1.0-doc 2:1.0.22-2 +libuuid1:amd64 2.33.1-0.1 +libuv1:amd64 1.24.1-1 +libwayland-bin 1.16.0-1 +libwayland-client0:amd64 1.16.0-1 +libwayland-cursor0:amd64 1.16.0-1 +libwayland-dev:amd64 1.16.0-1 +libwayland-egl1:amd64 1.16.0-1 +libwayland-server0:amd64 1.16.0-1 +libwrap0:amd64 7.6.q-28 +libwww-perl 6.36-2 +libwww-robotrules-perl 6.02-1 +libx11-6:amd64 2:1.6.7-1+deb10u1 +libx11-data 2:1.6.7-1+deb10u1 +libx11-dev:amd64 2:1.6.7-1+deb10u1 +libx11-xcb-dev:amd64 2:1.6.7-1+deb10u1 +libx11-xcb1:amd64 2:1.6.7-1+deb10u1 +libxau-dev:amd64 1:1.0.8-1+b2 +libxau6:amd64 1:1.0.8-1+b2 +libxcb-dri2-0:amd64 1.13.1-2 +libxcb-dri2-0-dev:amd64 1.13.1-2 +libxcb-dri3-0:amd64 1.13.1-2 +libxcb-dri3-dev:amd64 1.13.1-2 +libxcb-glx0:amd64 1.13.1-2 +libxcb-glx0-dev:amd64 1.13.1-2 +libxcb-present-dev:amd64 1.13.1-2 +libxcb-present0:amd64 1.13.1-2 +libxcb-randr0:amd64 1.13.1-2 +libxcb-randr0-dev:amd64 1.13.1-2 +libxcb-render0:amd64 1.13.1-2 +libxcb-render0-dev:amd64 1.13.1-2 +libxcb-shape0:amd64 1.13.1-2 +libxcb-shape0-dev:amd64 1.13.1-2 +libxcb-sync-dev:amd64 1.13.1-2 +libxcb-sync1:amd64 1.13.1-2 +libxcb-xfixes0:amd64 1.13.1-2 +libxcb-xfixes0-dev:amd64 1.13.1-2 +libxcb1:amd64 1.13.1-2 +libxcb1-dev:amd64 1.13.1-2 +libxdamage-dev:amd64 1:1.1.4-3+b3 +libxdamage1:amd64 1:1.1.4-3+b3 +libxdmcp-dev:amd64 1:1.1.2-3 +libxdmcp6:amd64 1:1.1.2-3 +libxext-dev:amd64 2:1.3.3-1+b2 +libxext6:amd64 2:1.3.3-1+b2 +libxfixes-dev:amd64 1:5.0.3-1 +libxfixes3:amd64 1:5.0.3-1 +libxml-libxml-perl 2.0134+dfsg-1 +libxml-namespacesupport-perl 1.12-1 +libxml-parser-perl 2.44-4 +libxml-sax-base-perl 1.09-1 +libxml-sax-expat-perl 0.51-1 +libxml-sax-perl 1.00+dfsg-1 +libxml-simple-perl 2.25-1 +libxml2:amd64 2.9.4+dfsg1-7+b3 +libxmuu1:amd64 2:1.1.2-2+b3 +libxshmfence-dev:amd64 1.3-1 +libxshmfence1:amd64 1.3-1 +libxtables12:amd64 1.8.2-4 +libxxf86vm-dev:amd64 1:1.1.4-1+b2 +libxxf86vm1:amd64 1:1.1.4-1+b2 +libyaml-0-2:amd64 0.2.1-1 +libyaml-libyaml-perl 0.76+repack-1 +libyaml-perl 1.27-1 +libzstd1:amd64 1.3.8+dfsg-3 +linux-libc-dev:amd64 4.19.146-1 +linux-libc-dev-arm64-cross 4.19.20-1cross1 +login 1:4.5-1.1 +logrotate 3.14.0-4 +lsb-base 10.2019051400 +m4 1.4.18-2 +make 4.2.1-1.2 +man-db 2.8.5-2 +manpages 4.16-2 +manpages-dev 4.16-2 +mawk 1.3.3-17+b3 +mesa-common-dev:amd64 18.3.6-2+deb10u1 +mime-support 3.62 +mount 2.33.1-0.1 +nasm 2.14-1 +ncurses-base 6.1+20181013-2+deb10u2 +ncurses-bin 6.1+20181013-2+deb10u2 +ncurses-term 6.1+20181013-2+deb10u2 +net-tools 1.60+git20180626.aebd88e-1 +netbase 5.6 +nftables 0.9.0-2 +ninja-build 1.8.2-1 +openssh-client 1:7.9p1-10+deb10u2 +openssh-server 1:7.9p1-10+deb10u2 +openssh-sftp-server 1:7.9p1-10+deb10u2 +openssl 1.1.1d-0+deb10u3 +passwd 1:4.5-1.1 +patch 2.7.6-3+deb10u1 +perl 5.28.1-6+deb10u1 +perl-base 5.28.1-6+deb10u1 +perl-modules-5.28 5.28.1-6+deb10u1 +perl-openssl-defaults:amd64 3 +pinentry-curses 1.1.0-2 +pkg-config 0.29-6 +po-debconf 1.0.21 +procps 2:3.3.15-2 +protobuf-compiler 3.6.1.3-2 +psmisc 23.2-1 +publicsuffix 20190415.1030-1 +python 2.7.16-1 +python-minimal 2.7.16-1 +python-pip-whl 18.1-5 +python2 2.7.16-1 +python2-minimal 2.7.16-1 +python2.7 2.7.16-2+deb10u1 +python2.7-minimal 2.7.16-2+deb10u1 +python3 3.7.3-1 +python3-asn1crypto 0.24.0-1 +python3-cffi-backend 1.12.2-1 +python3-crypto 2.6.1-9+b1 +python3-cryptography 2.6.1-3+deb10u2 +python3-dbus 1.2.8-3 +python3-dev 3.7.3-1 +python3-distutils 3.7.3-1 +python3-entrypoints 0.3-1 +python3-gi 3.30.4-1 +python3-keyring 17.1.1-1 +python3-keyrings.alt 3.1.1-1 +python3-lib2to3 3.7.3-1 +python3-minimal 3.7.3-1 +python3-pip 18.1-5 +python3-pkg-resources 40.8.0-1 +python3-secretstorage 2.3.1-2 +python3-setuptools 40.8.0-1 +python3-six 1.12.0-1 +python3-wheel 0.32.3-2 +python3-xdg 0.25-5 +python3.7 3.7.3-2+deb10u2 +python3.7-dev 3.7.3-2+deb10u2 +python3.7-minimal 3.7.3-2+deb10u2 +readline-common 7.0-5 +rsyslog 8.1901.0-1 +sed 4.7-1 +sensible-utils 0.0.12 +shared-mime-info 1.10-1 +sudo 1.8.27-1+deb10u2 +systemd 241-7~deb10u4 +systemd-sysv 241-7~deb10u4 +sysvinit-utils 2.93-8 +tar 1.30+dfsg-6 +tzdata 2020a-0+deb10u1 +ucf 3.0038+nmu1 +util-linux 2.33.1-0.1 +x11proto-core-dev 2018.4-4 +x11proto-damage-dev 1:2018.4-4 +x11proto-dev 2018.4-4 +x11proto-fixes-dev 1:2018.4-4 +x11proto-xext-dev 2018.4-4 +x11proto-xf86vidmode-dev 2018.4-4 +xauth 1:1.0.10-1 +xdg-user-dirs 0.17-2 +xorg-sgml-doctools 1:1.11-1 +xtrans-dev 1.3.5-1 +xutils-dev 1:7.7+5+b1 +xz-utils 5.2.4-1 +zlib1g:amd64 1:1.2.11.dfsg-1 +zlib1g-dev:amd64 1:1.2.11.dfsg-1 diff --git a/x86_64-linux-gnu/builder_image.txt b/x86_64-linux-gnu/builder_image.txt new file mode 100644 index 0000000..c14aef9 --- /dev/null +++ b/x86_64-linux-gnu/builder_image.txt @@ -0,0 +1 @@ +sourceImage: https://www.googleapis.com/compute/v1/projects/cloud-android-testing/global/images/jemoreira-build-image diff --git a/x86_64-linux-gnu/cargo_version.txt b/x86_64-linux-gnu/cargo_version.txt new file mode 100644 index 0000000..08467d7 --- /dev/null +++ b/x86_64-linux-gnu/cargo_version.txt @@ -0,0 +1,4 @@ +cargo 1.45.1 (f242df6ed 2020-07-22) +release: 1.45.1 +commit-hash: f242df6edb897f6f69d393a22bb257f5af0f52d0 +commit-date: 2020-07-22 diff --git a/x86_64-linux-gnu/rustup_show.txt b/x86_64-linux-gnu/rustup_show.txt new file mode 100644 index 0000000..775cdf2 --- /dev/null +++ b/x86_64-linux-gnu/rustup_show.txt @@ -0,0 +1,14 @@ +Default host: x86_64-unknown-linux-gnu + +installed targets for active toolchain +-------------------------------------- + +aarch64-unknown-linux-gnu +x86_64-unknown-linux-gnu + +active toolchain +---------------- + +stable-x86_64-unknown-linux-gnu (overridden by '/source/platform/crosvm/rust-toolchain') +rustc 1.45.2 (d3fb005a3 2020-07-31) + |