[ARGUS] argus-clients and mysql8

Andreas Hasenack andreas at canonical.com
Thu Aug 27 15:30:12 EDT 2020


Awesome, thanks! Sorry for not responding sooner, was on holidays and now
(today) we have ubuntu's feature freeze day, so quite busy :)

I'll try your changes shortly

On Thu, Aug 27, 2020 at 11:57 AM Carter Bullard <carter at qosient.com> wrote:

> Hey Andreas,
> I put in fixes for the my_bool in the newest versions of argus, 3.0.8.3,
> which should be on the server (either is or soon).
> For the clients I had to add a test for the include file stdbool.h … so
> need to add to ./configure.ac ...
>
> diff --git a/configure.ac b/configure.ac
> index dda9994a..60e39ae8 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -90,7 +90,7 @@ AC_HEADER_DIRENT
>  AC_HEADER_STDC
>  AC_HEADER_SYS_WAIT
>
>
> -AC_CHECK_HEADERS([sys/types.h sys/sockio.h sys/file.h string.h fcntl.h
> syslog.h])
> +AC_CHECK_HEADERS([sys/types.h sys/sockio.h sys/file.h string.h fcntl.h
> syslog.h stdbool.h])
>  AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h limits.h libintl.h
> malloc.h memory.h netdb.h netinet/in.h net/if_dl.h])
>  AC_CHECK_HEADERS([stdlib.h stddef.h string.h strings.h sys/file.h
> sys/ioctl.h sys/param.h sys/socket.h])
>
> And of course you’ll need to do:
>
> % autoconf
>
> With these changes, all seems to compile on 4-5 different versions of
> linux, Mac, and lots of different versions of mysql.
> Send email if this doesn’t address your problem …
>
> Carter
>
>
> On Aug 16, 2020, at 11:50 AM, Carter Bullard <carter at qosient.com> wrote:
>
> Hey Andreas,
> We can try this autoconf approach …
>
> Add this to your acsite.m4 file that is in the clients root directory:
>
> % diff --git a/acsite.m4 b/acsite.m4
> index 3f3dc0c1..8bcccf87 100644
> --- a/acsite.m4
> +++ b/acsite.m4
> @@ -890,6 +890,18 @@ ARGUS_MYSQL_MAKEFILE=no
>              fi
>           fi
>
> +         AC_MSG_CHECKING([for my_bool in $ac_cv_mysql_where_inc/mysql.h])
> +         AC_EGREP_HEADER(my_bool, $ac_cv_mysql_where_inc/mysql.h,
> +            MYSQL_MY_BOOL_AVAILABLE=yes,)
> +
> +         if test "$MYSQL_BOOL_AVAILABLE" = yes; then
> +            AC_DEFINE([HAVE_MYSQL_MY_BOOL],[],
> +               [Define if your mysql implimentation defines my_bool type])
> +            AC_MSG_RESULT([yes])
> +         else
> +            AC_MSG_RESULT([no])
> +         fi
> +
>           ARGUS_MYSQL="./ramysql"
>           ARGUS_MYSQL_MAKEFILE="./examples/ramysql/Makefile"
>           AC_SUBST(MYSQL_LDFLAGS)
>
>
> Then rebuild your configure script …
>
> % autoreconf
>
> And then include/argus_mysql.h becomes …
>
> -— contents of ./include/argus_mysql.h
>
> #ifndef ARGUS_MYSQL_H
> #define ARGUS_MYSQL_H
>
> #ifdef ARGUS_MYSQL
> #  ifdef HAVE_STDBOOL_H
> #    include <stdbool.h>
> #  endif
> #  include <mysql.h>
> #  ifndef HAVE_MYSQL_MY_BOOL
> #   define my_bool bool
> #  endif
> # endif /* ARGUS_MYSQL*/
>
> #endif /* ARGUS_MYSQL_H */
>
> -— end contents
>
>
> How’s that ???
> Carter
>
>
>
> On Aug 10, 2020, at 11:33 AM, Carter Bullard <carter at qosient.com> wrote:
>
> Yep, that makes sense … let me noodle on this this afternoon …
> Carter
> [image: QoSient]       <http://qosient.com/>
> Carter Bullard   <carter at qosient.com>•  Founder / CEO
> 150 E 57th Street, Suite 12D
> New York, New York 10022-2795
> Phone +1.212.588.9133 • Mobile +1.917.497.9494
>
>
>
> On Aug 10, 2020, at 11:06 AM, Andreas Hasenack <andreas at canonical.com>
> wrote:
>
> On Mon, Aug 10, 2020 at 11:53 AM Andreas Hasenack <andreas at canonical.com>
> wrote:
>
>
> Hi,
>
> On Mon, Aug 10, 2020 at 11:13 AM Andreas Hasenack <andreas at canonical.com>
> wrote:
>
>
> That failed to build with mysql5.7:
> ./rasql.c: In function ‘RaMySQLInit’:
> ../../include/argus_mysql.h:10:20: error: unknown type name ‘bool’;
> did you mean ‘_Bool’?
> #   define my_bool bool
>                    ^
> It shouldn't be trying to redefine my_bool with mysql 5.7. Looks like
> the "if !defined(my_bool)" didn't work as expected.
> In mysql5.7 my_bool is a typedef to char, would that explain it?
>
> Switching that clause to #ifndef my_bool seemed to work in both
> mysql5.7 and 8. Weird, I thought these #if's were the same:
>
>
> Scratch that, it's not working either way. I don't know yet, but the
> my_bool check is always returning as if it's not defined.
>
>
> Ok, we can't use #ifdef checks for my_bool because it's not something
> that is #define'd, it's a typedef (in the case of mysql 5.7). This
> probably needs a configure.ac check.
> _______________________________________________
> argus mailing list
> argus at qosient.com
> https://pairlist1.pair.net/mailman/listinfo/argus
>
>
> _______________________________________________
> argus mailing list
> argus at qosient.com
> https://pairlist1.pair.net/mailman/listinfo/argus
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20200827/a62494a6/attachment-0001.html>


More information about the argus mailing list