On Thu, Jul 23, 2015 at 09:03:31PM +0200, Takashi Iwai wrote:
Well, the linked-list macro is a trivial thing each beginner programmer starts writing at school. And, the API itself can't be an issue.
I agree, but that does not necessarily mean that the license wouldn't apply. Consider this thought experiment. You write a two-page prose article on how a linked list works. Obviously, the concept of a linked list is trivial -- but does that mean copyright doesn't apply to your article? I think we have a similar situation here; the concept of a list may be trivial, but that doesn't mean the implementation is.
That is, it'd be enough just rewriting the existing list.h (e.g. renaming variables, shuffles the call order, rephrase the comments) by ourselves without introducing a big piece of codes of even a different license, IMO.
Unless you re-implement a list from scratch that provides the same API that wouldn't really help you. I'm fully aware that it may not be obvious whether somebody only modified an existing file heavily or re-implemented it, but unless you start from scratch you won't free yourself from the original copyright (and thus, the license). That's also one of the reasons why I'm proposing to use a modified version of an existing implementation rather than re-writing it from scratch.
A re-implementation would also have to be tested, which the existing list already is. Additionally, I think the proposed change simplifies iterating over a list. Currently, you always need list_for_each() followed by list_entry(), which would be simplified to a single statement with this change.