summaryrefslogtreecommitdiffstats
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/1-disable-openmpi.patch13
-rw-r--r--debian/patches/2-disable-rootdir-test.patch27
-rw-r--r--debian/patches/3-debian-sysconfig-layout.patch60
-rw-r--r--debian/patches/5-fputc.patch24
-rw-r--r--debian/patches/series4
5 files changed, 128 insertions, 0 deletions
diff --git a/debian/patches/1-disable-openmpi.patch b/debian/patches/1-disable-openmpi.patch
new file mode 100644
index 0000000..cda883b
--- /dev/null
+++ b/debian/patches/1-disable-openmpi.patch
@@ -0,0 +1,13 @@
+diff --git a/test cases/frameworks/17 mpi/meson.build b/test cases/frameworks/17 mpi/meson.build
+index 75b463cc..7bf4e7ae 100644
+--- a/test cases/frameworks/17 mpi/meson.build
++++ b/test cases/frameworks/17 mpi/meson.build
+@@ -2,6 +2,8 @@ project('mpi', 'c', 'cpp', default_options: ['b_asneeded=false'])
+
+ method = get_option('method')
+
++error('MESON_SKIP_TEST openmpi binaries do not work when run in pbuilder for some reason.')
++
+ cc = meson.get_compiler('c')
+ mpic = dependency('mpi', language : 'c', required : false, method : method)
+ if not mpic.found()
diff --git a/debian/patches/2-disable-rootdir-test.patch b/debian/patches/2-disable-rootdir-test.patch
new file mode 100644
index 0000000..3efb9ee
--- /dev/null
+++ b/debian/patches/2-disable-rootdir-test.patch
@@ -0,0 +1,27 @@
+diff --git a/test cases/common/221 fs module/meson.build b/test cases/common/221 fs module/meson.build
+index a7327682..c5f90bbb 100644
+--- a/test cases/common/220 fs module/meson.build
++++ b/test cases/common/220 fs module/meson.build
+@@ -30,12 +30,16 @@ assert(fs.is_dir('subprojects'), 'Dir not detected correctly.')
+ assert(not fs.is_dir('meson.build'), 'File detected as a dir.')
+ assert(not fs.is_dir('nonexisting'), 'Bad path detected as a dir.')
+
+-assert(fs.is_dir('~'), 'home directory not detected')
+-assert(not fs.is_file('~'), 'home directory detected as file')
+-
+-# -- expanduser
+-assert(fs.expanduser('~') != '~','expanduser failed')
+-assert(fs.expanduser('~/foo').endswith('foo'), 'expanduser with tail failed')
++# These do not work with pbuilder for some reason.
++# I have not been able to replicate this manually,
++# even with 'pbuilder login'.
++#
++#assert(fs.is_dir('~'), 'home directory not detected')
++#assert(not fs.is_file('~'), 'home directory detected as file')
++#
++## -- expanduser
++#assert(fs.expanduser('~') != '~','expanduser failed')
++#assert(fs.expanduser('~/foo').endswith('foo'), 'expanduser with tail failed')
+
+ # -- as_posix
+ assert(fs.as_posix('/') == '/', 'as_posix idempotent')
diff --git a/debian/patches/3-debian-sysconfig-layout.patch b/debian/patches/3-debian-sysconfig-layout.patch
new file mode 100644
index 0000000..5a75a91
--- /dev/null
+++ b/debian/patches/3-debian-sysconfig-layout.patch
@@ -0,0 +1,60 @@
+From 9cea9e351d20d58f447b06baa7bb9a3f5cc40ea4 Mon Sep 17 00:00:00 2001
+From: Stefano Rivera <stefano@rivera.za.net>
+Date: Mon, 19 Dec 2022 19:56:32 -0400
+Subject: [PATCH] Update the Debian Python path detection for setuptools >= 60
+
+Debian now (since Python 3.10.2-6) adds the deb_system scheme to
+sysconfig. Newer distutils (such as bundled with setuptools >= 60) adds
+fetch schemes from sysconfig, rather than duplicating the sysconfig
+schemes statically in distutils.command.install.
+
+This change broke meson's deb_system check.
+
+This patch replaces that mechanism (for newer Debian releases) with
+explicit scheme selection, which is far simpler.
+But it also retains the old mechanism, for older Debian releases that
+require it (Debian <= 11).
+
+Fixes: #8739 (for python module, and makes similar minimal changes to the python3 module)
+
+Fixes: https://bugs.debian.org/1026312
+
+Forwarded: https://github.com/mesonbuild/meson/pull/11211
+---
+ mesonbuild/modules/python.py | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
+index f74d10e4c..68632af2d 100644
+--- a/mesonbuild/modules/python.py
++++ b/mesonbuild/modules/python.py
+@@ -363,15 +363,23 @@ def get_distutils_paths(scheme=None, prefix=None):
+ # default scheme to a custom one pointing to /usr/local and replacing
+ # site-packages with dist-packages.
+ # See https://github.com/mesonbuild/meson/issues/8739.
+-# XXX: We should be using sysconfig, but Debian only patches distutils.
++# Until version 3.10.2-6, Debian only patched distutils, not sysconfig.
+
+ if 'deb_system' in distutils.command.install.INSTALL_SCHEMES:
++ # Debian systems before setuptools-bundled distutils was used by default
+ paths = get_distutils_paths(scheme='deb_system')
+ install_paths = get_distutils_paths(scheme='deb_system', prefix='')
+ else:
+- paths = sysconfig.get_paths()
++ if 'deb_system' in sysconfig.get_scheme_names():
++ # Use Debian's custom deb_system scheme (with our prefix)
++ scheme = 'deb_system'
++ elif sys.version_info >= (3, 10):
++ scheme = sysconfig.get_default_scheme()
++ else:
++ scheme = sysconfig._get_default_scheme()
++ paths = sysconfig.get_paths(scheme=scheme)
+ empty_vars = {'base': '', 'platbase': '', 'installed_base': ''}
+- install_paths = sysconfig.get_paths(vars=empty_vars)
++ install_paths = sysconfig.get_paths(vars=empty_vars, scheme=scheme)
+
+ def links_against_libpython():
+ from distutils.core import Distribution, Extension
+--
+2.35.1
+
diff --git a/debian/patches/5-fputc.patch b/debian/patches/5-fputc.patch
new file mode 100644
index 0000000..26e9f21
--- /dev/null
+++ b/debian/patches/5-fputc.patch
@@ -0,0 +1,24 @@
+diff --git a/test cases/common/105 generatorcustom/gen.c b/test cases/common/105 generatorcustom/gen.c
+index 59518c0ef..964ae7e9c 100644
+--- a/test cases/common/105 generatorcustom/gen.c
++++ b/test cases/common/105 generatorcustom/gen.c
+@@ -22,9 +22,17 @@ int main(int argc, const char ** argv) {
+ fprintf(output, "#pragma once\n");
+ fprintf(output, "#define ");
+
+- char c;
++ int bytes_copied = 0;
++ int c;
+ while((c = fgetc(input)) != EOF) {
+- fputc(c, output);
++ if(fputc(c, output) == EOF) {
++ fprintf(stderr, "Writing to output file failed.\n");
++ return 1;
++ }
++ if(++bytes_copied > 10000) {
++ fprintf(stderr, "File copy stuck in an eternal loop!\n");
++ return 1;
++ }
+ }
+ fputc('\n', output);
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..6bfa825
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,4 @@
+1-disable-openmpi.patch
+2-disable-rootdir-test.patch
+3-debian-sysconfig-layout.patch
+5-fputc.patch