From 5a1118d38032f902b1259928f83636b86742e49e Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Sat, 26 Jul 2025 09:00:55 +0200 Subject: relicense as GPL-2+ The earlier GPL-3 only is implied in the new grant. --- README.md | 2 +- examples/cgroup.py | 2 +- examples/chhostname.py | 2 +- examples/chrootfuse.py | 2 +- examples/chroottar.py | 2 +- examples/fakeroot.py | 2 +- examples/netnsslirp.py | 2 +- examples/pidns.py | 2 +- examples/unschroot_fs.py | 2 +- examples/unschroot_proc.py | 2 +- examples/userchroot.py | 2 +- examples/withallsubuids.py | 2 +- linuxnamespaces/__init__.py | 2 +- linuxnamespaces/atlocation.py | 2 +- linuxnamespaces/filedescriptor.py | 2 +- linuxnamespaces/idmap.py | 2 +- linuxnamespaces/syscalls.py | 2 +- linuxnamespaces/systemd/__init__.py | 2 +- linuxnamespaces/systemd/dbussy.py | 2 +- linuxnamespaces/systemd/jeepney.py | 2 +- linuxnamespaces/tarutils.py | 2 +- pyproject.toml | 2 +- tests/test_atlocation.py | 2 +- tests/test_simple.py | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 9acba17..a290ca6 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,4 @@ To see these are composed, consider looking into the `examples/` directory. License ------- -GPL-3 +GPL-2+ diff --git a/examples/cgroup.py b/examples/cgroup.py index 2a423d3..cd6f743 100755 --- a/examples/cgroup.py +++ b/examples/cgroup.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Unshare a cgroup (and user) namespace such that the entire cgroup hierarchy (inside the namespace) becomes writeable to the user. diff --git a/examples/chhostname.py b/examples/chhostname.py index bf174e6..de1ee42 100755 --- a/examples/chhostname.py +++ b/examples/chhostname.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Unshare a UTS (and user and mount) namespace and change the hostname.""" diff --git a/examples/chrootfuse.py b/examples/chrootfuse.py index d8ca965..0eeb5ce 100755 --- a/examples/chrootfuse.py +++ b/examples/chrootfuse.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Mount a given filesystem image inside a user and mount namespace using an unprivileged fuse driver and chroot into the mounted filesystem. Supported diff --git a/examples/chroottar.py b/examples/chroottar.py index cf0f87e..095712a 100755 --- a/examples/chroottar.py +++ b/examples/chroottar.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Extract a given tarball into a temporary location and chroot into it inside a user and mount namespace. diff --git a/examples/fakeroot.py b/examples/fakeroot.py index 47db330..9679bab 100755 --- a/examples/fakeroot.py +++ b/examples/fakeroot.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Vaguely emulate fakeroot using a user namespace that maps the current user and group to root and the rest of the low range to a subuid range without diff --git a/examples/netnsslirp.py b/examples/netnsslirp.py index 7a1a27e..92f473b 100755 --- a/examples/netnsslirp.py +++ b/examples/netnsslirp.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Construct a network namespace with a host0 interface backed by slirp4netns. """ diff --git a/examples/pidns.py b/examples/pidns.py index d926d87..0ef049e 100755 --- a/examples/pidns.py +++ b/examples/pidns.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Create a pid namespace and provide a matching /proc view. As a consequence, user and mount namespaces will be unshared as well. diff --git a/examples/unschroot_fs.py b/examples/unschroot_fs.py index d1953bc..b29ecc5 100755 --- a/examples/unschroot_fs.py +++ b/examples/unschroot_fs.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Emulate schroot using namespaces sufficiently well that sbuild can deal with it but not any better. It assumes that ~/.cache/sbuild contains tars suitable diff --git a/examples/unschroot_proc.py b/examples/unschroot_proc.py index 31cb1e8..f5a444f 100755 --- a/examples/unschroot_proc.py +++ b/examples/unschroot_proc.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2025 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Emulate schroot using namespaces and a background session process sufficiently well that sbuild can deal with it but not any better. For using diff --git a/examples/userchroot.py b/examples/userchroot.py index 4006dc6..cbb827a 100755 --- a/examples/userchroot.py +++ b/examples/userchroot.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Perform something like an unprivileged chroot via a user and mount namespace. This is similar to "unshare --map-auto --mount-proc --root=$1", but diff --git a/examples/withallsubuids.py b/examples/withallsubuids.py index c247002..32ff2f6 100755 --- a/examples/withallsubuids.py +++ b/examples/withallsubuids.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Map all available ranges from /etc/subuid and /etc/subgid as identity and run a given command with all capabilities (including CAP_DAC_OVERRIDE) diff --git a/linuxnamespaces/__init__.py b/linuxnamespaces/__init__.py index 83358b6..ccf3314 100644 --- a/linuxnamespaces/__init__.py +++ b/linuxnamespaces/__init__.py @@ -1,5 +1,5 @@ # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Provide plumbing-layer functionality for working with Linux namespaces in Python. diff --git a/linuxnamespaces/atlocation.py b/linuxnamespaces/atlocation.py index 46ac541..1e719a1 100644 --- a/linuxnamespaces/atlocation.py +++ b/linuxnamespaces/atlocation.py @@ -1,5 +1,5 @@ # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Describe a location in the filesystem by a combination of a file descriptor and a file name each of which can be optional. Many Linux system calls are able diff --git a/linuxnamespaces/filedescriptor.py b/linuxnamespaces/filedescriptor.py index ee96a94..f159a83 100644 --- a/linuxnamespaces/filedescriptor.py +++ b/linuxnamespaces/filedescriptor.py @@ -1,5 +1,5 @@ # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """A type tag for integers that represent file descriptors.""" diff --git a/linuxnamespaces/idmap.py b/linuxnamespaces/idmap.py index 8f33d70..315198a 100644 --- a/linuxnamespaces/idmap.py +++ b/linuxnamespaces/idmap.py @@ -1,5 +1,5 @@ # Copyright 2024-2025 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Provide functionalit related to mapping user and group ids in a user namespace. diff --git a/linuxnamespaces/syscalls.py b/linuxnamespaces/syscalls.py index e9b0e44..86b21e3 100644 --- a/linuxnamespaces/syscalls.py +++ b/linuxnamespaces/syscalls.py @@ -1,5 +1,5 @@ # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Provide typed Python functions for a number of Linux system calls relevant for Linux namespaces including the new mount API. diff --git a/linuxnamespaces/systemd/__init__.py b/linuxnamespaces/systemd/__init__.py index 84cb135..ff09d00 100644 --- a/linuxnamespaces/systemd/__init__.py +++ b/linuxnamespaces/systemd/__init__.py @@ -1,5 +1,5 @@ # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Communicate with a systemd instance to create e.g. delegated croups.""" diff --git a/linuxnamespaces/systemd/dbussy.py b/linuxnamespaces/systemd/dbussy.py index 60b74fc..e38a119 100644 --- a/linuxnamespaces/systemd/dbussy.py +++ b/linuxnamespaces/systemd/dbussy.py @@ -1,5 +1,5 @@ # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Communicate with a systemd instance via dbus using dbussy.""" diff --git a/linuxnamespaces/systemd/jeepney.py b/linuxnamespaces/systemd/jeepney.py index ef276d3..16fbca1 100644 --- a/linuxnamespaces/systemd/jeepney.py +++ b/linuxnamespaces/systemd/jeepney.py @@ -1,5 +1,5 @@ # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Communicate with a systemd instance via dbus using jeepney.""" diff --git a/linuxnamespaces/tarutils.py b/linuxnamespaces/tarutils.py index 5ad60cd..9569939 100644 --- a/linuxnamespaces/tarutils.py +++ b/linuxnamespaces/tarutils.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ """Extensions to the tarfile module. * ZstdTarFile extends TarFile to deal with zstd-compressed archives. diff --git a/pyproject.toml b/pyproject.toml index 9e90387..fbd5218 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ description = "typed syscall wrappers and plumbing for working with Linux namesp authors = [{name = "Helmut Grohne", email = "helmut@subdivi.de"}] classifiers = [ "Development Status :: 3 - Alpha", - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Operating System :: POSIX :: Linux", "Typing :: Typed", "Programming Language :: Python :: 3", diff --git a/tests/test_atlocation.py b/tests/test_atlocation.py index b107975..16a4d53 100644 --- a/tests/test_atlocation.py +++ b/tests/test_atlocation.py @@ -1,5 +1,5 @@ # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ import contextlib import functools diff --git a/tests/test_simple.py b/tests/test_simple.py index 114b922..5c9d2d3 100644 --- a/tests/test_simple.py +++ b/tests/test_simple.py @@ -1,5 +1,5 @@ # Copyright 2024 Helmut Grohne -# SPDX-License-Identifier: GPL-3 +# SPDX-License-Identifier: GPL-2+ import asyncio import errno -- cgit v1.2.3