Source: mutt Version: 1.7.1-2 Tags: patch User: [email protected] Usertags: rebootstrap
mutt fails to cross build from source, because it compiles build tools such as makedoc or mutt_md5 using the host architecture compiler. Beyond that, configure misdetect the permission for /var/mail causing mutt_dotlock to be skipped. Using the build architecture compiler for build tools is not entirely trivial, because those tools include config.h. It generally contains test results for the host architecture, which may be different for the host architecture. Thus config.h must not be included when using the build architecture compiler. This may be considered a regression for native builds and thus unsuitable for upstream. I don't know a proper fix here. Still the attached patch makes cross builds work on Debian. Please consider applying it. Helmut
diff --minimal -Nru mutt-1.7.1/debian/changelog mutt-1.7.1/debian/changelog --- mutt-1.7.1/debian/changelog 2016-10-16 21:17:38.000000000 +0200 +++ mutt-1.7.1/debian/changelog 2016-11-06 07:17:04.000000000 +0100 @@ -1,3 +1,12 @@ +mutt (1.7.1-2.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Fix FTCBFS: (Closes: #-1) + + cross.patch: compile build tools with build arch compiler + + Tell configure about /var/mail permission + + -- Helmut Grohne <[email protected]> Sun, 06 Nov 2016 06:40:43 +0100 + mutt (1.7.1-2) unstable; urgency=medium * Dropped neomutt-devel/837601-do-not-segfault-on-new-mails.patch which diff --minimal -Nru mutt-1.7.1/debian/control mutt-1.7.1/debian/control --- mutt-1.7.1/debian/control 2016-10-16 21:17:38.000000000 +0200 +++ mutt-1.7.1/debian/control 2016-11-06 06:47:22.000000000 +0100 @@ -7,6 +7,7 @@ Christoph Berg <[email protected]>, Faidon Liambotis <[email protected]> Build-Depends: debhelper (>= 9), dh-autoreconf, + autoconf-archive, docbook-xml, docbook-xsl, gawk, diff --minimal -Nru mutt-1.7.1/debian/patches/cross.patch mutt-1.7.1/debian/patches/cross.patch --- mutt-1.7.1/debian/patches/cross.patch 1970-01-01 01:00:00.000000000 +0100 +++ mutt-1.7.1/debian/patches/cross.patch 2016-11-06 07:14:44.000000000 +0100 @@ -0,0 +1,157 @@ +Subject: compile build tools with _FOR_BUILD settings +From: Helmut Grohne <[email protected]> + +Index: mutt-1.7.1/configure.ac +=================================================================== +--- mutt-1.7.1.orig/configure.ac ++++ mutt-1.7.1/configure.ac +@@ -32,6 +32,7 @@ + if test "$ac_cv_prog_cc_c99" = "no"; then + AC_ERROR([Compiler does not support C99. Aborting.]) + fi ++AC_PROG_CC_FOR_BUILD + + if test "$CC" = "gcc"; then + CFLAGS="$CFLAGS -fno-delete-null-pointer-checks" +Index: mutt-1.7.1/doc/Makefile.am +=================================================================== +--- mutt-1.7.1.orig/doc/Makefile.am ++++ mutt-1.7.1/doc/Makefile.am +@@ -130,11 +130,14 @@ + + Muttrc: stamp-doc-rc + +-stamp-doc-rc: $(top_srcdir)/init.h makedoc$(EXEEXT) $(srcdir)/Muttrc.head ++makedoc$(BUILD_EXEEXT): makedoc.c makedoc-defs.h ++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $< -o $@ ++ ++stamp-doc-rc: $(top_srcdir)/init.h makedoc$(BUILD_EXEEXT) $(srcdir)/Muttrc.head + -rm -f Muttrc stamp-doc-rc + sed -e 's,[@]docdir[@],$(docdir),' $(srcdir)/Muttrc.head > Muttrc + $(CPP) $(AM_CPPFLAGS) $(DEFS) $(CPPFLAGS) -D_MAKEDOC -C \ +- $(top_srcdir)/init.h | ./makedoc$(EXEEXT) -c >> Muttrc ++ $(top_srcdir)/init.h | ./makedoc$(BUILD_EXEEXT) -c >> Muttrc + touch stamp-doc-rc + + manual.html: $(srcdir)/html.xsl $(srcdir)/mutt.xsl stamp-doc-xml $(srcdir)/mutt.css +@@ -189,8 +192,8 @@ + + update-doc: stamp-doc-xml stamp-doc-chunked stamp-doc-rc manual.txt manual.html + +-muttrc.man: makedoc$(EXEEXT) $(top_srcdir)/init.h muttrc.man.head muttrc.man.tail +- $(MAKEDOC_CPP) $(top_srcdir)/init.h | ./makedoc$(EXEEXT) -m | \ ++muttrc.man: makedoc$(BUILD_EXEEXT) $(top_srcdir)/init.h muttrc.man.head muttrc.man.tail ++ $(MAKEDOC_CPP) $(top_srcdir)/init.h | ./makedoc$(BUILD_EXEEXT) -m | \ + cat $(srcdir)/muttrc.man.head - $(srcdir)/muttrc.man.tail\ + > muttrc.man + +@@ -210,12 +213,12 @@ + smime_keys.1: $(srcdir)/smime_keys.man + $(EDIT) $(srcdir)/smime_keys.man > $@ + +-stamp-doc-xml: makedoc$(EXEEXT) $(top_srcdir)/init.h \ ++stamp-doc-xml: makedoc$(BUILD_EXEEXT) $(top_srcdir)/init.h \ + manual.xml.head $(top_srcdir)/functions.h $(top_srcdir)/OPS* manual.xml.tail \ + $(srcdir)/gen-map-doc + ( date=`head -n 1 $(top_srcdir)/ChangeLog.neomutt | LC_ALL=C cut -b 1-10` && \ + sed -e "s/@VERSION\@/$(PACKAGE_VERSION) (1.7.1)/" $(srcdir)/manual.xml.head && \ +- $(MAKEDOC_CPP) $(top_srcdir)/init.h | ./makedoc$(EXEEXT) -s && \ ++ $(MAKEDOC_CPP) $(top_srcdir)/init.h | ./makedoc$(BUILD_EXEEXT) -s && \ + $(MAKEDOC_CPP) $(top_srcdir)/functions.h | \ + perl $(srcdir)/gen-map-doc $(srcdir)/manual.xml.tail $(top_srcdir)/OPS* \ + ) > manual.xml +Index: mutt-1.7.1/doc/makedoc.c +=================================================================== +--- mutt-1.7.1.orig/doc/makedoc.c ++++ mutt-1.7.1/doc/makedoc.c +@@ -27,36 +27,16 @@ + ** + **/ + +-#if HAVE_CONFIG_H +-# include "config.h" +-#endif +- + #include <stdio.h> + #include <stdlib.h> + #include <string.h> + #include <ctype.h> +- + #include <errno.h> +- +-#ifdef HAVE_UNISTD_H +-# include <unistd.h> +-#endif +- +-#ifdef HAVE_GETOPT_H +-# include <getopt.h> +-#endif ++#include <unistd.h> ++#include <getopt.h> + + #include "makedoc-defs.h" + +-#ifndef HAVE_STRERROR +-#ifndef STDC_HEADERS +-extern int sys_nerr; +-extern char *sys_errlist[]; +-#endif +- +-#define strerror(x) ((x) > 0 && (x) < sys_nerr) ? sys_errlist[(x)] : 0 +-#endif /* !HAVE_STRERROR */ +- + extern int optind; + + #define BUFFSIZE 2048 +Index: mutt-1.7.1/Makefile.am +=================================================================== +--- mutt-1.7.1.orig/Makefile.am ++++ mutt-1.7.1/Makefile.am +@@ -101,14 +101,15 @@ + pgpring_DEPENDENCIES = $(LIBOBJS) $(INTLDEPS) + + mutt_md5_SOURCES = md5.c +-mutt_md5_CFLAGS = -DMD5UTIL +-mutt_md5_LDADD = + + txt2c_SOURCES = txt2c.c + txt2c_LDADD = + + noinst_PROGRAMS = $(MUTT_MD5) txt2c + ++mutt_md5$(BUILD_EXEEXT): md5.c md5.h ++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) -DMD5UTIL $(LDFLAGS_FOR_BUILD) $< -o $@ ++ + mutt_dotlock.c: dotlock.c + cp $(srcdir)/dotlock.c mutt_dotlock.c + +Index: mutt-1.7.1/md5.c +=================================================================== +--- mutt-1.7.1.orig/md5.c ++++ mutt-1.7.1/md5.c +@@ -20,10 +20,6 @@ + + /* Written by Ulrich Drepper <[email protected]>, 1995. */ + +-#ifdef HAVE_CONFIG_H +-# include <config.h> +-#endif +- + #include "md5.h" + + #include <stddef.h> +Index: mutt-1.7.1/md5.h +=================================================================== +--- mutt-1.7.1.orig/md5.h ++++ mutt-1.7.1/md5.h +@@ -28,9 +28,7 @@ + #if HAVE_INTTYPES_H + # include <inttypes.h> + #endif +-#if HAVE_STDINT_H || _LIBC +-# include <stdint.h> +-#endif ++#include <stdint.h> + #if HAVE_SYS_TYPES_H + # include <sys/types.h> + #endif diff --minimal -Nru mutt-1.7.1/debian/patches/series mutt-1.7.1/debian/patches/series --- mutt-1.7.1/debian/patches/series 2016-10-16 21:17:38.000000000 +0200 +++ mutt-1.7.1/debian/patches/series 2016-11-06 06:57:05.000000000 +0100 @@ -21,3 +21,4 @@ upstream/749483-conststrings.patch upstream/644992-ipv6-literal.patch upstream/549204-clear-N-on-readonly-imap-folders.patch +cross.patch diff --minimal -Nru mutt-1.7.1/debian/rules mutt-1.7.1/debian/rules --- mutt-1.7.1/debian/rules 2016-10-16 21:17:38.000000000 +0200 +++ mutt-1.7.1/debian/rules 2016-11-06 07:22:03.000000000 +0100 @@ -7,9 +7,15 @@ %: dh $@ --with autoreconf --builddirectory=debian/build +# On Debian systems, we can assume that build arch permission matches host arch +# permission. +mailpath=/var/mail +export mutt_cv_worldwrite=$(shell stat -c %A $(mailpath) | grep -q '^........w.' && echo yes || echo no) +export mutt_cv_groupwrite=$(shell stat -c %A $(mailpath) | grep -q '^.....w....' && echo yes || echo no) + override_dh_auto_configure: dh_auto_configure -- \ - --with-mailpath=/var/mail \ + --with-mailpath=$(mailpath) \ \ --enable-compressed \ --enable-debug \

