Support fixing top-level extension modules
See original GitHub issuePotential duplication of GH-12, GH-15, GH-22, GH-45, GH-63 and possibly many others. I open this to discuss the strategy to fix this quite common issue.
Rationale
delocate-listdeps
works perfectly for these wheels, while delocate-wheel
fails silently. This is really confusing to the users. It’d be a lot better if any detected missing lib can be added to the wheel.
Proposal
auditwheel
support top-level extension modules by copying the shared libraries to {package-name}.libs
and I suggest delocate
follow that convention. With package-name
being canonicalized to snake_case
, this should never cause name collision with the package ending with libs
. For example
$ unzip palace-0.1.5-cp38-cp38-manylinux2014_x86_64.whl
Archive: palace-0.1.5-cp38-cp38-manylinux2014_x86_64.whl
inflating: palace.cpython-38-x86_64-linux-gnu.so
inflating: palace-0.1.5.dist-info/top_level.txt
inflating: palace-0.1.5.dist-info/RECORD
inflating: palace-0.1.5.dist-info/METADATA
inflating: palace-0.1.5.dist-info/LICENSE
inflating: palace-0.1.5.dist-info/WHEEL
inflating: palace.libs/libopus-abf1ee53.so.0.3.0
inflating: palace.libs/libvorbisfile-c5d289a9.so.3.3.5
inflating: palace.libs/libalure2-9f93a6b1.so
inflating: palace.libs/libvorbis-02341991.so.0.4.6
inflating: palace.libs/libFLAC-b0904aee.so.8.3.0
inflating: palace.libs/libgsm-ed01cacd.so.1.0.12
inflating: palace.libs/libopusfile-a90fc0fd.so.0.3.0
inflating: palace.libs/libopenal-ce7fd2e6.so.1.20.1
inflating: palace.libs/libvorbisenc-e32e3ab5.so.2.0.9
inflating: palace.libs/libsndfile-7c9b3dac.so.1.0.25
inflating: palace.libs/libogg-24eaa32b.so.0.8.0
I’m looking forward to see your response on this. Happy labor day BTW 🎆
Issue Analytics
- State:
- Created 3 years ago
- Comments:5 (2 by maintainers)
Top Results From Across the Web
await Error at Top Level Module in Chrome Extension ...
How do I fix this? TIA. I found this: Getting this error "await is only valid in async functions and the top level...
Read more >Using Node.js ES modules and top-level await in AWS Lambda
With ES modules, developers may use top-level await within their functions. This allows developers to use the await keyword in the top level...
Read more >Module list must contain only top level module ids for the scan
Hi Team,. Once triggered the veracode scan from the Jenkins and scan is getting failed due to the below reasons.
Read more >ECMAScript proposal: Top-level await - GitHub
Top-level await enables modules to act as big async functions: With top-level await , ECMAScript Modules (ESM) can await resources, causing other modules...
Read more >Chapter 12 The toplevel system or REPL (ocaml)
This chapter describes the toplevel system for OCaml, that permits ... The definition can bind value names, type names, an exception, a module...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
In our project, we work around it by running the following script:
The actual setup is available at McSinyx/palace@5406740. Thank you for providing the lower-level utility for hacks like this to be possible, though I still think it’d be nice if this is supported by
delocate-wheel
.I’m in the same boat as @bsolomon1124 and I ended up using this fork: https://github.com/Chia-Network/delocate/commits/master which merged #39 and adds a (force) file insertion option. Since this seems to work (and builds macos wheels with the right bundled libs directory) I’m wondering what’s still holding this up? If I actually had a Mac I would certainly poke at this more and make sure the tests work, etc, but I don’t have a Mac (or any “extra” time for that matter). Thanks! (my example is here: https://github.com/freepn/py-re2/actions/runs/487166636)