I am an OpenWRT user for a decade, and have been asked for help by a software team.
They have a modified OpenWRT build that adds bandwidth shaping and smartphone controls to OpenWRT. It is running well on five different devices. Their product is more to generate interest, it is redistributable freely (as in no cost).
The changes fall into two parts:
A kernel module (this is a binary, closed source)
A userspace package (this can be open-sourced, I think)
How can they upstream this? I see some proprietary drivers in the tree, so presumably it is feasible.
Ideally, they could contribute the blob and a GPL shim into the tree. Would this be acceptable?
The alternative is a build farm that tracks master, and churns out images for all targets. This risks fragmenting the OpenWRT name.
No. OpenWRT is free software and have complete source code.
It's against GPL and project principles.
PS: I forgot - OpenWRT works on many architectures like MIPS 24KEc, MIPS 34Kc, Dualcore MIPS 1004Kc, few ARMs and few x86s. I think that will be hard for you to provide blobs for all architectures.
That was my first impression, too. But I see binary blobs for drivers in the code.
Yes, and I assume that on some targets, it may not be feasible technically to do the traffic shaping, either. So the new builds would be only for a subset of routers.