Closed ConnorNelson closed 4 years ago
This project contains several large binaries of the QEMU project.
Indeed. The Python functionality is a small __init__.py
that exists to pick one of those binaries.
$ file shellphish_qemu/bin/*
shellphish_qemu/bin/shellphish-qemu-cgc-base: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=60e9d53b86db19f24ebd045d99ad59b1284a0170, not stripped
shellphish_qemu/bin/shellphish-qemu-cgc-nxtracer: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=88072b4b6cd953fe3574e82cb16b550ab6e43685, not stripped
shellphish_qemu/bin/shellphish-qemu-cgc-tracer: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=af568e9c7a0b789f2e78456152a7ecaa1cc92386, not stripped
shellphish_qemu/bin/shellphish-qemu-linux-aarch64: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=a9949874fe6c4dac8e42467684b9e00bacb43b28, not stripped
shellphish_qemu/bin/shellphish-qemu-linux-arm: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=8a2f2c106deca6fc829766dcbe0c8004a96bedf8, not stripped
shellphish_qemu/bin/shellphish-qemu-linux-i386: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=81cb4d0e07e5b52621bc529b43d08fd9af219778, not stripped
shellphish_qemu/bin/shellphish-qemu-linux-mips: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=5b0ff97d3f2e1c3a52e14683b20f3654805bd7a9, not stripped
shellphish_qemu/bin/shellphish-qemu-linux-mips64: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=befcdcae05e2b39d963832fd7ad2d6232a5cadd9, not stripped
shellphish_qemu/bin/shellphish-qemu-linux-mipsel: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d8adbf9cb48a7d0dfad3da1dc2eb8abf7f51e981, not stripped
shellphish_qemu/bin/shellphish-qemu-linux-ppc: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=f19a09da4cfc20bc475857730dd0480d13e7f7af, not stripped
shellphish_qemu/bin/shellphish-qemu-linux-ppc64: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d19803a84acdc496bf9ce5976c01c2ba4db97a03, not stripped
shellphish_qemu/bin/shellphish-qemu-linux-x86_64: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d56046656f59350edd852606c75b090ed0649e2e, not stripped
An increase to 100MB should be sufficient for our needs
Could you please discuss those needs in more detail? PyPI isn't really intended to distribute large binaries for (what appears to be) multiple platforms in single files. There are no links or other information included in the project or this request to help establish its purpose, but https://github.com/shellphish/shellphish-qemu describes it as "A pip wrapper around our ridiculous amount of qemu forks."
These binaries are all for x86-64 (as you can see by the "ELF 64-bit LSB shared object, x86-64"). QEMU is an "open source machine & userspace emulator and virtualizer". So, I wouldn't really describe this as being "for multiple platforms", thats just a consequence of what these binaries do.
This is useful for our other projects as it allows us to bring these QEMU dependencies in as we would any other python project. One of our open source projects that utilizes this dependency is https://github.com/angr/archr. We have other projects being worked on that also depend on this that will also become open source.
Our only other options would be dramatically increasing install time on our packages that rely on this dependency (unlikely to happen), or moving all of these binaries into our separate projects that rely on them, and asking for limit requests on all of them. This would be a nightmare.
This centralized approach is very useful for us, and I believe, useful for you (it keeps us from having these binaries all over in several PyPi packages). I hope you understand. Thanks.
I've set the upload limit for shellphish-qemu
to 100 MB on PyPI.
Project shellphish-qemu: https://pypi.org/project/shellphish-qemu/
Size of release 100MB
Which indexes PyPI
Reasons for the request This project contains several large binaries of the QEMU project. An increase to 100MB should be sufficient for our needs. Thanks.