On Apr 3, 2014, at 7:25 PM, Kern Sibbald <[email protected]> wrote: > 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.
I find it at line 6054 of configure;
ECHO='printf %s\n'
>
> 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 <[email protected]>
>>> 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 <[email protected]>
>>> 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
>>>>>>>> [email protected]
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/bacula-devel [3]
>>>>>>>
>>>>>>> --
>>>>>>> Dan Langille - http://langille.org [5]
>>>>>>>
>>>>>>>
>>> ------------------------------------------------------------------------------
>>>
>>>>>>> _______________________________________________
>>>>>>> Bacula-devel mailing list
>>>>>>> [email protected]
>>>>>>> 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
>>
>
--
Dan Langille - http://langille.org
signature.asc
Description: Message signed with OpenPGP using GPGMail
------------------------------------------------------------------------------
_______________________________________________ Bacula-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bacula-devel
