Source: abyss Version: 2.1.5-3 Severity: important SUMMARY: abyss fails to build on hurd - googletest EXPECT_DEATH
DISCOVERY: Found by Samuel Thibault as followup of https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=920240 DESCRIPTION: Abyss-2.1.5-3 + the patch https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=920240;filename=hurd;msg=15 gives the build error on hurd: Common/SAM.cc: In member function 'virtual void parseCigarDeath_invalid_cigar_Test::TestBody()': Common/SAM.cc:62:2: error: 'EXPECT_DEATH' was not declared in this scope EXPECT_DEATH(SAMAlignment::parseCigar("20SS", false), "error: invalid CIGAR: `20SS'"); ^~~~~~~~~~~~ This might be a conflict between gtest-dev (googletest) 1.7.0 and 1.8.1-3. CONTEXT: On the exodar GNU/hurd emulation: $ uname -a GNU exodar 0.9 GNU-Mach 1.8+git20181103-486-dbg/Hurd-0.9 i686-AT386 GNU $ cat /proc/hostinfo Basic info: max_cpus = 1 /* max number of cpus possible */ avail_cpus = 1 /* number of cpus now available */ memory_size = 3221151744 /* size of memory in bytes */ cpu_type = 19 /* cpu type */ cpu_subtype = 1 /* cpu subtype */ Scheduling info: min_timeout = 10 /* minimum timeout in milliseconds */ min_quantum = 100 /* minimum quantum in milliseconds */ Load info: avenrun[3] = { 0.10, 0.28, 0.60 } mach_factor[3] = { 0.89, 0.81, 0.64 } $ dpkg -l |egrep "abyss|gcc|g\+\+|google|gtest" ii g++ 4:8.2.0-2 hurd-i386 GNU C++ compiler ii g++-8 8.2.0-14 hurd-i386 GNU C++ compiler ii gcc 4:8.2.0-2 hurd-i386 GNU C compiler ii gcc-8 8.2.0-14 hurd-i386 GNU C compiler ii gcc-8-base:hurd-i386 8.2.0-14 hurd-i386 GCC, the GNU Compiler Collection (base package) ii googletest:hurd-i386 1.8.1-3 hurd-i386 Google's C++ test framework sources ii libgcc-8-dev:hurd-i386 8.2.0-14 hurd-i386 GCC support library (development files) ii libgcc1:hurd-i386 1:8.2.0-14 hurd-i386 GCC support library ii libgtest-dev:hurd-i386 1.8.1-3 hurd-i386 Google's framework for writing C++ tests REPRODUCE: On exodar: $ apt-get source abyss $ apt-get build-dep abyss $ patch --verbose -p1 < file.patch where file.patch is the content of: https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=920240;filename=hurd;msg=15 $ fakeroot debian/rules binary ... make[3]: Entering directory '/home/boud-guest/abyss-2.1.5/Unittest' make[3]: 'common_stringutil' is up to date. make[3]: 'common_histogram' is up to date. make[3]: 'common_bitutil' is up to date. make[3]: 'common_kmer' is up to date. make[3]: 'common_sequence' is up to date. make[3]: 'common_KmerIterator' is up to date. g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../lib/gtest-1.7.0/include -DGTEST_USE_OWN_TR1_TUPLE=0 -I/home/boud-guest/abyss-2.1.5 -Wdate-time -D_FORTIFY_SOURCE=2 -isystem/home/boud-guest/abyss-2.1.5/boost_1_56_0 -Wall -Wextra -pthread -Wno-error -g -O2 -fdebug-prefix-map=/home/boud-guest/abyss-2.1.5=. -fstack-protector-strong -Wformat -Werror=format-security -DGTEST_USE_OWN_TR1_TUPLE=0 -c -o Common/SAM.o Common/SAM.cc Common/SAM.cc: In member function 'virtual void parseCigarDeath_invalid_cigar_Test::TestBody()': Common/SAM.cc:62:2: error: 'EXPECT_DEATH' was not declared in this scope EXPECT_DEATH(SAMAlignment::parseCigar("20SS", false), "error: invalid CIGAR: `20SS'"); ^~~~~~~~~~~~ Common/SAM.cc:62:2: note: suggested alternative: 'EXPECT_NEAR' EXPECT_DEATH(SAMAlignment::parseCigar("20SS", false), "error: invalid CIGAR: `20SS'"); ^~~~~~~~~~~~ EXPECT_NEAR Makefile:1302: recipe for target 'Common/SAM.o' failed make[3]: *** [Common/SAM.o] Error 1 make[3]: Leaving directory '/home/boud-guest/abyss-2.1.5/Unittest' Makefile:2060: recipe for target 'check-am' failed HYPOTHESIS/SUGGESTION: Does the hardwired directory name lib/gtest-1.7.0/ imply that the files there are hardwired to version 1.7.0 of googletest/libgtest-dev? The debian unstable versions of these are both 1.8.1-3 (see above). $ grep --color=always -r "1\.7\.0" configure.ac Makefile.am configure.ac: lib/gtest-1.7.0/Makefile Makefile.am:GTest=lib/gtest-1.7.0 If the lib/gtest-1.7.0/ directory is self-contained, then there should not be any dependence in the control file, but: $ egrep -n "google|gtest" debian/control 12: libgtest-dev, So my guess is that the lib/gtest-1.7.0/ directory is not self-contained. Googletest-1.8.1-3 itself built OK on hurd: https://buildd.debian.org/status/fetch.php?pkg=googletest&arch=hurd-i386&ver=1.8.1-3&stamp=1547345424&raw=0 Lintian gives a "conflicts-with-version" info-level flag for googletest-1.8.1-3 because of the use of "Conflicts:" instead of "Breaks:", but since the abyss debian/control doesn't constrain the libgtest-dev version, that's only a problem for googletest, not directly for abyss: https://lintian.debian.org/full/[email protected]#googletest_1.8.1-3 COMMENT: I don't know what the wider Debian community view is on the severity issue for hurd bugs, so pending a wider opinion, I'm putting 'important'. There *is* a porter box available, and a mailing list debian-hurd@, and an irc channel #debian-hurd, and so far, I've found little difficulty as a complete novice to hurd/mach in terms of bug searching/reporting/fixing. In any case, I'm not going to adjudicate between you two (Andreas + Samuel), but I have to choose something for filing the bug report, so my judgment is 'important'. Hope this bug report helps Boud

