If you think I’ve done something wrong according to the licences involved here, please do clarify. I had understood that open-sourcing the Linux stuff (as branches of a fork of v86, linked from the /credits page) met all relevant legal obligations, which I absolutely intend to do.
More broadly, it’s unusual for me not to make everything open, and I do feel bad/conflicted about it. But, unusually, I feel like I have identified a possible route to monetising this, and I think open-sourcing all of it risks making that harder.
If monetization is at odds with open-source, why wouldn't potential customers just wouldn't go to VueScan, as someone posted? I was recently looking at scanners, and saw some brands directly advertise Linux support through this... which means you now have to pay subscription each year to access the expensive hardware you bought.
Thankfully the Avision FB5100 states native Linux support (AFAIK, this is the only flatbed A3 scanner that does), so I'm certainly going to buy this one. I know implementing device support for companies that don't make any effort is hard and thankless, but then we need to divest/invest in the right companies and solutions.
Sorry, it's me who needs a reading comprehension lessons. I've read back in printervention website and now again that you didn't open the code that you HAVE to. Because you're apologizing for that, I assumed that you're breaking the license, twice.
After rereading both of your websites again, I should say you've nothing wrong! It's sleepy me who accused you for nothing, sorry.
Linux printing and scanning stack is held on 5 enthusiasts basically, and is quite buggy. Any contributions welcome.
If you want to further improve your project, make it small and fast, you can compile printer filters (most of which work on cups-raster data) with emscripten. This way you don't need to use CUPS, Linux, and x86 emulation. You'll need to write some shims for CUPS libppd functions which many filters use (some don't), and either parse PPD files or convert them into another representation.
Most filters (drivers) are quite simple pipes from stdin to stdout, sometimes they don't use cups functions at all, receiving all the data directly from raster header. Some filters, such as gutenprint, are more complex and use their own backends, but even in this case it's not a hard task: libusb has emscripten WebUSB backend.