Hi, (debian-perl in CC since this might be connected to some Makefile.PL which is not interpreted correctly.)
On Mon, Mar 01, 2021 at 12:27:45AM +0200, Adrian Bunk wrote: > Control: reopen -1 > Control: tags -1 ftbfs > Control: retitle -1 jellyfish FTBFS with -I in builddir > > On Thu, Dec 03, 2020 at 05:06:00PM +0100, Andreas Tille wrote: > > mips64el-linux-gnuabi64-gcc -pthread -Wno-unused-result -Wsign-compare > > -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat > > -Werror=format-security -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. > > -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time > > -D_FORTIFY_SOURCE=2 -fPIC > > -I/build/jellyfishwEbe4/jellyfish-2.3.0/debian/tmp//usr/include/jellyfish-2.3.0 > > -I/usr/include/python3.9 -c swig_wrap.cpp -o > > build/temp.linux-mips64el-3.9/swig_wrap.o -std=c++0x > > swig_wrap.cpp:2826:10: fatal error: jellyfish/mer_dna.hpp: No such file or > > directory > > 2826 | #include <jellyfish/mer_dna.hpp> > > | ^~~~~~~~~~~~~~~~~~~~~~~ > > compilation terminated. > > error: command '/usr/bin/mips64el-linux-gnuabi64-gcc' failed with exit code > > 1 > > > > > > Any idea what might be wrong here? > > I: NOTICE: Log filtering will replace > 'build/jellyfish-IwEbe4/jellyfish-2.3.0' with '<<PKGBUILDDIR>>' > I: NOTICE: Log filtering will replace 'build/jellyfish-IwEbe4' with > '<<BUILDDIR>>' > > Compare with > -I/build/jellyfishwEbe4/jellyfish-2.3.0/debian/tmp//usr/include/jellyfish-2.3.0 > > jellyfish-IwEbe4 -> jellyfishwEbe4 > > This looks like a variant of the -L problem handled with > debian/patches/fix_replacement_of_-L_option.patch So your suspicion is that the issue is created in cases where the build dir by chance contains a '-I' string, right? I tried to verify this by creating a build dir /tmp/jellyfish-I-L-test and simply called `debuild` there (since I did not found any comparable sed invocation like in the -L case). Astonishingly the resulting error was different than expected: ... Running Mkbootstrap for jellyfish () chmod 644 "jellyfish.bs" "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- jellyfish.bs blib/arch/auto/jellyfish/jellyfish.bs 644 rm -f blib/arch/auto/jellyfish/jellyfish.so x86_64-linux-gnu-gcc -g -O2 -ffile-prefix-map=/tmp/jellyfish-I-L-test=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -lpthread -shared -L/usr/local/lib -fstack-protector-strong swig_wrap.o -o blib/arch/auto/jellyfish/jellyfish.so \ -ljellyfish-2.0 -lpthread \ /usr/bin/ld: cannot find -ljellyfish-2.0 collect2: error: ld returned 1 exit status make[2]: *** [Makefile:480: blib/arch/auto/jellyfish/jellyfish.so] Fehler 1 make[2]: Verzeichnis „/tmp/jellyfish-I-L-test/swig/perl5“ wird verlassen ... (sorry for the German locale). The relevant part in the Makefile that was createt out of swig/perl5/Makefile.PL[1] seems to be: ... # As Mkbootstrap might not write a file (if none is required) # we use touch to prevent make continually trying to remake it. # The DynaLoader only reads a non-empty file. $(BASEEXT).bs : $(FIRST_MAKEFILE) $(BOOTDEP) $(NOECHO) $(ECHO) "Running Mkbootstrap for $(BASEEXT) ($(BSLOADLIBS))" $(NOECHO) $(PERLRUN) \ "-MExtUtils::Mkbootstrap" \ -e "Mkbootstrap('$(BASEEXT)','$(BSLOADLIBS)');" $(NOECHO) $(TOUCH) "$(BASEEXT).bs" $(CHMOD) $(PERM_RW) "$(BASEEXT).bs" ... I admit I have no idea how to debug this or how to force the proper -L option into this command line. Any help is really appreciated. Kind regards Andreas. [1] https://salsa.debian.org/med-team/jellyfish/-/blob/master/swig/perl5/Makefile.PL -- http://fam-tille.de