For about a year and a half, I have been working on a creating series of minimal ELF executables that print terminal control escape sequences to clear the screen. My workflow is a bit backwards - first, I create or update the binary in a hex editor, relying heavily on documentation for the ELF format and the target architecture, then I create or update an architecture-specific README file that contains a block of heavily-commented assembly that assembles to a binary that's identical to the one I made, when assembled using the instructions at the end of the file. So there is source code that creates an identical binary, but it's not the source code for the actual binaries I created.

Currently, the project's README contains the following text:

Note that these utilities are hand-written in a hex editor, so source code distribution is not really an applicable concept. As such, I am not releasing them under a formal license. If you want to use them, you can do so however you want. I'd appreciate it if you'd let me know, but that's not a requirement, just something I'd appreciate.

Is there a way to license it under a standard permissive (or public-domain-equivalent) FOSS license, rather than having this informal note in the README?

For context: the repository is here.

  • 1
    What problem do you think you would have if you just slapped (say) the MIT license on everything? The MIT license makes no distinction between "source" and "binary" forms so can apply equally and separately (should you wish) to both. Apr 8 at 21:07
  • 1
    @PhilipKendall I don't know of any. I just wanted to make sure that I wasn't missing anything before going ahead with it. Apr 8 at 21:52
  • 1
    Do you have any sort of script which compares the assembly in your README to your hand-crafted binary?
    – Brandin
    Apr 14 at 5:33
  • @Brandin I don't, but I might write one. I currently just manually follow the instructions I wrote, then use diff to ensure that the resulting binary is identical. Apr 14 at 19:12
  • @EliMinkoff If you use the GPL then you could interpret "source code" (defined in the license as "including scripts") as including such manual instructions. Basically it sounds to me like you're doing the job a build script manually, although in this case "build" is more of a verification step in your workflow. If you want others to develop this with you, then in practice you should make this part of a "build" script anyway, one for convenience, but also to ensure that everyone carries out the diff'ing consistently (or at all).
    – Brandin
    Apr 15 at 6:44

1 Answer 1


Most permissive licenses, like MIT and BSD, do not require you to provide source code. There is nothing in your workflow that prevents you from applying one of those licenses to your work.

A license like the GPL is a bit harder to apply, because it requires you to provide source code, but on the other hand you can argue that, based on your workflow, the binary file is also the source code, because it is your preferred form for making modifications. And that is how the term "source code" is defined in the GPL license.

  • The OP is the original rightsholder, so even choosing the GPL won't oblige him/her to provide source code, but it will definitely complicate life for anyone downstream who wants to redistribute. I agree that a permissive licence is going to be simpler and more useful all round.
    – MadHatter
    Apr 12 at 11:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.