On 04/03/2014 10:32 PM, Dan Langille wrote: > On 2014-04-03 02:27 PM, Kern Sibbald wrote: >> Strange. I build FreeBSD binaries, and I never had to make *any* >> patches to Bacula to build an run it. I seem to be missing something >> here. Please don't get me wrong, I am not complaining or anything like >> that, but I have a hard time understanding what the real problem is >> other than "printf" doesn't work like echo and what to do about it in >> a portable way. > > I have no explanation as to why I'm encountering this problem, but I > have a simple test below. > > > I hope what I have here may lead to a solution. I don't have one, but > I know why the code fails: > > To test, I removed the patches for 5.2.12 which change ECHO to echo > (see my previous post below for an outline of those changes). > > After doing a make configure, I run make. These are the errors: > > # make > ===> Building for bacula-server-5.2.12_3 > ==>Entering directory > /var/ports/root/bacula-server/work/bacula-5.2.12/src > ==>Entering directory > /var/ports/root/bacula-server/work/bacula-5.2.12/scripts > ==>Entering directory > /var/ports/root/bacula-server/work/bacula-5.2.12/src/cats > "Makefile", line 518: Need an operator > make: fatal errors encountered -- cannot continue > ====== Error in > /var/ports/root/bacula-server/work/bacula-5.2.12/src/cats ====== > *** [all] Error code 1 > 1 error > ===> Compilation failed unexpectedly. > Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the > failure to > the maintainer. > *** [do-build] Error code 1 > > Stop in /root/bacula-server. > *** [build] Error code 1 > > Stop in /root/bacula-server. > > I have copied src/cats/Makefile to > http://www.langille.org/tmp/src-cats-Makefile.txt so you can view it. > > For comparison, this is the file created with the FreeBSD patches for > echo: > > http://www.langille.org/tmp/src-cats-Makefile2.txt > > The file sizes? > > -rw-r--r-- 1 dan www 72754 Apr 3 19:54 src-cats-Makefile2.txt > -rw-r--r-- 1 dan www 72757 Apr 3 19:48 src-cats-Makefile.txt > > > Only 3 bytes difference. The error is clear in the diff. A missing > newline: > > $ diff src-cats-Makefile.txt src-cats-Makefile2.txt > 432c432 > < @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> > Makefile > --- >> @echo "# DO NOT DELETE: nice dependency list follows" >> Makefile > 456c456,457 > < # DO NOT DELETE: nice dependency list followsnbvfs.lo: bvfs.c > ../bacula.h ../config.h /usr/include/stdint.h \ > --- >> # DO NOT DELETE: nice dependency list follows >> bvfs.lo: bvfs.c ../bacula.h ../config.h /usr/include/stdint.h \ > > See that 'n' after 'follows'? That's not supposed to be there. It's > supposed to be a newline. > > Could that be the \n from " ECHO='printf %s\n'" is causing an issue? Yes, this is exactly where the problem is coming from. What I would like to know is where does the line:
" ECHO='printf %s\n'" come from. Hopefully it is not something in Bacula. Why is ECHO set to anything other than echo or /bin/echo? Best regards, Kern > > > Kern, this is the test you can try on your FreeBDS system: > > Which let me to this test: > > # echo testing > testing > # printf testing > testing# > # > # > # printf %s\n testing > testingn# printf %s\n, testing > testingn,# > # printf "%s\n", testing > testing > ,# printf "%s\n" testing > testing > # > > It seems you have to have "double quotes" > > So I tried: ECHO='printf "%s\n"' but that gives: > > config.status: creating src/config.h > config.status: executing libtool commands > ./config.status: "printf: not found > config.status: executing default-1 commands > > > leading to: > > /var/ports/root/bacula-server/work/bacula-5.2.12/libtool: not found > > > and more > > > > > I also tried: ECHO='printf \'%s\n\'' > > > But that led to: > > checking how to print strings... ./configure: 4: Syntax error: end of > file unexpected (expecting word) > ./configure: 6396: Syntax error: Error in command substitution > ===> Script "configure" failed unexpectedly. > > > > Does this help? > >> >> Best regards, >> Kern >> >> On 04/03/2014 04:00 PM, Dan Langille wrote: >> > On 2014-04-03 09:51 AM, Martin Simmons wrote: >> >> This problem with ECHO affects the main bacula makefiles as well. >> The >> >> definition of ECHO comes from libtool.m4, but it will not work in >> makefiles >> >> because of the backslash. >> >> >> >> I think the makefiles should stop using ECHO, or at least >> Make.common.in >> >> should do something like: >> >> >> >> ECHO = @MAKEFILEECHO@ >> >> >> >> where configure can define MAKEFILEECHO correctly. >> >> >> >> __Martin >> > >> > I'm all for doing something like that. >> > >> > FYI, FreeBSD has had these patches for Bacula for years. If we can >> fix them all, it will simplify the porting process. Each new release, >> the patches need to be updated. >> > >> > [dan@slocum:/usr/ports/sysutils/bacula-server/files] $ grep ECHO >> patch-src__* >> > patch-src__cats__Makefile.in:- @$(ECHO) "# DO NOT DELETE: nice >> dependency list follows" >> Makefile >> > patch-src__dird__Makefile.in:- @$(ECHO) "# DO NOT DELETE: nice >> dependency list follows" >> Makefile >> > patch-src__findlib__Makefile.in:- @$(ECHO) "# DO NOT DELETE: nice >> dependency list follows" >> Makefile >> > patch-src__lib__Makefile.in:- @$(ECHO) "# DO NOT DELETE: nice >> dependency list follows" >> Makefile >> > patch-src__stored__Makefile.in:- @$(ECHO) "# DO NOT DELETE: nice >> dependency list follows" >> Makefile >> > patch-src__tools__Makefile.in: $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c >> $(CPPFLAGS) $(PYTHON_INC) -I$(srcdir) -I$(basedir) $(DINCLUDE) >> $(CFLAGS) $< >> > patch-src__tools__Makefile.in:- @$(ECHO) "# DO NOT DELETE: nice >> dependency list follows" >> Makefile >> > >> > >> >> >> >> >> >> >> >>>>>>> On Wed, 2 Apr 2014 19:19:16 -0400, Dan Langille said: >> >>> >> >>> I had local changes for this echo problem. I just did a 'git >> stash' on my checkout so I could try 7.0.2 >> >>> >> >>> It fails. >> >>> >> >>> I notice that the 5.x code using: >> >>> >> >>> @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> >> Makefile >> >>> >> >>> It works. >> >>> >> >>> This makes me think: has configure changed? >> >>> >> >>> So I went looking at another regression testing jail. I found >> this: >> >>> >> >>> $ diff configure configure.orig >> >>> 6056c6056 >> >>> < ECHO='echo' >> >>> --- >> >>> > ECHO='printf %sn' >> >>> >> >>> I have a local patch. That's why it works here. I'm sure if we >> search the archives, I reported this same problem back when I first >> set up my first round of regression testing. >> >>> >> >>> Look what I have in my regression test script: >> >>> >> >>> # patch the printf / echo problem >> >>> cd bacula >> >>> patch -N < ${CONFIG_DIR_SRC}/patch-bacula-printf >> >>> cd - >> >>> >> >>> Here is the patch itself: >> >>> >> >>> $ cat patch-bacula-printf >> >>> --- bacula/configure.orig >> >>> +++ bacula/configure >> >>> @@ -6045,7 +6045,7 @@ if test "X`( print -r -- -n ) 2>/dev/null`" >> = X-n && >> >>> test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then >> >>> ECHO='print -r --' >> >>> elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then >> >>> - ECHO='printf %sn' >> >>> + ECHO='echo' >> >>> else >> >>> # Use this function as a fallback that always works. >> >>> func_fallback_echo () >> >>> >> >>> >> >>> And this is the patch I just created for bacula7: >> >>> >> >>> $ cat patch-bacula7-printf >> >>> --- configure~ 2014-04-02 21:55:27.000000000 +0000 >> >>> +++ configure 2014-04-02 23:12:21.022646230 +0000 >> >>> @@ -5977,7 +5977,7 @@ >> >>> test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then >> >>> ECHO='print -r --' >> >>> elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then >> >>> - ECHO='printf %sn' >> >>> + ECHO='echo' >> >>> else >> >>> # Use this function as a fallback that always works. >> >>> func_fallback_echo () >> >>> >> >>> >> >>> That local patch allows the regression testing to proceed >> unhindered on FreeBSD (9.2 in this particular case). It's running now. >> >>> >> >>> On Apr 1, 2014, at 9:27 PM, Dan Langille <d...@langille.org> >> wrote: >> >>> >> >>> > In addition to my previous post, this just in: >> http://regress.bacula.org/viewTest.php?onlyfailed&buildid=24144 [1] >> >>> > >> >>> > Only disk:tls-test failed this time. >> >>> > >> >>> > On Mar 31, 2014, at 11:16 AM, Kern Sibbald <k...@sibbald.com> >> wrote: >> >>> > >> >>> >> Hello Dan, >> >>> >> >> >>> >> Can you try applying the attached patch to release 7.0.0 and >> see if it >> >>> >> fixes the problem with the tls-test? I am not 100% convinced >> that it >> >>> >> will, but at least the code is much tighter now and will not >> store any >> >>> >> address if it is not either IPv4 or IPv6 and if IPv6 is not >> configured >> >>> >> and it resolves an IPv6 address, it will not be used. >> >>> >> >> >>> >> Best regards, >> >>> >> Kern >> >>> >> >> >>> >> On 03/31/2014 03:44 PM, Dan Langille wrote: >> >>> >>> On 2014-03-31 09:01 AM, Dan Langille wrote: >> >>> >>>> On 2014-03-31 07:36 AM, Kern Sibbald wrote: >> >>> >>>>> >> >>> >>>>> >> >>> >>>>> >> >>>>>>> Links: >> >>>>>>> ------ >> >>>>>>> [1] http://regress.bacula.org/buildSummary.php?buildid=24125 >> [2] >> >>>>>>> [2] https://lists.sourceforge.net/lists/listinfo/bacula-devel >> [3] >> >>>>>>> [3] http://www.enigmail.net/ [4] >> >>> >> >> >>> >> >> <ipv6_check.patch>------------------------------------------------------------------------------ >> >> >>> >> _______________________________________________ >> >>> >> Bacula-devel mailing list >> >>> >> Bacula-devel@lists.sourceforge.net >> >>> >> https://lists.sourceforge.net/lists/listinfo/bacula-devel [3] >> >>> > >> >>> > -- >> >>> > Dan Langille - http://langille.org [5] >> >>> > >> >>> > >> ------------------------------------------------------------------------------ >> >> >>> > _______________________________________________ >> >>> > Bacula-devel mailing list >> >>> > Bacula-devel@lists.sourceforge.net >> >>> > https://lists.sourceforge.net/lists/listinfo/bacula-devel [3] >> >>> >> >>> -- >> >>> Dan Langille - http://langille.org [5] >> >>> >> >>> >> > >> >> >> >> Links: >> ------ >> [1] http://regress.bacula.org/viewTest.php?onlyfailed&buildid=24144 >> [2] http://regress.bacula.org/buildSummary.php?buildid=24125 >> [3] https://lists.sourceforge.net/lists/listinfo/bacula-devel >> [4] http://www.enigmail.net/ >> [5] http://langille.org > ------------------------------------------------------------------------------ _______________________________________________ Bacula-devel mailing list Bacula-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-devel