Source: sope Version: 4.0.5-2 Severity: important Tags: sid buster ftbfs patch User: debian-sup...@lists.debian.org Usertags: sh4
Your package fails to build on sh4: | Making all for subproject FoundationExt... | cd .; \ | /usr/share/GNUstep/Makefiles/mkinstalldirs ./obj/FoundationExt.obj/ | [...] | gcc PrintfFormatScanner.m -c \ | -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -fgnu-runtime -O0 -g -frecord-gcc-switches -fconstant-string-class=NSConstantString -I. -I.. -I../../../sope-core/NGExtensions -I. -I/usr/local/include/GNUstep -I/usr/include/GNUstep \ | -o obj/FoundationExt.obj/PrintfFormatScanner.m.o | PrintfFormatScanner.m: In function '-[PrintfFormatScanner stringWithFormat:arguments:]': | PrintfFormatScanner.m:43:9: error: wrong type argument to unary exclamation mark | if (!args) | ^ | make[8]: *** [/usr/share/GNUstep/Makefiles/rules.make:479: obj/FoundationExt.obj/PrintfFormatScanner.m.o] Error 1 On sh4, va_list is implemented as a struct, just like on arm* and alpha. I'd appreciate if you apply the attached trivial patch; it would allow sogo to be built on sh4 and will help us achieve the goal of having all GNUstep packages available on all architectures. FWIW, I have tested it in a QEMU-based sh4 chroot on amd64; it compiles fine but the build fails with: | dh_shlibdeps -a | dh_shlibdeps: file -e apptype -e ascii -e encoding -e cdf -e compress -e tar debian/libsope1/usr/lib/libNGMime.so.4.9.3 returned exit code 1 However, other GNUstep library packages fail with exactly the same error so it's probably something wrong with my setup or a bug somewhere that might be fixed (the host is running stretch).
Description: Fix FTBFS on sh4. Author: Yavor Doganov <ya...@gnu.org> Forwarded: no Last-Update: 2019-01-21 --- --- sope.orig/sope-gdl1/GDLAccess/EOSQLQualifier.m +++ sope/sope-gdl1/GDLAccess/EOSQLQualifier.m @@ -321,7 +321,7 @@ back to an array (the EOQualifierEnumScannerHandler does that). Works on ix86, but *NOT* on iSeries or zServer !! */ -#if defined(__s390__) || defined(__arm__) || defined(__aarch64__) || defined(__alpha__) +#if defined(__s390__) || defined(__arm__) || defined(__aarch64__) || defined(__alpha__) || defined(__sh__) qualifierString = [formatScanner performSelector:@selector(stringWithFormat:arguments:) withObject:_qualifierFormat --- sope.orig/sope-gdl1/GDLAccess/FoundationExt/PrintfFormatScanner.m +++ sope/sope-gdl1/GDLAccess/FoundationExt/PrintfFormatScanner.m @@ -36,10 +36,10 @@ // possible to be NULL at all, but we're called with an array as // argument instead of a va_list in EOSQLQualifier and are thus // calling __va_copy on an array, which is something that really - // shouldn't be done. Checking whether args is NULL breaks on arm - // and alpha however, because a va_list isn't a pointer, so we - // don't do the check on arm and alpha. -#if !defined(__arm__) && !defined(__aarch64__) && !defined(__alpha__) + // shouldn't be done. Checking whether args is NULL breaks on arm, + // alpha and sh4 however, because a va_list isn't a pointer, so we + // don't do the check on arm, alpha and sh4. +#if !defined(__arm__) && !defined(__aarch64__) && !defined(__alpha__) && !defined(__sh__) if (!args) return format; #endif