Hacker News new | past | comments | ask | show | jobs | submit login
Amazon kindle source code (amazon.com)
324 points by sundar22in on Oct 15, 2011 | hide | past | web | favorite | 40 comments

I thought it was kind of neat to that a library I'd written was one of the 45 included. I was kind of curious to see what they'd changed, but it ended up being a little boring:


It's a library for reading / writing audio meta data (tags) and they basically just removed support for several formats. What's perhaps more interesting is what they didn't remove: I don't have a Kindle, but from the code this would seem to imply that it supports Ogg Vorbis and FLAC in some capacity.

Also noted that they're using a version from early 2008, even though there have been 5 more recent releases since.

Edit: I also went back and grabbed the very first Kindle release, which contained only 22 packages (TagLib still being one of them), and there they used an even older version (meaning they do at least sometimes grab newer versions of the libs).

> I don't have a Kindle, but from the code this would seem to imply that it supports Ogg Vorbis and FLAC in some capacity.

Haven't tried with .ogg and .flac, but new Kindles have capacity to play .mp3 files. It's more of an experiment from on their part, and the player supports only play and pause operations.

I have the 1st gen Kindle and it always had the capability to play mp3s, as well as a removable memory card slot.

alt + f will also skip the song you are on and play the next one.

Oh hello - and thank you for TagLib. It's crazy fast and made my life infinitely easier when I needed to roll my own quick-and-dirty ID3 cleaner-upper :)

Like Palm's WebOS open source releases [0], this is the code of the modifications they made to open-source projects, some of which they are supposed to release under GPL.

The title should be updated to reflect this.

[0]: http://opensource.palm.com/packages.html

This is why, in my opinion, having the GPL force code sharing may sound nice in theory, but in practice it isn't very interesting.

Amazon are just providing the bare essentials, there is no development community here, no way for them to take back any changes, no user or developer feedback, no documentation, build instructions, etc. - just a site that reads and looks like a legal obligation (and it is in the legal section of the Kindle docs).

Compare this to Webkit - where there is no requirement to share code, but you have a number of companies that have setup very successful developer communities around the code base and a lot of products taking advantage of the work with both the rendering engine and the Javascript interpreters.

You can require somebody to release code, but you can't force them to actively support it.

> Compare this to Webkit - where there is no requirement to share code, but you have a number of companies that have setup very successful developer communities around the code base...

Huh? Webkit was based on an open source project (KHTML under the LGPL) and there is a requirement that the code be shared. Also Apple basically did the same thing as Amazon did here at first: they just dropped huge tarballs on the developers with no comments. In fact, attempting to merge Apple's changes in without comments was so divisive that the forks split, and only years later did Apple open up to an extent with WebKit that it became a proper collaborative effort.

As for whether or not it's useful in practice ... note that I am one of the authors of one of the things they released, and my first reaction was to run a diff against the original to see if they'd made any interesting changes (they haven't).

> This is why, in my opinion, having the GPL force code sharing may sound nice in theory, but in practice it isn't very interesting.

GPL becomes tremendously powerful once the licensed technology becomes significantly important enough that companies will accept the GPL in order to benefit from the technology.

Linux is testimony to this.

The point (of GPL) is not that new community has to form around this released source, nor that the consumers having bought devices using GPL software would be able to recreate them with their own software modifications. The point is that for example Linux developers get to utilize possibly useful modifications made by product vendors, say bug fixes.

> The point is […] utilize possibly useful modifications […]

The ideology which spawned the GPL is that systems should be open. When a consumer buys something like the Kindle, he or she should be able to make changes to the system, i.e. rebuild a modified version of the OS and use that instead of Amazon’s original version.

The GPL is an ingenious way to transform the world of closed software to one where instead it is open, case in point being the Kindle, where Amazon decided to build on source already out there, and due to the license (GPL) in turn has to make their device more open than had they e.g. used BSD licensed software.

Code releases like this can still be very valuable to communities trying to open up the devices, often against the wishes of the device manufacturers. It's unfortunate if the OEMs only comply with the letter but not the spirit of the license, but it's still a lot better than completely proprietary code.

Kindle source code against KHTML/Webkit? I would rather compare it to OS/X or iOS which utilized the BSD and other open source codes and.. where is the community around them? oh no, where is the source code for them? Or did they just suck the open source code like a black hole? Now why would I blame GPL, because it forced Kindle to release at least, so that someone can benefit.

If people really cared, they would figure it out. That's the point of making them release the source- it can be figured out.

It is my opinion that nobody has screwed around much with the Kindle because it pretty much already does everything everybody wants it to do. Biggest want I've ever heard was that it doesn't support ePub, but you can convert to mobi so I don't think anyone has really been aching to patch it.

The kindle's browser suck. i would be very interested in an opera version for the kindle.

Interested enough to do it yourself?

... I rest my case.

Apple has an equivalent page for iOS, but they've done a very good job phasing out anything GPL or LGPL licensed, and are now down to a very small set of tools with any code released: http://opensource.apple.com/

The very reason why I prefer the GPL/LGPL over the BSD license, no obligation to give back/share with the community.

And the very reason I dont, I have no intention of forcing my views of what should be done with the sc onto people that might benefit from using it.

You mean distribute it, not use it.

I don't get it. What purpose do the licenses serve if the software goes unused?

You could basically say the same thing about any proprietary license.

It won't go unused by anyone who needs it and is willing to abide by the provisions of the license, same as any other software license. And there are many millions of people happily using GPL'd software every day.

It seems that what is left of GPL software there is either things that they've changed beyond recognition since taking on (webkit) or absolutely basic parts like gcc. Bit of a shame the larger pieces, all the way up to Darwin have nearly died.

Not sure what you mean, exactly. GCC went away for 5.x, sure, but that's because they've switched over to clang, which may not be (L)GPL, but is open source, and I haven't heard any stories of secret modifications to it.

Everything else seems to have remained from one iOS release to the next...?

For some reason I thought it would be the source code for the reader component but it looks like it's just conforming to the GPL license requirements for things they've modified.

Kindle_src_3.2.1_576290015.tar.gz contains: http://pastie.org/2699524

Why did this get upvoted so many times? It has been available for years now.

I'm afarid to say that I think people upvoted this without even reading the link. I'd bet that 200+ people who voted for this thought it was the source to amazon's proprietary components. Its not, its gpl'ed code that has been available for as long as amazon has sold the kindle.

I'm not aware of any rules or customs around voting submissions based on publish date. I suspect the current interest is driven by the recent release of the Kindle Fire as well as questions about Amazon's duty to publish changes of certain licensed code.

What questions are there related to changes to GPLd code?

I don't think a 3 or 4 year old link is neccessarily newsworthy but you are right there is no rule against old content being relevant. That being said my real complaint is who cares? Linksys, Apple, Brother Printing; all these companies publish their mods to GPLd code. But people did not upvote this because they were interested in GPL mods they upvoted it because they assumed it was something else entirely and never read the link...

Unfortunately, still no SDK and no sign of movement. This is really sad, as I'd love access to the Kindle's market.

I registered for an SDK and i hope i get it soon. It does not look like its coming.

I registered ages ago and didn't even received an email back!

For a split second there I understood that as "Kindle SDK being released today".

I'm really surprised to see so much GPL and LGPLed code in here. Doesn't the license require that, in addition to having the source code, that it be possible for the user be able to re-compile and re-link the binaries? Isn't this impossible with the Kindle hardware?

The GPLv3 tries to enforce that, earlier versions failed to do so.

yup, they have to release the code due to the license..

Will the Fire be on here when it launches?

Mostly no, I think, because most of Android source code is licensed under Apache license, so they don't need to publish their modifications.

Does this mean the community can finally add support to epub books?

The community has had that option ever since the Kindle v1. Amazon has honored the license ever since they launched.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact