mediasoup-client icon indicating copy to clipboard operation
mediasoup-client copied to clipboard

ua-parser-js will change license to AGPL

Open shinyoshiaki opened this issue 2 years ago • 3 comments

Thank you for releasing this wonderful library.

No need to respond now, but please note that inadvertently raising the version to 2.0 will result in AGPL restrictions.

https://github.com/faisalman/ua-parser-js/issues/680

shinyoshiaki avatar Oct 30 '23 11:10 shinyoshiaki

Thanks. I don't need we need to make changes to the library so we are ok, and if we did we would create PR to mainstream project anyway.

ibc avatar Oct 30 '23 13:10 ibc

Thanks. I don't need we need to make changes to the library so we are ok

It'd only be the case if it was licensed in something like LGPL, but this is AGPL. This makes mediasoup-client incompatible with any projects that don't disclose their source code, because of its viral nature. Usually you'd be bundling dependencies with mediasoup-client (since it is required on runtime) - and once that happens, ALL the code must be licensed/compatible under the AGPL 3.0 and must disclose its source code if distributed (even if served from a website, due to the AGPL part of it), since it is considered a "combined work".

mediasoup-client has thus been legally risky to use in such situations since version 3.7.18.

So if you want to be safe, either stick to ua-parser-js's 1.x, or switch to another dependency for UA detection.

See the discussion on https://github.com/faisalman/ua-parser-js/issues/680#issuecomment-2581985063 for more information.

Also from https://snyk.io/articles/agpl-license/#closed:

The AGPL V3 license is a strong copyleft license that enforces open source on all components derived from any previous work. It closes the server-side loophole, where the source code isn’t made available if the software isn’t released. AGPL defines a user as anyone who accesses the server-side application if it is public-facing.


Obligatory disclaimer, I am not a lawyer, etc. - but this situation restricts my ability to use mediasoup-client on its more recent versions.

jeda avatar May 29 '25 14:05 jeda

I am reopening this ticket and will come back to it eventually.

Sticking to ua-parser-js 1.x means that we have a worse browser detection plus things like this (https://github.com/versatica/mediasoup-client/pull/324) wouldn't be possible and should be removed.

AFAIK there is no other proper and maintained UA detection library out there. I know there are many others, but they are not maintained which is a big concern nowadays given all those new devices and browser engines in iOS, etc.

Being completely honest, I would like to get rid of the browser detection feature in mediasoup-client, but that would produce many headaches probably.

ibc avatar Jun 20 '25 09:06 ibc

Good news is that bowser seems to be maintained again (however there are no commits improving device detection), and I've also found browser-dtector (haven't tested it).

ibc avatar Aug 29 '25 15:08 ibc

Done here: https://github.com/versatica/mediasoup-client/pull/339

ibc avatar Aug 31 '25 13:08 ibc