Hacker News new | past | comments | ask | show | jobs | submit login

How can you "open source" something that doesn't include the sources?



Yeah, they didn't open source anything. They just made it free.


Ah! Yes, but not quite! It’s not freeware. The binaries are technically open sourced, you can do with them as you please within the confines of the Apache license.


I take that means reverse engineer, decompilation and extracting and reusing any bytecode you want.


It seems like it, which is a bit of a change in direction for them. I've poked at the data from the clojure side in the past (inspecting objects), just to learn how it works, but the license was strongly worded against reverse engineering.

I've also taken a look at generated clojure bytecode. It looked like the codegen is pretty straightforward with minimal optimization. It looked like it wouldn't be too hard to reverse with maybe a little bit of backtracking (essentially a parsing problem, I believe). You'd then need a separate step to redo the macros.

It sounded like it might be a fun little project (just to see if it can be done and try my hand at decompiling), but I would have wanted to decompile datomic to make it interesting and the license precluded that.


That’s my take as well. It is definitely an odd license for a binary, I’ll grant you that.


The Apache license says I can do things with the source of it.

> You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and **in Source or Object form**, provided that (...)


…only if you have the source


That's parent's point, they didn't. They only made the binaries available under the Apache 2.0 license


Well, _technically_ you are now free to modify the binary and redistribute the result as per the Apache 2.0 license. That’s different than giving something as freeware, which would not allow/cover modification/redistribution.


Which actually does make a difference for JARs because the bytecode is portable and modifiable, not trivially so but definitely way more easily than native code.




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

Search: