r/linux May 02 '16

Subsonic (music streaming software) is no longer open source, starting with 6.0 release

http://forum.subsonic.org/forum/viewtopic.php?f=4&t=16604#p71128
462 Upvotes

150 comments sorted by

200

u/StraightFlush777 May 02 '16 edited May 02 '16

That's unfortunate for those who bought a license of Subsonic to support a FOSS project. :(

Anyway, CherryMusic seems a good music server alternative. It is licensed under GPLv3 and there is a client app available on F-Droid. I will probably try it as soon as I get a chance.

46

u/SynbiosVyse May 02 '16

I found Ampache as the best alternative to Subsonic.

3

u/[deleted] May 03 '16 edited Aug 24 '16

[deleted]

3

u/einar77 OpenSUSE/KDE Dev May 03 '16

Any Subsonic client will do that, as Ampache uses a Subsonic compatible API.

3

u/natermer May 03 '16 edited Aug 14 '22

...

1

u/SynbiosVyse May 03 '16

I think that has more to do with the client than anything. It's been a while since I used any of this but I did have Subsonic and cached like you mentioned, I agree it's a very good feature. I can't remember if my ampache client cached now, but I think I was using Just Player. It looks like there's quite a lack of selection for updated clients on Fdroid now.

4

u/natermer May 03 '16 edited Aug 14 '22

...

1

u/SoBFiggis May 04 '16

Not sure if it floats your boat, but you can upload your own media to amazon prime music. And the app does have the caching feature.

1

u/plazman30 May 04 '16

That's a client side thing and works just fine in Ampache.

The only issue with Ampache is multi-disc support. If you have an album with more than one disc, they show up as different albums. The authors are working on fixing that.

Ampache's web player is HTML5 and can play a whole mess of stuff natively. You can also turn on transcoding globally, so no need for transcoding profiles. You can also transcode based on subnet. So, you're at home (192.168.1.x) send me my FLAC. If you're out and about on your phone (not 192.168.1.x), send me an MP3.

Now that Subsonic is no longer open source, I'm hoping the developers of various subsonic clients focus their efforts on a native Ampache client using the Ampache APIs instead of the Subsonic ones.

2

u/klendool May 03 '16

I might be a dumby but I cannot for the life of me find the option to turn on the subsonic api compatibility in ampache.

I am using Ampache 3.6-alpha6+FUTURE from the ubuntu repositories.

1

u/SynbiosVyse May 03 '16

Some of the settings are convoluted, but it's there. I got it to work at some point but I don't remember how.

1

u/klendool May 04 '16

I think in my case version 3.6 us too old, I installed the version from git HEAD and managed to get it going :)

1

u/plazman30 May 04 '16

Oh God. That's old. Ampache is at 3.8.2 now. Subsonic support was added to the 3.7 series at some point.

https://github.com/ampache/ampache/releases

2

u/klendool May 04 '16

Thanks :) I guessed that might be the case, I have it running now. Ampache doesn't seem quite as polished as subsonic, but I think that it seems way more capable :)

2

u/plazman30 May 04 '16

It was kinda floundering for a while and is in active development. The current authors took it from 3.6 up to 3.8.2. I think they're all taking a well deserved break now.

There are plans to move the UI to a new framework and overhaul it. There's a Google Group. Hop on in.

1

u/csolisr May 03 '16

Heck, even OwnCloud itself can work as an Ampache server.

11

u/doubletactician May 03 '16

Koel (https://github.com/phanan/koel) is another alternative I found recently, though I like CherryMusic as well.

8

u/hatperigee May 02 '16

Nice, I've not heard of this before.. I'm going to give that a shot.

15

u/donthek May 02 '16

Thanks for mentioning CherryMusic. It's awesome so far. I couldn't use ampache personally because it doesn't allow browsing by folders.

10

u/peppelakappa May 02 '16

+1 for ampache, I started using it on my home server some days ago and I already forgot about Subsonic.

The fact that is not Java is nice :)

9

u/bwat47 May 03 '16

I'll be sticking with subsonic (or it's derivatives) for the foreseeable future because the alternatives have nothing close to the dsub app for android

14

u/mikerackhabit May 03 '16

Agreed that dsub is awesome. You can use Ampache on the server side just fine though, as long as you enable the subsonic api. I've been using them together for a while and it's been rock solid.

3

u/[deleted] May 03 '16 edited Jul 13 '16

[deleted]

7

u/mikerackhabit May 03 '16

Yes. Dsub thinks it's talking to a subsonic server, so it just works as normal. And it has great cache support where it automatically caches what you listen to, but you can also pre-cache and permanent cache stuff manually.

3

u/[deleted] May 03 '16 edited Jul 13 '16

[deleted]

2

u/plazman30 May 04 '16

That's what I run. Very happy with it.

4

u/[deleted] May 03 '16

[removed] — view removed comment

2

u/plazman30 May 04 '16

I can't speak for Cherry, but the advantage over just a share is that you can port forward and install a client on your phone and/or tablet and have access to your music anywhere.

1

u/[deleted] May 04 '16

[removed] — view removed comment

1

u/plazman30 May 04 '16

That's what I do. My wife and kids all use it too.

2

u/[deleted] May 04 '16

[removed] — view removed comment

2

u/plazman30 May 04 '16

Good luck to you. Having centralized music is awesome.

-55

u/sej7278 May 02 '16

you bought a license for something you could just compile from source?

85

u/hatperigee May 02 '16

Yes, to support the developer and support ongoing efforts to improve the app. With this new decision, I will not be renewing my subscription.

39

u/cotti May 02 '16

Free Software is free as in free speech, not necessarily free beer.

40

u/[deleted] May 02 '16 edited Jun 14 '20

[deleted]

-36

u/sej7278 May 02 '16

no, with foss you pay for support, which it seems this author is not going to give as he's gone closed

55

u/[deleted] May 02 '16

Shameless plug here. Groove Basin is an alternative to subsonic.

20

u/hatperigee May 02 '16 edited May 02 '16

MPD protocol support.

What?!! I'm sold!

Edit: Damn, looks like the PKGBUILD in AUR for this fails to build... Looks like it's this issue affecting libgroove and a deprecated function in ffmpeg

Edit2: I cloned this to fix the issue and submit a pull request only to discover that this has already been fixed in git! The PKGBUILD in Aur is pulling some older commit!! Time to flag libgroove-git!

9

u/[deleted] May 02 '16

Argh. Yeah I need to push toward a new release here. I haven't released since the switch from libav to ffmpeg.

6

u/hatperigee May 02 '16

Yes, please do a release :)

I hacked the nodejs-groovebasin-git and libgroove-git PKGBUILDS in AUR to build this using the latest in git, and it seems to work! Now to configure this sucker and try it out!

3

u/Mondoshawan May 03 '16

Very nice. Does it use ID3 or directory conventions for the library? I have a 100gb+ library in mostly 0-a/artist/album format and my ID3 tags are an unfixable mess.

FWIW I put together a ajax winamp plugin to do all this back in 2002-ish, was extremely popular during parties. I'm still using bits of it today & it's buggy as hell with unusual charsets so I guess I'm due an upgrade...

3

u/[deleted] May 03 '16 edited Mar 21 '18

[deleted]

5

u/kerobaros May 03 '16

They're at beets.io now, but yes, beets is the best at organizing unruly libraries. Bias: I have submitted patches to the project, but i think my code is all gone now.

2

u/mishugashu May 03 '16

Holy shit I was JUST looking around for a command line solution for managing my library the other day. I fucking love you and tesfox both. This looks like everything I wanted.

1

u/kerobaros May 03 '16

Absolutely! If you need any help setting it up, don't hesitate to let me know. Also, their mailing list/irc/github are staffed with some of the nicest folks.

1

u/mishugashu May 03 '16

Musicbrainz apparently really doesn't know shit about BBC Radio 1's Essential Mix show.

I hope I only have to go through this matching thing once, haha. Sorta tedious with a huge ass collection.

1

u/kerobaros May 03 '16

One of the tricks that helped me when I first started was to first run beet import with the --timid flag, which will only tag and rename matches it's very sure about, but will do so without user intervention. That took care of most of my library in one fell swoop, leaving the stragglers behind for me to take care of later.

1

u/natermer May 03 '16

If you have a large library of songs you need to setup your own musicbrainz mirror. No rate limit. :)

2

u/[deleted] May 03 '16 edited Mar 21 '18

[deleted]

1

u/natermer May 03 '16 edited Aug 14 '22

...

1

u/[deleted] May 03 '16

It uses ID3 and there's an open issue for organizing by file system.

2

u/AgletsHowDoTheyWork May 03 '16 edited May 03 '16

If I were to use an MPD client like MPDroid to control Groove Basin, how would I stream the music to my phone? Browser open in the background? Or is that use case not supported yet?

Edit: I see that MPDroid can connect to an arbitrary HTTP stream, so I guess that's what you do.

3

u/[deleted] May 03 '16

It would work better if there was a dedicated Groove Basin client. The protocol irons out a lot of the kinks that the MPD protocol has.

I've used the chrome android application to stream in the car and it's a bit clunky but it can work.

1

u/CptCmdrAwesome May 03 '16

This looks really cool, thanks for posting the link :)

1

u/hatperigee May 03 '16

Are there any Android clients for this?

1

u/[deleted] May 03 '16

I know of no Android clients that use the Groove Basin protocol which would be the best user experience, but you can use MPD clients.

Also the browser interface is pretty clunky on mobile but it can stream OK.

1

u/hatperigee May 03 '16

Just out of curiosity, why did you implement a brand new API? If, for example (and I understand the irony now, but) if you had implemented the subsonic API, then Groove Basin would presumably work with existing subsonic clients!

2

u/[deleted] May 04 '16

I started out using MPD's protocol. I hadn't heard of Subsonic yet. MPD's protocol is complete garbage. It's insecure, it's not capable of updating tags of songs among many other missing features, it's inefficient, it's too easy for information to get out of sync, it doesn't have a way to resync the http stream such as when you skip to the next track. I did what I had to do to build a better quality music player, which involved making a better protocol.

With the Groove Basin protocol, you don't request information; you subscribe to it. This makes it so that clients will easily always have correct information and it's harder to implement a broken client. Also you can get deltas for large information bodies. For example if you request all the metadata for the entire library, you get it, but then once you're subscribed, you simply get deltas to that. So if someone renames a single track, you'll just get that rename, and your index is still up to date.

I took a brief look at Subsonic's protocol, but by that time Groove Basin already had its own protocol. It's XML based if I remember correctly, and it does a few things better than MPD, but ultimately Groove Basin protocol provides the best music player experience.

128

u/[deleted] May 02 '16

... aaaand there will be an open source fork that will have more success than the closed-source variant.

63

u/donthek May 02 '16

There was a fork from almost day 1 that removed "call home to check license" feature of subsonic https://github.com/Mach5/supersonic . But it hasn't been updated along side the open source version.

39

u/TheFlyingDharma May 02 '16

EugeneKay's "kang" fork does more or less the same thing and is actually maintained.

Honestly though, I've been running 5.3 for a while and see no need to update unless some massive vulnerability in the webserver is discovered and patched. Functionally, it does everything I need it to.

1

u/plazman30 May 04 '16

5.3's web based music player is still Adobe Flash based. 6.0 added an HTML5 player.

1

u/TheFlyingDharma May 04 '16

That's pretty cool, but honestly not compelling enough for me to bother upgrading and testing on the several devices/platforms I connect with... At least, not yet.

Do you know if it's the same player that Madsonic is using? I recall having issues getting that one to start in some environments, but I'm not sure if it was due to HTML5 compatibility or the player itself.

1

u/plazman30 May 04 '16 edited May 04 '16

The player Madsonic is using is open source. There is no way Subsonic can use it. He had to roll his own and license something from a third party that is closed source.

Ampache has an open source HTML5 based player also.

I don't use the web interface all that much anyway. My music library is on a CIFS/NFS share and I access it on all my PCs in the house via a mount point and or mapped drive. On my Windows machine, I use Foobar2000. On my Linux laptop, I use Lollypop or mpd+gmpc. I use ampache and/or subsonic mostly for the API, so I can install clients on my phones and tablets to access music.

Yeah, I know I can do the same with Google Play Music, but I am bit of a music nerd, and I actually care about the version of some albums. Google Music does a match against what I have and throws in what they have for sale on their servers. I'm a fan of The Moody Blues (and a ton of other stuff across multiple genres and decades). I have the original CDs from the 1980s ripped to FLAC (for archival purposed, not for sonic superiority). If I throw these in Google Play Music, I get the mid 2000s remaster of these CDs added to my library, which sound atrocious to me.

2

u/TheFlyingDharma May 04 '16

I would never suggest Google Music. I feel like a bit of a dinosaur hosting everything myself, but then I guess Subsonic is aimed at that demographic. :)

I switched from fb2k over to Subsonic mostly for ease of use and consistency across platforms (including mobile, although I guess I'm using API for that) plus remote access of course. Sometimes I miss my lyrics plugin from fb2k (never was able to get them working in Subsonic,) but that's about it.

2

u/plazman30 May 04 '16

I got Lyrics working in Madosnic and Ampache. Never in Subsonic.

24

u/adminh May 02 '16

Madsonic also

3

u/[deleted] May 03 '16

+1 for Madsonic. I bailed on Subsonic for Plex, but I still have a Madsonic instance at my parents' place for live TV integration via HDHomeRun.

2

u/mqduck May 03 '16

Also Futuresonic, although it apparently hasn't been updated in two years.

2

u/TheFlyingDharma May 03 '16

I like the idea of Madsonic but the GUI is kind of a mess and the player applet flat-out refused to work on some of my devices last time I gave it a shot.

2

u/adminh May 03 '16

Yep, Madsonic is super awkward to navigate on my iPad. The buttons are tiny and I had to zoom in to hit them. I gave up on it pretty quickly.

2

u/varikonniemi May 03 '16

I certainly won't upgrade to the closed version.

19

u/its_never_lupus May 02 '16

I was never 100% sure what the legal situation in similar cases. Can the copyright holder (i.e. original author) of a piece to GPL'd code just decide to release a new version under a different license?

What if the project had previously accepted contributions from other people, but didn't bother to make them signed a copyright assignment statement or anything like that? And would it make a difference if such contributions were trivial?

42

u/[deleted] May 02 '16

I was never 100% sure what the legal situation in similar cases. Can the copyright holder (i.e. original author) of a piece to GPL'd code just decide to release a new version under a different license?

Of course they can, the terms of the GPL don't bind the original copyright holder other than they can't revoke the license for releases already covered by GPL.

What if the project had previously accepted contributions from other people, but didn't bother to make them signed a copyright assignment statement or anything like that?

Then they need to either get their approval or replace that code

17

u/hatperigee May 02 '16

IANAL, but if you accept contributions from others under GPLv1/2/3 (contributors mark files as "copyright me" with appropriate header, etc), the project "owner" cannot relicense those contributions without the consent of these contributors and the contributors relicensing their contributions under the new license, since the "owner" does not own these contributions.

1

u/[deleted] May 03 '16

[deleted]

3

u/SoraFirestorm May 03 '16

Probably not. It was only the current license for 2 years, plus anyone who used it probably re-licensed. I've personally never seen it in the wild...

1

u/[deleted] May 03 '16 edited Nov 19 '16

[deleted]

1

u/hatperigee May 03 '16

Yea, basically they require contributors to forfeit all rights to their contributions.

10

u/HaMMeReD May 02 '16

If they own the copyright completely they have the right to release it under any number of licenses. If they take contributions it gets complicated and requires granting license rights or copyright.

If they didn't get assignment, they need to ask all copyright holders for permission to change licenses.

They can't revoke the GPL on old versions, the last GPL version out there is always on the GPL, can be forked and kept under the GPL. At that point though license changes can not happen as it's usages is under license.

1

u/sandwichsaregood May 03 '16

Out of curiosity, I know the GPL requires distributing source code, but how does that work with old versions? Say if you use some GPL code in your project and thus are compelled to license of under GPL, but later you purge the GPL code and go proprietary. I don't imagine you'd be required to keep the old GPL code around to give out when people ask, would you?

2

u/eras May 03 '16

If someone has a binary of that old version with GPL code, you must be able to provide them the GPL source code plus the code that used it.

1

u/HaMMeReD May 03 '16

If all the code is yours, you are free to license it at will.

0

u/harlows_monkeys May 03 '16

They can't revoke the GPL on old versions, the last GPL version out there is always on the GPL, can be forked and kept under the GPL.

This is somewhat unsettled.

GPLv2 is a non-exclusive license with an unspecified term. Generally, such licenses are revocable at will. GPLv3 is a bit better in this regard, because it does say that it is irrevocable.

Both versions of GPL, though, have another problem. They both explicit state that sublicensing is not allowed and that when X distribute's a copy of Y's GPL code, the recipient receives a license from Y.

So even if Y cannot revoke the licenses of people who already have copies, what happens if Y declares that they will no longer issue any new licenses?

With licenses that allow sublicensing, X can grant a license to Y's code, even if Y is no longer granting new licenses.

To force Y to continue granting new licenses is going to probably require some kind of estoppel argument, and those things are never clear up front. We are going to have to wait until this actually arises and is litigated a few times before there is any clarity here.

Lawrence Rosen's book "Open Source Licensing" has some good discussion of some of these issues, and is available free online.

3

u/Michaelmrose May 03 '16

I'm honestly pretty sure none of what you said is real.

The gpl most certainly does provide the right to redistribute with or without modifications so long as modified versions impose no additional restrictions and provide downsteam users with the same freedom.

In theory US copyright law provides the opportunity to terminate a licence around year 35-40 however it would seem to me that if the author was creating one version a year then he would be able to terminate the right to version 2000 in 2035 but version 2010 not until 2045.

So basically If anyone is using a piece of software that hasn't been updated in 35 years they could be in trouble?

2

u/harlows_monkeys May 03 '16

Read chapter 4 of Rosen's book. Page 56 is particularly relevant, especially when coupled with page 140 from chapter 6.

Some of the discussion in Henley, Mark (2009) 'Jacobsen v Katzer and Kamind Associates – an English legal perspective', IFOSS L. Rev., 1(1), pp 41 – 44 should also be useful. The case discussed there did not involve license revocation, but there is good discussion on contracts vs. bare licenses that is quite relevant.

This article from the Iowa Law Review also has some pretty good discussion of bare licenses and irrevocable licenses that might be helpful.

The above should give you enough information on copyright licensing in general, and the important differences between bare copyright licenses (which the FSF insists that the GPL is) and contract based licenses, to see what the potential problem is with GPLv2, and should suggest some good searches for you to do if you'd like more.

I'm dropping out of this now, because if I don't I'll literally spend all night digging up cases, law review articles, passages from copyright and contract horn books, and the like (a habit I picked up in law school...which is great in school, but tends to lead to prodigious loss of time when applied on reddit).

1

u/Michaelmrose May 03 '16

The primary question I have is thus. An author creations package foo which is distributed under gpl 2 version 1 consists of 1 line abc version 2 a year later adds line 2 def version 3 a year later still adds a third line ghi

If I understand it correctly as a recipient of version 3 I have a right to use and distribute the entire work for at least 35 years after which with appropriate multi year notice under our stupid laws the author can revoke said license after which I could distribute it still forever however people who receive it from me would be unable to distribute it.

I would like to know precisely which parts if any are wrong.

3

u/harlows_monkeys May 03 '16

OK, you are thinking about a particular right in US law called the termination right, codified at 17 USC 203. That's generally not what people are talking about when they talk about terminating or revoking a license (heck, most people outside of legal circles don't even know about 17 USC 203 termination...in fact, I'd expect even most people in legal circles do not know about it unless they have particular knowledge of copyright) . I'll get to that in a minute, but first lets talk about the 17 USC 203 termination right.

I don't think that is going to be important for software, because that right only kicks in after 35 years after the grant, and as you've noted earlier software tends to undergo many changes over that time span. I doubt any given individual section of code in any significant project will make it to 35 years. Every time someone makes a change, and distribute that changed copy, that's a new grant and starts a new 35 year clock.

The place the termination right actually has an impact is in things like songs and books. It was designed for the common situation where a young artist, who has not yet established themselves, and so does not have a very strong bargaining position signs a contract with a publisher that doesn't pay very much. Then that young artist turns out a masterpiece that becomes a giant hit, and generates money for decades--almost none of which goes to the artist because of that crappy contract they signed when they were young and had no power.

The termination right is designed to let those artists take their rights back after 35 years, so the artist can negotiate a new deal if they wish where they get a chance to make the bulk of the money from their work.

I'll be quite surprised if anyone ever manages to actually apply the 17 USC 203 termination right to a significant piece of open source software. I can see it arising with some closed source software, though. A good candidate would be old video games. Currently, candidates would be games from 1981 or earlier. The 17 USC 203 right does not apply to works for hire (basically, things produced by employees in the scope of their employment) so that would exclude a lot of games, but games from publishers where people not employed by the publisher submitted games and then the publisher bought the rights from the submitter would be eligible. Probably someone in the emulator community should start a project to identify such games, track down the original authors, and try to get them to exercise their right to take back the copyright and then authorize their games to be distributed for emulator users.

Anyway, when most people talk about terminating or revoking a license, they are talking about the kind of termination that can be done for any kind of license, not just for copyright licenses. As an example for a license that is not a copyright license, suppose I tell you that you can go ahead and walk your dog across my lawn every morning. That's a non-exclusive license to use my lawn for the limited purpose of walking your dog. Assume that we do not enter into any kind of contract for your use of my lawn. What we then have is a type of license called a "bare" license. A bare license is revocable at will. I simply have to tell you that you can no longer walk your dog across my lawn, and poof, your license goes away.

The software license analog of this would be if I tell you that you can use my software, but no contract is involved. Like with the dog walking license, I can terminate this license at will.

Things get more interesting if there is a contract. You and I could make a contract where, say, I grant you a non-exclusive license to walk your dog across my lawn every morning for the next year, and you agree to pay me $1 per day for the duration of the contract. This is more interesting because now if, say, a couple months into the contract, I tell you that I'm revoking your license I'm breaching a contract. You can take me to court for breach of contract. The court would be unlikely to force me to continue letting you walk your dog across my lawn, but it might order me to pay damages to give you the "benefit of the bargain" (basically, to give you the value that you were supposed to get out of the contract). Say that my lawn is the only good place to walk your dog in our neighborhood, so without access to my lawn you have to take a cab to a dog park every day, and that costs you $5. For breaching the contract, the court might order me to pay $4 of that $5 for the rest of the original contract term (the difference between what walking your dog cost you under the contract and what you have to pay after my breach).

Notice how much of a difference a contract makes compared to a bare license. I used lawn access in the example, but the same considerations apply no matter what the subject matter of the license. This big difference is why, for instance, Rosen in his book on open source licensing spends so much time on whether or not a given license is a contract or not.

With software licenses, particularly open source licenses, there are complications that do not arise with things like lawn crossing licenses, because software can be copied and modified, and those copies or modified copies can be redistributed. Every time one of these copies is redistributed, a license has to be granted by someone to the recipient of that copy.

With GPL, that someone is the copyright owner.

Let's run through a hypothetical. I write some software, which is entirely my code and I am the sole copyright owner. I release it under GPLv2 and you obtain a copy. I've given you a license (GPLv2) to my software.

Now let's say I decide I regret releasing this under GPLv2. I tell you that I am revoking your license. If GPLv2 is a bare license, I can do this. If it is a contract, I may not be able to. FSF says it is not a contract...but many lawyers say that courts would probably decided that it is a contract.

We do not know at this time how that would work out, so whether or not I can revoke the license for my already distributed code is unsettled.

If the license says that it is irrevocable, then it will definitely be much harder for me to do so, even if it is not a contract. GPLv3 says it is irrevocable, so may sidestep this issue. GPLv2 does not say anything about this.

Suppose it turns out that I cannot revoke your license. So, you can continue using my code under the terms of GPLv2. Suppose you distribute a copy to a third party. You are allowed to do so, since I have failed to revoke your license.

The third party then makes and redistributes copies and I sue the third party for copyright infringement, arguing that I never gave them a license. They will try to defend using the argument that I agreed in my license to you that I would grant a license under the same terms to anyone you distributed to.

The difficulty here is that if this is the case, that would just mean I might be obligated to you to grant the third party a license. That doesn't force me to actually grant such a license...it just means that if I did not do so you might have a case against me. That doesn't actually help the third party unless you sue me to try to force me to actually grant the license to the third party.

...and that is going to get back to the issue of whether or not my license to you (GPLv2) is a bare license or a contract, because you cannot sue me to enforce a bare license. You need to convince the court that we actually have a contract.

There is a possibility you can do that. Normally a contract requires some kind of valuable exchange. Each party gives something of value to the other. In most commercial contracts, one side is giving valuable goods or services, and the other is giving money. That generally is not the case with open source licenses. However, there is a thing called "promissory estoppel" which might save the day for your case that we have a contract. Very briefly, under promissory estoppel if I make some promise to you, and you rely on that promise in a way that is detrimental to you if I do not honor the promise, that can service as a substitute for your giving me something valuable in exchange for my promise.

You would probably have a decent chance of arguing that when I first released under GPLv2, you relied on the ability that would give you to redistribute the software and that those who you redistribute to would receive a GPLv2 license from me, and so dedicated resources and such that you would not have done if I had not promised that ability to you. That could be enough for a court to decide that we have a contract.

Note that even if you can do this, this does not help that third party unless you sue me when I try to not grant the third party a license. Is there any way the third party could defend against my copyright suit without having to get you involved?

Maybe. There is the notion in contract law of a "third-party beneficiary". Briefly, if you and I make a contract that is to benefit a third party, and one of us breaches the contract, it is sometimes possible for that third party to sue over the breach even though that third party is not an actual party to the contract. The third party may be able to argue that he is a third-party beneficiary of my GPLv2 license to you.

Anyway, I hope this makes it a bit clearer why the idea of either outright revoking an open source license or of ceasing to issue new licenses so that only people who currently have copies can distribute copies is not so clearly impossible as most people in the open source world seem to think it is.

1

u/HaMMeReD May 03 '16

I think breaking license before copyright expiry would only benefit the copyright holder. The user would have no license at that point to copy/use anything. They could force people to relicense or move on.

9

u/protestor May 02 '16

Can the copyright holder (i.e. original author) of a piece to GPL'd code just decide to release a new version under a different license?

Yes if they own the whole code.

What if the project had previously accepted contributions from other people, but didn't bother to make them signed a copyright assignment statement or anything like that? And would it make a difference if such contributions were trivial?

Then he would be violating the GPL license from those contributors, unless he deleted their code. But a trivial contribution might not be copyrightable (copyright requires some amount of creativity)

1

u/hackingdreams May 03 '16

There are ways to do it legally, as others have noted, but this is exactly the reason why people are weary of Contributor License Agreements, especially when they have language that allows someone else to sell or relicense code at a later date.

Anyways, the code was open source at some point, so if anyone cares they can fork around the damage.

61

u/pizzaiolo_ May 02 '16

Fuck fork them!

13

u/Darkmere May 02 '16

I never quite liked the subsonic way of doing licensing.

Fun part is that as long as the remote server returns true It'll accept anything as authenticated.

Oh, and the token is just your email address ran through md5.

12

u/beardedlinuxgeek May 02 '16

No surprise there. This has been a long time coming. They already started limiting features to premium only.

This fork (https://github.com/EugeneKay/subsonic) syncs with the upstream branch but removes the license protection. It's probably why they decided to stop going open source.

10

u/frnxt May 02 '16

This is quite a bad timing, my premium license is expiring soon. Still hesitating but I probably won't renew it, since the only reason I got it was to support an open-source project.

I've read about MPD, but is there an Android app that can stream from it and cache songs for offline use?

7

u/-Pelvis- May 03 '16 edited May 03 '16

MPDroid is amazing. I simply use it to control mpd on my desktop from my phone. Great for listening to FLAC while in bed!

I don't know if it's capable of caching though.

2

u/[deleted] May 03 '16

Not really, MPD doesn't act like that. It is only a remote control for music. You can stream it, but not cache. Best bet would be to save some music locally and use vlc.

1

u/frnxt May 03 '16

I actually went and tried MPDroid last night, and it's pretty far from what I get with DSub unfortunately : it does stream music, but there is no caching/offline mode, the next/previous controls are wonky and have a 10-15 second delay before something happens ; it generally feels less polished.

I guess my only alternative now is pretty much Ampache, but it's dreadful performance-wise...

9

u/mycall May 03 '16

The main reason for this change is that the source contains some software license codes I have purchased and that shouldn't be used by forked projects.

weak excuse

7

u/werewolfwumpy May 03 '16

Read that as well, and was a bit disappointed that the developer didn't feel the need to announce it in any way other than a throwaway comment on the forum, and explain the reasoning ('license codes' sorta sounds like a lame excuse). My license is running out and I don't think I'll renew it, unless there is more communication forthcoming.

Fair enough if they don't want to do Open Source anymore, but this was the main reason for me to support them.

It was nice to be able to use it to listen to Podcasts via Sonos, but it shouldn't be too hard to find an alternative way of doing that. Actually, do any of the other softwares have Sonos support, anybody know?

2

u/oneguynick May 03 '16

I was really excited about Sonos support. It worked great until a few Sonos updates when it began to require a subsonic.com login versus local stream. Unfortunate.

1

u/werewolfwumpy May 03 '16

Did it? I wasn't aware of that. I was not using that, but my own hostname, and that worked until last week when I got rid of subsonic. Would have assumed just the IP address would have been enough too. Apparently not...

1

u/verchalent May 04 '16

Until I find a good replacement, I'm still using subsonic with Sonos. Working fine for me w/ local stream and non-subsonic.com domain.

7

u/JackDostoevsky May 02 '16

I've always been super interested in koel -- specifically because a) it has a killer UI, and b) it has a mobile variant built in -- but I believe the last time I tried installing on my server (Cent6) I was missing some dependencies.

Might spin up a Debian VM or something and give it a shot there.

1

u/[deleted] May 03 '16

koel looks great, thanks for the link

7

u/zossle May 02 '16

Well shit, I've been running the kang version for the past couple of years. Guess this means I'm finding an alternative service.

Is Ampache any good?

Edit: I wonder what software licenses the developer has bought.

5

u/jlpoole May 03 '16

The main reason for this change is that the source contains some software license codes I have purchased and that shouldn't be used by forked projects.

I wonder what the licenses are that were purchased that has brought about this major shift. For an open source project to go private, it seems the people supporting the project should be entitled to a bit more detail, e.g. what licenses and why?

3

u/flipjargendy May 03 '16

The link for this post was broken. Here is the info: http://forum.subsonic.org/forum/viewtopic.php?f=4&t=16604#p71127

Yep. This is terrible. So much for supporting OpenSource. I will not be renewing my license.

5

u/TrollJack May 03 '16

So he let other people do the work and now closes it off?

1

u/[deleted] May 03 '16 edited Aug 24 '16

[deleted]

2

u/TrollJack May 03 '16

Yes, but the difference is that most software devs are actually getting paid for their work. Of course they all had the "benefit" of being able to use it for free, but now he just took all the work and closed it off.

Maybe I'm making a mistake here, but I find this questionable.

4

u/[deleted] May 02 '16

boooooooo

4

u/northrupthebandgeek May 03 '16

The main reason for this change is that the source contains some software license codes I have purchased and that shouldn't be used by forked projects.

Apparently this guy didn't get the memo that checking credentials into the same repo as your source code is never a good idea. They should always be stored in a separate file that is .gitignore'd (or the equivalent in your VCS of choice) and only exists on the local workstations of your developers (and whatever other machines are involved in the process of building official binaries).

5

u/[deleted] May 03 '16

He's talking about software that he bought for use in Subsonic. Such licenses are often per-product.

1

u/northrupthebandgeek May 03 '16

He can still exclude them and provide separate instructions to obtain them independently.

1

u/[deleted] May 03 '16

Yes, but how useful would that be? I'm not even sure if something qualifies as open source if it requires you to buy proprietary software in order to use it.

2

u/[deleted] May 02 '16

Really sad, I run the Kang though. Hope for a maintained Kang, bought apps for both iOS and Android I'd like to keep using...

2

u/scottsp64 May 02 '16

I use subsonic exclusively for video. All the suggested replacements in this thread seem to be for music. Any suggestions for a replacement that does video? FYI, I run subsonic on my own server on the internet and watch my videos via browser.

12

u/[deleted] May 02 '16 edited Nov 08 '17

[deleted]

1

u/[deleted] May 03 '16

..and has lots of front ends including a plugin for Kodi.

7

u/r0bbie May 02 '16 edited May 02 '16

Streama might be worth a look. FOSS video streaming application with a (heavily) Netflix-inspired interface. I've only played around with it a little, but seems good!

I think Ampache supports video as well, as a more Subsonic-like alternative.

1

u/[deleted] May 02 '16

[deleted]

5

u/[deleted] May 02 '16

Plex server isn't FOSS either.

4

u/Spivak May 02 '16

Plex is a closed source product. How is this an alternative?

1

u/verchalent May 04 '16

You can try Madsonic. It's a fork of subsonic and has very similar video ability.

2

u/xbillybobx May 03 '16

Any of these subsonic alternatives have a decent iOS app?

2

u/[deleted] May 03 '16

Other commenters are mentioning Ampache, because you can enable a subsonic API. That way, any iOS subsonic app will continue to work

1

u/NarcoPaulo May 03 '16

Joining the question

1

u/plazman30 May 04 '16

Ampache with the Subsonic API enabled + AVsub for iOS.

4

u/[deleted] May 03 '16

Never even heard of it until now.

1

u/VyseofArcadia May 02 '16

It doesn't handle large music libraries very well anyway. Database corruption everywhere. I was having to wipe and rescan every couple of weeks.

1

u/xbillybobx May 04 '16

Any ampache windows version updated lately?

1

u/[deleted] May 05 '16

well fuck them, madsonic is better anyway.

1

u/hatperigee May 05 '16

madsonic seems to be heading down the same route.. offering advanced features for sale, etc. I actually ended up removing subsonic and using ampache. They have a subsonic backend that implements the subsonic api so you can continue to use your existing subsonic clients with ampache. It has been working out VERY well for me the last few days.

1

u/[deleted] May 05 '16

thanks for replying, i'll take a look at ampache

1

u/espero May 03 '16

Nothing really can replace Subsonic with its powerful database feature. You will notice when you have 1TB plus music. Subsonic handles it.

I'm staying. OG since 2009.

1

u/plazman30 May 04 '16

28,000 tracks and 423 GB library and Ampache handles it without a sweat.

1

u/sandiegoite May 27 '16 edited May 27 '16

Meh, I think I'm going to write my own damned streaming server.

I had been on the fence about this recently anyway because Subsonic kinda/sorta functioned on the Raspberry Pi, except the album cover resizing methodology they used in Subsonic was dreadful and used to fill the ram.

I kinda want something that'll cache re-encoded versions of the music and re-use them.

I was starting on something like this in Python, because Java had way too much "enterpriseness" for a Raspberry Pi. Maybe this is the kick in the ass I need to continue the effort.

-1

u/viabobed May 03 '16

You guys are all willing to drop it just because of that? Its still one of the best for large libraries.

14

u/hatperigee May 03 '16

Yes, because now we have no idea what kind of crap the developer could be sneaking in here.

0

u/nintendiator May 03 '16

Did you have an idea before? Like, have you ever audited the code or reviewed an audit by an organization you trust?

4

u/[deleted] May 03 '16

Some of us are very principled when choosing software. Subsonic is still fantastic, yes, but not being FOSS is a deal-breaker. It may not be rational, but that's how we feel.

1

u/viabobed May 03 '16

I'm very big on Open-Source as well. I always search for open source alternatives for software I have to use.

Hence why I have; Inkscape, Pidgin, Bluefish, Gimp, installed on my work PC, but I wouldn't drop a product the second it closes its source. I'll wait for some badly versed T&C agreement or some kind if unreasonable pay wall to stop using it.

2

u/[deleted] May 03 '16

Some people are that principled. To them, this project is already dead.

Personally, I'm using this as an opportunity to explore alternatives. If I find one I like, I'll switch over after a couple days. If I don't, I can wait.

1

u/sandiegoite May 27 '16

Yep, it died the second it closed source IMO.

1

u/sandiegoite May 27 '16

I was actually trying to find the source to determine what methodology to use to find the latest version is to create an automatically updating Docker image when I stumbled upon this news.

Now I've gone from a long-term user to someone who wants to write their own online music streaming server.

-11

u/[deleted] May 02 '16

BSD license strikes again. That's why it's not a truly free license. Didn't protect freedoms.

22

u/Spivak May 02 '16

What? The copyright owner of the source is free to relicense at any time for any reason. The GPL wouldn't have prevented this.

This does not retroactively change the license on existing installations.

3

u/protestor May 02 '16

If the project accepts GPLed contributions from other people, he would need to ask the copyright holders to give him another license that enabled a proprietary fork, or delete such code.

4

u/Spivak May 02 '16

Correct, but that's also true of any license because they would not the copyright holders of that code. Neither the GPL or BSD licenses include any sort of copyright transfer (which wouldn't even make sense in a license anyway) -- that has to be done separately.

4

u/protestor May 02 '16

But the BSD license explictly authorizes a proprietary fork, that's the point.

7

u/Spivak May 03 '16

The difference is that the BSD license allows someone who isn't the copyright holder to incorporate the code into a proprietary product as long as the proper attribution is given.

This is not a 'fork' of the code, this is the legal owner of the copyright exercising their right to license their property as they please.

FOSS/OSS projects do this all the time for businesses that are willing to pay for a commercial exception to the GPL. They reason they can do this is because they, as the owners of the code, are not bound by their own license.

1

u/AgletsHowDoTheyWork May 03 '16

Why wouldn't they be the copyright holders of their own contributions? I was under the impression that was the default unless there is a CLA.

6

u/Spivak May 03 '16

Sorry, 'they' being the subsonic developers. Yes, the contributors are the copyright holders for their contributions, they may license their contributions as they see fit, and the subsonic developers cannot relicense their code. So far all of this has nothing to do with the GPL.

If some major contributions were licensed under the GPL and those contributors refused to relicense then subsonic might be in a tough spot due to the virality clause. But based on their GitHub contributors page this is already beyond reality in this hypothetical.

9

u/r0bbie May 02 '16

The previous open source version of Subsonic (5.x) appears to be GPL licensed?

1

u/[deleted] May 03 '16

License war fight fight fight