pypi / support

Issue tracker for support requests related to using https://pypi.org
95 stars 47 forks source link

Limit Request: shellphish-qemu - 100MB #299

Closed ConnorNelson closed 4 years ago

ConnorNelson commented 4 years ago

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.

jamadden commented 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."

ConnorNelson commented 4 years ago

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.

di commented 4 years ago

I've set the upload limit for shellphish-qemu to 100 MB on PyPI.