From 22e1aa6e9d457c3f17d520da1c4012f0f70606d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Fri, 3 Sep 2021 15:56:45 +0200 Subject: [PATCH] Fix build of ossaudiodev in Linux/FreeBSD for Python 3.1 (#2047) With the normal `setup.py`, the installation of the `ossaudiodev` module is skipped under GNU/Linux with newer kernel versions because Python 3.1 appends the major kernel version to the result of `build_ext.get_platform` and later `ossaudiodev` is skipped if the major kernel version is not 2. A similar problem might occur if installing in FreeBSD. This problem may even occur if installing Python 3.1 in a Docker image of an old OS (e.g. prehistoric Debian or CentOS), because the major kernel version is still the one of the host system. The solution is to use `str.startswith` and only check that the platform starts with 'linux' or 'freebsd'. --- .../patches/3.1.0/Python-3.1/000_patch-setup.py.diff | 10 ++++++++++ .../3.1.1/Python-3.1.1/000_patch-setup.py.diff | 10 ++++++++++ .../3.1.2/Python-3.1.2/000_patch-setup.py.diff | 10 ++++++++++ .../3.1.3/Python-3.1.3/000_patch-setup.py.diff | 11 ++++++++++- .../3.1.4/Python-3.1.4/000_patch-setup.py.diff | 12 ++++++++++++ .../3.1.5/Python-3.1.5/000_patch-setup.py.diff | 12 ++++++++++++ 6 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/000_patch-setup.py.diff create mode 100644 plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/000_patch-setup.py.diff diff --git a/plugins/python-build/share/python-build/patches/3.1.0/Python-3.1/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.0/Python-3.1/000_patch-setup.py.diff index fd23a80d..ad886b8a 100644 --- a/plugins/python-build/share/python-build/patches/3.1.0/Python-3.1/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/3.1.0/Python-3.1/000_patch-setup.py.diff @@ -43,3 +43,13 @@ diff -r -u ../Python-3.1/setup.py ./setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. +@@ -1203,8 +1203,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.1/Python-3.1.1/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.1/Python-3.1.1/000_patch-setup.py.diff index fd23a80d..ad886b8a 100644 --- a/plugins/python-build/share/python-build/patches/3.1.1/Python-3.1.1/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/3.1.1/Python-3.1.1/000_patch-setup.py.diff @@ -43,3 +43,13 @@ diff -r -u ../Python-3.1/setup.py ./setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. +@@ -1203,8 +1203,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.2/Python-3.1.2/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.2/Python-3.1.2/000_patch-setup.py.diff index fd23a80d..b57d888d 100644 --- a/plugins/python-build/share/python-build/patches/3.1.2/Python-3.1.2/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/3.1.2/Python-3.1.2/000_patch-setup.py.diff @@ -43,3 +43,13 @@ diff -r -u ../Python-3.1/setup.py ./setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. +@@ -1207,8 +1207,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/000_patch-setup.py.diff index bf60166b..4edf36a4 100644 --- a/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/000_patch-setup.py.diff @@ -44,4 +44,13 @@ diff -r -u setup.py setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. - +@@ -1321,8 +1321,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/000_patch-setup.py.diff new file mode 100644 index 00000000..ae14c686 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/000_patch-setup.py.diff @@ -0,0 +1,12 @@ +--- setup.py.orig 2012-04-10 01:25:37.000000000 +0200 ++++ setup.py 2021-09-03 10:16:58.575042300 +0200 +@@ -1344,8 +1344,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/000_patch-setup.py.diff new file mode 100644 index 00000000..ae14c686 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/000_patch-setup.py.diff @@ -0,0 +1,12 @@ +--- setup.py.orig 2012-04-10 01:25:37.000000000 +0200 ++++ setup.py 2021-09-03 10:16:58.575042300 +0200 +@@ -1344,8 +1344,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev')