Hello! My name is Christopher Bazley and I am a member of BSI (the British Standards Institution) and WG14 (the international standardization working group for the programming language C).
I would be grateful for advice on whether I can include content from Linux kernel source code in a paper that I soon plan to submit to the C standards committee, via the process outlined here: https://www.open-std.org/jtc1/sc22/wg14/www/contributing.html The Linux kernel mailing list FAQ makes clear that they aren't interested in answering questions like this, and instead direct questioners here. The content I would like to include in my paper comprises only the kvasprintf and kasprintf function declarations from Linux, the vasprintf and asprintf function declarations from GNU/BSD, and my own summary of their features and usage. I am citing them as ‘prior art’ in a paper proposing a standard string buffer type for the C programming language. I order to participate in ISO activities, I had to accept their policies (https://www.iso.org/declaration-for-participants-in-iso-activities.html) which include: “Content, such as publications, documents, text, figures, images or other content that you submit to the ISO or ISO/IEC standards development process may be copyright protected. Copyright in such content remains with the initial copyright owner. If you offer such content, you undertake to declare this to ISO or ISO/IEC, identify the name of the copyright holder and assist ISO or ISO/IEC in obtaining appropriate permission to i) share the content in the standards development process, ii) to publish the content, or parts thereof, in original or modified form in ISO or ISO/IEC standards and iii) to exploit the content as part of an ISO or ISO/IEC standard according to ISO and IEC practice.” To be clear, my proposal is not simply to standardize the Linux functions, therefore I do not anticipate them being published “in original or modified form in ISO or ISO/IEC standards”. Standardizing the GNU/BSD functions isn't a terrible idea, but that isn't what I'm proposing either. However, I would like to “share the content in the standards development process” (with appropriate acknowledgement of the licence and copyright which applies to Linux source code and FreeBSD documentation). https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html says: "You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License." and "These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works." I think it's highly questionable whether the new string functions that my paper proposes are "derived from" Linux. Functions similar to the GNU/BSD functions vasprintf and asprintf, but which return a pointer to the allocated string (rather than requiring the caller to pass the address of an object in which to store a pointer), have existed in many code bases which are published under non-GNU licences. I would argue that such an interface is 'obvious'. In any case, that pattern is not precisely what my paper proposes either: the functions that I propose return a pointer to a 'struct' type, not a 'char' array. May I assume that my proposed usage is acceptable under the terms of the GPL-2.0 licence which apply to the relevant Linux code? May I also assume that if an interface similar to kvasprintf and kasprintf were incorporated into the C standard then the whole of the C standard would not fall under the terms of GPL-2.0? Many thanks, Chris IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.