Bacula 9.2.1 fails on 10.4:

Dan Langille dan at langille.org
Wed Aug 29 17:59:37 UTC 2018


> On Aug 29, 2018, at 10:59 AM, Jason E. Hale <jhale at freebsd.org> wrote:
> 
> On Mon, Aug 27, 2018 at 7:42 PM Dan Langille <dan at langille.org> wrote:
>> 
>>> On Aug 27, 2018, at 7:26 PM, Yuri Pankov <yuripv at yuripv.net> wrote:
>>> 
>>> Dan Langille wrote:
>>>> Why would Bacula 9.2.1 compile on 11.2 but fail on 10.4?
>>>> The error is:
>>>> bsock.c:439:20: error: use of undeclared identifier 'ENODATA'
>>>> The complete build logs are at the following URLs. Can you see the cause.
>>>> 11.2: https://services.unixathome.org/poudriere/data/112amd64-default/2018-08-27_21h15m53s/logs/bacula9-client-9.2.1.log
>>>> 10.4: https://services.unixathome.org/poudriere/data/104amd64-default/2018-08-27_21h43m31s/logs/errors/bacula9-client-9.2.1.log
>>>> It doesn't make any sense to me.  Thanks.
>>> 
>>> 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).
>> 
>> What is a decent solution? Patch upstream? Patch the port?
>> 
>> Thank you.
>> 
> 
> You can patch the port for now and submit it upstream.

I think they have patched upstream already, just not released it:

http://www.bacula.org/git/cgit.cgi/bacula/commit/?h=Branch-9.2&id=eea817f035d32221ab46d1a4f95193cd4d6dbda7

> 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.

Thank you Jason, this is very helpful. I will pass this upsteam, and in the meantime, fix the port.

cheers.

> 
> Cheers,
> Jason
> 
> Index: sysutils/bacula9-server/files/patch-src_baconfig.h
> ===================================================================
> --- sysutils/bacula9-server/files/patch-src_baconfig.h  (nonexistent)
> +++ sysutils/bacula9-server/files/patch-src_baconfig.h  (working copy)
> @@ -0,0 +1,13 @@
> +--- src/baconfig.h.orig        2018-08-29 14:09:36 UTC
> ++++ src/baconfig.h
> +@@ -38,6 +38,10 @@
> + #define have_tls 0
> + #endif
> +
> ++#ifndef ENODATA
> ++#define ENODATA EPIPE
> ++#endif
> ++
> + #ifndef ETIME
> + #define ETIME ETIMEDOUT
> + #endif
> 
> Property changes on: sysutils/bacula9-server/files/patch-src_baconfig.h
> ___________________________________________________________________
> Added: fbsd:nokeywords
> ## -0,0 +1 ##
> +yes
> \ No newline at end of property
> Added: svn:eol-style
> ## -0,0 +1 ##
> +native
> \ No newline at end of property
> Added: svn:mime-type
> ## -0,0 +1 ##
> +text/plain
> \ No newline at end of property
> <bacula9-server.diff>



-- 
Dan Langille - BSDCan / PGCon
dan at langille.org





More information about the freebsd-ports mailing list