2

I have containerized an application that runs on .Net Core. The official page says, .Net Core needs libc6 as its dependency when run on Debian OS, so I have explored its license to pass my company's legal process.

I can find a copyright file of that, it says:

* Most of the GNU C library is under the following copyright:

    Copyright (C) 1991-2015 Free Software Foundation, Inc.

    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation;
    <snip>

* The utilities associated with GNU C library is under the following
  copyright:

    Copyright (C) 1991-2015 Free Software Foundation, Inc.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published
    by the Free Software Foundation; version 2 of the License, or
    (at your option) any later version.

I'm not sure which part of the software utilities refers to, does this mean libc6 will be GPL-licensed? If not, how should I interpret this?

1
  • 1
    Have you been able to check the LICENSES file in the libc version of your choice here ftp.gnu.org/gnu/libc ? After reading the Microsoft page (your link above) my assumption is that the dependency of .Net Core is just for the libc6 libraries, not the utilities (which seem to be Debian-specific, as they are not on the libc homepage). You would also need to understand the concerns of your legal department: Debian has so much GPL and LGPL components, one more or less does not really make a difference, so why would they care? Dec 14, 2021 at 8:14

1 Answer 1

2

The library is the part that is linked into your program, the utilities are standalone executables (like ldconfig and ldd).

The source code for these is shipped together, so some files in the source code package will be LGPL licensed, others will be GPL licensed. From a practical point of view, there isn't much difference between those for source code files, as the differences between GPL and LGPL concern dynamic linking.

You are permitted to link against the library under the terms of the LGPL (so you're in the clear there), and you are allowed to execute utility programs in a separate process under the terms of the GPL (this case is explicitly mentioned there as "we do not consider this to be creation of a derived work."), so invoking system("ldconfig"); is safe as well.

What you're not allowed to do is nonsensical stuff like dlopen("/sbin/ldconfig", ...); that would bring code licensed under GPL into your process. This would be a questionable construct on a technical level as well, so there is little chance of accidentally violating the license here. The distinction can become relevant if you modify the C library, which as far as I've gathered, you're not planning to do.

Your Answer

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

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