> On Aug 30, 2018, at 4:27 AM, Radosław Korzeniewski
> <rados...@korzeniewski.net> wrote:
>
> Hello Dan,
>
> śr., 29 sie 2018 o 20:35 Dan Langille <d...@langille.org> napisał(a):
>> > On Aug 29, 2018, at 2:08 PM, Dan Langille <d...@langille.org> wrote:
>> >
>> >> On Aug 28, 2018, at 8:51 AM, Radosław Korzeniewski
>> >> <rados...@korzeniewski.net> wrote:
>> >>
>> >> Hello,
>> >>
>> >> wt., 28 sie 2018 o 14:42 Dan Langille <d...@langille.org> napisał(a):
>> >> The comment in the patch is not accurate: "not defined on BSD systems"
>> >> because this is not always true.
>> >>
>> >> Sorry about that. I'm not a *BSD expert, I wrote my understanding of the
>> >> problem.
>> >>
>> >>
>> >> It appears to be a special circumstance as indicated by my initial
>> >> queries here:
>> >> https://lists.freebsd.org/pipermail/freebsd-ports/2018-August/114171.html
>> >>
>> >> From the above URL:
>> >>
>> >> "I'd say it's libc++ missing its errno.h having ENODATA defined if the
>> >> following is true:
>> >>
>> >> - both builds are using clang++
>> >> - both builds are using libc++
>> >>
>> >> That header defining ENODATA exists in 11.2 and doesn't exist in 10.4
>> >> (contrib/libc++/include/errno.h)."
>> >>
>> >> On a FreeBSD 11 box, I get this value:
>> >>
>> >> $ grep ENODATA /usr/src/contrib/libc++/include/errno.h
>> >> #ifndef ENODATA
>> >> #define ENODATA 9919
>> >>
>> >> Whereas:
>> >> $ grep EPIPE /usr/include/c++/v1/errno.h
>> >> #ifndef EPIPE
>> >> #define EPIPE 9950\
>> >>
>> >> On FreeBSD 10.4, we see:
>> >>
>> >> $ grep EPIPE *
>> >> errno.h:#define EPIPE 32 /* Broken pipe */
>> >>
>> >> I do not know the implications of using a different value here. Can you
>> >> advise here please?
>> >>
>> >> Well, the fix to this problem is the solution existed in Bacula for a
>> >> very long time. I just placed it in one file (bsockcore.c) but forget to
>> >> add it to other one (bsock.c). I'm not sure who was an original author
>> >> for this fix, I have to check a git log.
>> >>
>> >> I am still working on finding a better solution.
>> >>
>> >> Great! Thank you.
>> >
>> > I got a reply back from the FreeBSD ports mailing list. I do not yet see
>> > that in the mailing list archives, so I will copy/paste it here.
>> >
>> > The patch has been uploaded to:
>> > https://gist.github.com/dlangille/2f59782e4b2ed3bb15922932be8aa0c3
>> >
>> > Does this suggestion make more sense than:
>> > http://www.bacula.org/git/cgit.cgi/bacula/commit/?h=Branch-9.2&id=eea817f035d32221ab46d1a4f95193cd4d6dbda7
>> >
>> > Thank you.
>> >
>> > ###
>> >
>> > You can patch the port for now and submit it upstream. Looks like they
>> > had ENODATA defined as EPIPE and missed it when they refactored:
>> > http://www.bacula.org/git/cgit.cgi/bacula/commit/bacula/src/lib/bsock.c?h=Release-9.2.1&id=c3c124adbe784a55bb31c66401630b2d22768baf.
>> > Now that code is in:
>> > http://www.bacula.org/git/cgit.cgi/bacula/tree/bacula/src/lib/bsockcore.c?h=Release-9.2.1#n44,
>> > but it needs to be in both files.
>> > I think it would make more sense to factor it out to src/baconfig.h.
>> > That way, they could remove the #if block from bsockcore.c. I've
>> > attached a patch and put it in plain text below in case it gets
>> > scrubbed.
>
> As I understand it, the patch does not propose the "better fix" but to place
> an existing fix in the different place. Right?
When I mentioned “better fix”, I was looking for suggestions from those who
code more on FreeBSD than I do. It was not a judgement of the patch. I thought
the issue was with the FreeBSD system include files and a fix there would
remove the need for the patch.
I think the most recent suggestion is better because it moves the define to a
.h file
I am on my phone but I seem to recall the opinion indicated this was where the
definition resided before the refactoring.
--
Dan Langille
http://langille.org/
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel