Skip to content

Commit

Permalink
Introduce bundled directory
Browse files Browse the repository at this point in the history
This is the first step of adding bundled Linux kernel UAPI headers for
compatibility purposes.  These headers are going to be copied verbatim
from the Linux kernel, they are provided by the Linux kernel under the
terms of the GNU General Public License version 2 only with an explicit
syscall exception.

According to analysis made by Kent Gibson at [1], we are allowed to
re-distribute unmodified Linux kernel UAPI headers under the same terms
as they are provided by the Linux kernel, and such re-distribution does
not affect the license of strace itself.

[1] https://lore.kernel.org/linux-gpio/20210128032641.GA11655@sol/

* bundled/Makefile.am: New file.
* configure.ac (AC_CONFIG_FILES): Add bundled/Makefile.
* Makefile.am (SUBDIRS): Add bundled.
* bundled/linux/GPL-2.0: New file, copied from Linux kernel
v5.10:LICENSES/preferred/GPL-2.0 file.
* bundled/linux/Linux-syscall-note: New file, copied from Linux kernel
v5.10:LICENSES/exceptions/Linux-syscall-note file.
* bundled/linux/COPYING: New file.
* COPYING: Mention it.

Thanks-to: Kent Gibson <warthog618@gmail.com>
  • Loading branch information
ldv-alt committed Feb 4, 2021
1 parent 8db560f commit 5bd8364
Show file tree
Hide file tree
Showing 7 changed files with 419 additions and 1 deletion.
6 changes: 6 additions & 0 deletions COPYING
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,9 @@ or FITNESS FOR A PARTICULAR PURPOSE. See LGPL-2.1-or-later for more details.

strace test suite is provided under the terms of the GNU General Public License
version 2 or later, see tests/COPYING for more details.

The `bundled/linux' directory contains some of Linux kernel UAPI header files
copied verbatim from the Linux kernel for compatibility purposes.
These header files are provided by the Linux kernel under the terms of the
GNU General Public License version 2 only with an explicit syscall exception,
see bundled/linux/COPYING for more details.
2 changes: 1 addition & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ endif
if HAVE_MX32_RUNTIME
TESTS_MX32 = tests-mx32
endif
SUBDIRS = src tests $(TESTS_M32) $(TESTS_MX32)
SUBDIRS = bundled src tests $(TESTS_M32) $(TESTS_MX32)

man_MANS = doc/strace.1 doc/strace-log-merge.1

Expand Down
12 changes: 12 additions & 0 deletions bundled/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Automake input for bundled.
#
# Copyright (c) 2021 The strace developers.
# All rights reserved.
#
# SPDX-License-Identifier: LGPL-2.1-or-later

EXTRA_DIST = \
linux/COPYING \
linux/GPL-2.0 \
linux/Linux-syscall-note \
# end of EXTRA_DIST
16 changes: 16 additions & 0 deletions bundled/linux/COPYING
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
The `linux' directory contains some of Linux kernel UAPI header files
copied verbatim from the Linux kernel for compatibility purposes.

These header files are not a part of the strace project,
they are provided by the Linux Kernel under:

SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note

Being under the terms of the GNU General Public License version 2 only,
according with:

GPL-2.0

With an explicit syscall exception, as stated at:

Linux-syscall-note
359 changes: 359 additions & 0 deletions bundled/linux/GPL-2.0

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions bundled/linux/Linux-syscall-note
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
SPDX-Exception-Identifier: Linux-syscall-note
SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+, GPL-2.0-only, GPL-2.0-or-later
Usage-Guide:
This exception is used together with one of the above SPDX-Licenses
to mark user space API (uapi) header files so they can be included
into non GPL compliant user space application code.
To use this exception add it with the keyword WITH to one of the
identifiers in the SPDX-Licenses tag:
SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
License-Text:

NOTE! This copyright does *not* cover user programs that use kernel
services by normal system calls - this is merely considered normal use
of the kernel, and does *not* fall under the heading of "derived work".
Also note that the GPL below is copyrighted by the Free Software
Foundation, but the instance of code that it refers to (the Linux
kernel) is copyrighted by me and others who actually wrote it.

Also note that the only valid version of the GPL as far as the kernel
is concerned is _this_ particular version of the license (ie v2, not
v2.2 or v3.x or whatever), unless explicitly otherwise stated.

Linus Torvalds
1 change: 1 addition & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,7 @@ AX_VALGRIND_DFLT([sgcheck], [off])
AX_VALGRIND_CHECK

AC_CONFIG_FILES([Makefile
bundled/Makefile
debian/changelog
doc/strace.1
doc/strace-log-merge.1
Expand Down

0 comments on commit 5bd8364

Please sign in to comment.