I'm trying to use jpeg2k, from crates.io. jpeg2k uses openjpeg-sys, from crates.io. That's just a block of generated foreign function interfaces. openjpeg-sys uses OpenJPEG, which is in C. This mostly works.
About 10 months ago, support for a new feature was added, the ability to read partial JPEG 2000 files to get lower-resolution images. This is a standard JPEG 2000 feature, but wasn't previously available from Rust. The feature is gated by turning on feature strict-mode for jpeg2k. If I turn that on, jpeg2k wont' compile, because it's missing a function from openjpeg-sys.
It turns out that the version of openjpeg-sys on Github and the version on crates.io don't match, even though the version numbers are the same. The pull request to merge that into openjpeg-sys was merged, but the version wasn't bumped to allow a push to crates.io. At the same time, the developer of openjpeg-sys changed its maintenance status to "as-is".
What's the proper way to proceed in this situation? Is there a workaround short of forking everything?