Source: tevent Version: 0.9.39-2 Tags: patch User: debian-cr...@lists.debian.org Usertags: cross-satisfiability ftcbfs
tevent fails to cross build from source for many reasons. 1. The python3 build dependency is not installable, because it is interpreted as a host dependency. We really want a build architecture python here for running waf though, so it should be annotated with :any or :native. 2. waf tries performing a native build, because the relevant environment variables are not set up. One should set CC and PKGCONFIG (not the usual PKG_CONFIG) for tevent. 3. waf tries running a simple hello world program. 4. waf performs sizeof checks by running programs. 5. waf has a mandatory run test for determining whether mkstemp works. 6. probably more The attached patch fixes 1-4. I don't know a good solution for 5. As such it is an incremental step towards cross building tevent. Please consider applying it and close this bug when doing so. Helmut
diff --minimal -Nru tevent-0.9.39/debian/changelog tevent-0.9.39/debian/changelog --- tevent-0.9.39/debian/changelog 2019-08-29 14:43:48.000000000 +0200 +++ tevent-0.9.39/debian/changelog 2019-09-06 21:41:32.000000000 +0200 @@ -1,3 +1,14 @@ +tevent (0.9.39-2.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Improve cross building. (Closes: #-1) + + Annotate the python3 Build-Depends with :any. + + Export CC and PKGCONFIG for waf. + + cross.patch: don't run an unnecessary hello world test + + cross.patch: use compile-only checks for sizeof validation + + -- Helmut Grohne <hel...@subdivi.de> Fri, 06 Sep 2019 21:41:32 +0200 + tevent (0.9.39-2) unstable; urgency=medium * Upload to unstable diff --minimal -Nru tevent-0.9.39/debian/control tevent-0.9.39/debian/control --- tevent-0.9.39/debian/control 2019-08-29 14:05:41.000000000 +0200 +++ tevent-0.9.39/debian/control 2019-09-06 21:41:30.000000000 +0200 @@ -7,7 +7,7 @@ libaio-dev [linux-any], libtalloc-dev (>= 2.1.16~), pkg-config, - python3 + python3:any Rules-Requires-Root: no Standards-Version: 4.4.0 Homepage: https://tevent.samba.org/ diff --minimal -Nru tevent-0.9.39/debian/patches/cross.patch tevent-0.9.39/debian/patches/cross.patch --- tevent-0.9.39/debian/patches/cross.patch 1970-01-01 01:00:00.000000000 +0100 +++ tevent-0.9.39/debian/patches/cross.patch 2019-09-06 21:41:32.000000000 +0200 @@ -0,0 +1,55 @@ +--- tevent-0.9.39.orig/buildtools/wafsamba/wscript ++++ tevent-0.9.39/buildtools/wafsamba/wscript +@@ -298,7 +298,7 @@ + conf.CHECK_CODE('printf("hello world")', + define='HAVE_SIMPLE_C_PROG', + mandatory=True, +- execute=True, ++ execute=False, + headers='stdio.h', + msg='Checking simple C program') + +--- tevent-0.9.39.orig/buildtools/wafsamba/samba_conftests.py ++++ tevent-0.9.39/buildtools/wafsamba/samba_conftests.py +@@ -86,9 +86,9 @@ + '''see what we need for largefile support''' + getconf_cflags = conf.CHECK_COMMAND(['getconf', 'LFS_CFLAGS']); + if getconf_cflags is not False: +- if (conf.CHECK_CODE('if (sizeof(off_t) < 8) return 1', ++ if (conf.CHECK_CODE('char dummy[(sizeof(off_t) < 8) ? -1 : 1', + define='WORKING_GETCONF_LFS_CFLAGS', +- execute=True, ++ execute=False, + cflags=getconf_cflags, + msg='Checking getconf large file support flags work')): + conf.ADD_CFLAGS(getconf_cflags) +@@ -101,23 +101,23 @@ + else: + conf.DEFINE(flag_split[0], flag_split[1]) + +- if conf.CHECK_CODE('if (sizeof(off_t) < 8) return 1', ++ if conf.CHECK_CODE('char dummy[(sizeof(off_t) < 8) ? -1 : 1', + define, +- execute=True, ++ execute=False, + msg='Checking for large file support without additional flags'): + return True + +- if conf.CHECK_CODE('if (sizeof(off_t) < 8) return 1', ++ if conf.CHECK_CODE('char dummy[(sizeof(off_t) < 8) ? -1 : 1]', + define, +- execute=True, ++ execute=False, + cflags='-D_FILE_OFFSET_BITS=64', + msg='Checking for -D_FILE_OFFSET_BITS=64'): + conf.DEFINE('_FILE_OFFSET_BITS', 64) + return True + +- if conf.CHECK_CODE('if (sizeof(off_t) < 8) return 1', ++ if conf.CHECK_CODE('char dummy[(sizeof(off_t) < 8) ? -1 : 1]', + define, +- execute=True, ++ execute=False, + cflags='-D_LARGE_FILES', + msg='Checking for -D_LARGE_FILES'): + conf.DEFINE('_LARGE_FILES', 1) diff --minimal -Nru tevent-0.9.39/debian/patches/series tevent-0.9.39/debian/patches/series --- tevent-0.9.39/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ tevent-0.9.39/debian/patches/series 2019-09-06 21:41:32.000000000 +0200 @@ -0,0 +1 @@ +cross.patch diff --minimal -Nru tevent-0.9.39/debian/rules tevent-0.9.39/debian/rules --- tevent-0.9.39/debian/rules 2019-08-29 13:31:30.000000000 +0200 +++ tevent-0.9.39/debian/rules 2019-09-06 21:41:32.000000000 +0200 @@ -1,5 +1,10 @@ #!/usr/bin/make -f +-include /usr/share/dpkg/buildtools.mk +export CC +PKG_CONFIG ?= pkg-config +export PKGCONFIG=${PKG_CONFIG} + CFLAGS = -g -Wall ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))