On Apr 3, 2014, at 7:25 PM, Kern Sibbald <k...@sibbald.com> 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 <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&amp;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

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

------------------------------------------------------------------------------
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to