Hacker News new | ask | show | jobs
by mrpippy 4144 days ago
The current one is a derivative of NetBSD's implementation (where it shells out to use a sh builtin)
2 comments

License-wise:

- this piece of code is 2BSD-licensed

- it calls out to /bin/sh

- on OS X, /bin/sh is hardlinked to /bin/bash

- OS X's bash is GPLv2

Forking to shell is the only way to reuse bash's code. More often than not I really wish sh were not bash.

"Forking to shell is the only way to reuse bash's code."

well, the other obvius way is to license this piece of code as GPLv2.

AFAIK this is THE reason for GPL. So that you either release your code and contribute to open source or suffer from slower access methods.
The BSDs doesn't ship with bash and their wordexp shelling out to /bin/sh doesn't suffer, so I don't see how this is a reason for the GPL.
Probably I've written it not clearly enough: "Reason for GPL not allowing you to use code in your own programs, but allowing use through exec: you either release your code and contribute to open source or suffer from slower access methods."
ahh, ok; that's clearer
Which would require libc to be GPL, something not even glibc does.
Judging by both the source code and its placement in the repository (gen/FreeBSD/wordexp.c), I'm thinking it's a derivative of the FreeBSD implementation (which may itself be a derivative of the NetBSD implementation, or perhaps the other way around).
Yes, the OSX code seems to come from FreeBSD. Here is the FreeBSD version of the source:

https://github.com/freebsd/freebsd/blob/master/lib/libc/gen/...

It looks very similar to the current OSX file posted in an earlier comment. Calls /bin/sh too.