I mean, it is possible to create application without source code – for example using HEX editor or some debugger that can assembly instructions (actually every decent debugger can).
Creating programs this way is of course hard, but possible for small applications.
I even can imagine cases, where it is the only possible way – for example, on some very old hardware where you simply does not have any development tools.
For another example – read the article
“Programming in extreme conditions”, published in Assembly programming journal, issue 9
So, what if the author of such application wants to distribute it under GNU GPL?
2
I’m not a lawyer or anything, but I would think this should be possible. As Kilian said, you must distribute the “preferred form for editing”. I think in this case though it would go a step further than just distributing the byte codes. I’d think that any thing that helped you to understand or create the source would also go under. Of course, your hex editor wouldn’t be included. However, if you used drawn-out diagrams with flowcharts or some such to figure out the byte code that needed to be edited, those would probably also need to be included. And, if you wrote a program which generated the byte code, that would also have to be include.
After all, if you think about it, source code itself is a program which is just processed by a very complicated “CPU” called a compiler to get an expected output. Either way, at this point GPL becomes pretty pointless if you don’t have anything written to help understand the byte codes you write
1
The GPL requires a distributor to make the preferred form for editing of the program available. This usually means the source code, and it has to be machine-readable (no print-outs or narrations in haiku form). If you were on a platform where byte-patching executables is the only way of creating them, then that would have to count as the “preferred” form, but I can’t think of a system where this would be the case.
It’s arguable what it would mean for someone to create a program in a needlessly cumbersome way (e.g. writing hexadecimal machine language out of sheer bloody-mindedness, or to impress the community, etc.) and then put it under the GPL. Your preference may not be the same as my preference, and might be legally untenable to require someone to provide something that doesn’t actually exist. The correct people to ask about this are the Free Software Foundation, and ultimately the courts.
5
I believe that this is not possible. It violates freedoms two and four of free software. Access to source code is a precondition for distributing software under the GPL, and in this case what you define as source code (HEX) is not human-readable. I think that the lowest level of code that can be distributed with the GPL is assembly language of a specific architecture. Public domain or another license might be more suitable for the case that you describe.
4