steam-audio
steam-audio copied to clipboard
Releasing the Library as Open Source
First off, thanks for releasing this product, it's great to see a first class free cross platform audio library! However, similar to other projects in the ValveSoftware org (OpenVR, vogl, Source SDK, etc.) that come bundled with source code, it would be great to see steam-audio released with source code, not only the binaries and headers.
This would allow the community to provide patches for bugs, submit PRs for providing additional functionality, and help out with porting to other platforms. I'm not sure if this is on the roadmap at all for the library or if there are licensing issues involved preventing this.
This would be great :)
it would be great to see steam-audio released with source code, not only the binaries and headers.
And don't forget that it must be release under a libre/open source license, otherwise it wouldn't be much a progress.
MIT or Apache 2.0 would be nice.
If Valve decides to open source it, they should already have a favorite license.
Just out of curiosity (sorry for the noise as it's probably not contributing much to this issue):
-
what are the characteristics of the MIT or Apache 2.0 licenses that make you prefer them? (this also increases the chances of seeing your request fulfilled)
-
would the LGPL (the first L is very important) by also "nice"?
@tuxayo not one of the above but most of the stuff I do is either MIT, ISC or similar licenses. With libraries that also fall under that general umbrella I can import them without much of an issue and not have to worry about licensing. With (L)GPL or similar licenses, I need to start putting more effort into exactly how I link, whether I can just staticly provide the lib as part of the src download and other sorts of things.
MIT, ISC and similar I can deal with no problem and don't need to think about, (L)GPL and similar I tend to shy away from so I don't need to spend a great deal of time worrying about licensing and exactly what I can and can't do with my code.
It is also worth noting that Most game engines Unreal, Cry Engine, Lumberyard, Godot, Torque3D, Xenko, Atomic Game Engine, etc. MIT or Apache 2.0 would be compatible with these engines. Most open source game engines are compatible with the MIT license and Apache 2.0 License.
LGPL or GPL would be the kiss of death for Steam audio.
Phonon is a shared library that can be normally linked and all. I don't see what's the problem with LGPL.
@mirh I think this issue's idea is to open source that library. That would mean it's no longer a must to use it as a linked library, in which case it means all the points against LGPL above are still valid.
Putting aside that LGPL software can also be statically linked in proprietary one (with some precautions).. Then keep it shared if you can/want/whatever?
Part of the issue with LGPL would be porting Steam Audio to game consoles. If I'm not mistaken, developers have to sign an NDA to develop for them, meaning if a game developer did their own port of Steam Audio to, say, the PS4, they wouldn't be able to make the source code public, and would then be in violation of the LGPL.
Other audio middleware requires game developers to prove they are authorized Microsoft/Sony/Nintendo developers to get access to the Xbox/PlayStation/Whatever version so that the middleware developer isn't in violation of their NDA.
It's easier to have a non-viral open license, for these and other reasons.
I'm not sure you have understood what linking is. LGPL isn't viral, it's just defending itself and only. But I guess we already discussed enough for everybody in charge to decide then.
But consider the changes you would have to make to Steam Audio to port it to the PS4 or Xbox One or whatever. The LGPL would require you to make those changes public, but the NDA you would've signed with Sony/Microsoft/Nintendo would prohibit you from doing this.
And this would apply to Valve as well. If they ported Steam Audio to consoles, even if the rest of the code was open source and hosted on GitHub, they'd have to keep each console port separate and private, and only share them with developers who could prove they were approved by Sony/Microsoft/Nintendo (like what happens with Unity and fmod).
edit: so the LGPL isn't viral in the same way the regular GPL is, but it still makes porting it to certain desirable platforms a non-starter.
edit: so the LGPL isn't viral in the same way the regular GPL is, but it still makes porting it to certain desirable platforms a non-starter.
So for the whole time you were talking about something you didn't even know? What you or the other people thought the L stood for? Just stallman having fun of acronyms to confuse? And again, if you see there is a difference, and perhaps you figured out what linking is, what's then? Did you know ps4 ships with a lot of LGPL stuff?
@mirh That edit is just a tl;dr.
@DanielOaks
With (L)GPL or similar licenses, I need to start putting more effort into exactly how I link, whether I can just staticly provide the lib as part of the src download and other sorts of things.
I tend to shy away from so I don't need to spend a great deal of time worrying about licensing and exactly what I can and can't do with my code.
Aren't these concerns only valid for the GPL and not the LGPL?
@HeadClot
[...] MIT or Apache 2.0 would be compatible with these engines. [...] LGPL or GPL would be the kiss of death for Steam audio.
Why would the LGPL be incompatible with these engines? (for the after-mentioned reasons, or others?)
@sridenour Thanks for bringing the point with console NDA's, what a terrible industry, another reason to stay away from such closed platforms :-( That's indeed a no go to choose a copyleft license (whether it's strong or weak)
@mirh
Did you know ps4 ships with a lot of LGPL stuff?
Was any game dev able to use an LGPL lib ? That's what matters, Sony can do whatever they want (using LGPL libs and giving their source code). But if they impose an NDA to game devs that prevents that, then that's the issue we are talking about.
Thanks all for your interesting answers :)
LGPL is good because it prevents console gaming.
in other words, if you want ppl to use Steam instead of consoles, go with LGPL. ;)
The library was released to open source! https://steamcommunity.com/games/596420/announcements/detail/7745698166044243233
@lakulish, one question: would the Steam Audio team switch developing to GitHub or you will still develop in the internal Perforce repository? Switching to GitHub would allow other people from the community to see what's being worked on. That will reduce situations where someone decided to help solve some issue from the Issues page and submitted a pull request, but the issue was already fixed internally.
Thanks for releasing this as open source, Valve! I can't believe I now finally get to close this issue from 2017!
@Xottab-DUTY We do plan to move to developing in GitHub (for the reasons you mentioned, among others), but there will be a transition period while we migrate our CI systems and other infrastructure from our Perforce-based systems to GitHub. During this transition period, we may continue to do some work in Perforce.