[syslog-ng] Problems trying to compile syslog-ng 3.6.4 on Solaris 11.2 (SPARC)

Sandor Geller sandor.geller at ericsson.com
Fri Jul 10 16:44:35 CEST 2015


Hi,

${exec_prefix} is a string literal in the wrapper so it can't get 
affected by environment variables.

Tried on my linux box using --enable-env-wrapper and the resulting 
syslog-ng-wrapper binary was broken. wow, definitely unexpected behaviour.

The variable is constructed this way:

lib/syslog-ng.h :

#define PATH_SYSLOGNG           PATH_LIBEXECDIR "/syslog-ng"

config.h :

define PATH_LIBEXECDIR "${exec_prefix}/libexec"

however get_installation_path_for() would be needed to expand the 
variable runtime as such variables are no longer expanded buildtime.

Could you try the attached patch and report back?

If you don't want to run automake then edit the top-level Makefile as 
well, add this line after syslog_ng_syslog_ng_wrapper_OBJECTS :

syslog_ng_syslog_ng_wrapper_LDADD = $(LDADD) -L${top_builddir}/lib/.libs 
-lsyslog-ng

This should fix the problem.

Regards,

Sandor

On 07/10/2015 02:46 PM, Cottington-Bray, Ian wrote:
> Any suggestions ?
>
> I did try re-compiling the software after running configure with the
> –exec-prefix set to the same value as –prefix on a clean source
> directory and hit the same issue.
>
> Cheers
>
> Ian
>
> *From:*syslog-ng-bounces at lists.balabit.hu
> [mailto:syslog-ng-bounces at lists.balabit.hu] *On Behalf Of
> *Cottington-Bray, Ian
> *Sent:* 08 July 2015 18:07
> *To:* Syslog-ng users' and developers' mailing list
> *Cc:* Arsenault, Adam
> *Subject:* Re: [syslog-ng] Problems trying to compile syslog-ng 3.6.4 on
> Solaris 11.2 (SPARC)
>
> Thanks I have now compiled the package (although there was no success
> message at the end).
>
> However after installing it – it will not start as follows;
>
> root# /usr/local/syslog-ng/sbin/syslog-ng -f
> /usr/local/syslog-ng/etc/syslog-ng.conf -p /var/run/syslog-ng.pid
>
> Unable to execute main syslog-ng binary from env-wrapper,
> path=${exec_prefix}/libexec/syslog-ng, error=No such file or directory
>
> root # exec_prefix=/usr/local/syslog-ng
>
> root # export exec_prefix
>
> root # ls -l ${exec_prefix}/libexec/syslog-ng
>
> -rwxr-xr-x   1 root     root       22088 Jul  8 14:25
> /usr/local/syslog-ng/libexec/syslog-ng
>
> root # /usr/local/syslog-ng/sbin/syslog-ng -f
> /usr/local/syslog-ng/etc/syslog-ng.conf -p /var/run/syslog-ng.pid
>
> Unable to execute main syslog-ng binary from env-wrapper,
> path=${exec_prefix}/libexec/syslog-ng, error=No such file or directory
>
> *From:*syslog-ng-bounces at lists.balabit.hu
> <mailto:syslog-ng-bounces at lists.balabit.hu>
> [mailto:syslog-ng-bounces at lists.balabit.hu] *On Behalf Of *Juhász, Viktor
> *Sent:* 08 July 2015 11:34
> *To:* Syslog-ng users' and developers' mailing list
> *Cc:* Arsenault, Adam
> *Subject:* Re: [syslog-ng] Problems trying to compile syslog-ng 3.6.4 on
> Solaris 11.2 (SPARC)
>
> Hi,
>
> You should install the libdbi-dev package, or you should use
> --disable-sql in configure
>
> On Wed, Jul 8, 2015 at 11:18 AM, Cottington-Bray, Ian
> <ian.cottington-bray at mclaren.com
> <mailto:ian.cottington-bray at mclaren.com>> wrote:
>
>     Thanks and apologies for the slow response – I was away for a few days
>
>     I’m obviously doing something wrong because the build still fails
>     (see below).
>
>     I copied the three (raw) files from the link provided below and
>     replaced the files in the 3.6.4 distribution I had previously
>     downloaded.  On first attempt it complained about automake being
>     missing and then failed.   I started again after installing
>     automake-111 (from the Solaris distribution) and the automake
>     messages have disappeared however the build failure is the same.
>     Am I missing another dependency ?
>
>        CC
>     modules/afsocket/modules_afsocket_libafsocket_tls_la-transport-mapper-unix.lo
>
>        CC
>     modules/afsocket/modules_afsocket_libafsocket_tls_la-transport-unix-socket.lo
>
>     modules/afsocket/transport-unix-socket.c: In function
>     â_format_proc_file_nameâ:
>
>     modules/afsocket/transport-unix-socket.c:50:3: warning: format â%dâ
>     expects argument of type âintâ, but argument 4 has type âpid_tâ
>     [-Wformat=]
>
>         g_snprintf(buf, buflen, "/proc/%d/%s", pid, proc_file);
>
>         ^
>
>     modules/afsocket/transport-unix-socket.c: In function
>     âlog_transport_unix_dgram_socket_newâ:
>
>     modules/afsocket/transport-unix-socket.c:265:3: warning: implicit
>     declaration of function âsocket_set_pass_credentialsâ
>     [-Wimplicit-function-declaration]
>
>         socket_set_pass_credentials(fd);
>
>         ^
>
>     modules/afsocket/transport-unix-socket.c: At top level:
>
>     modules/afsocket/transport-unix-socket.c:36:1: warning:
>     â_add_nv_pair_intâ defined but not used [-Wunused-function]
>
>     _add_nv_pair_int(LogTransportAuxData *aux, const gchar *name, gint
>     value)
>
>     ^
>
>     modules/afsocket/transport-unix-socket.c:102:1: warning:
>     â_add_nv_pair_proc_read_unless_unsetâ defined but not used
>     [-Wunused-function]
>
>     _add_nv_pair_proc_read_unless_unset(LogTransportAuxData *aux, const
>     gchar *name, pid_t pid, const gchar *proc_file, const gchar
>     *unset_value)
>
>     ^
>
>     modules/afsocket/transport-unix-socket.c:115:1: warning:
>     â_add_nv_pair_proc_read_argvâ defined but not used [-Wunused-function]
>
>     _add_nv_pair_proc_read_argv(LogTransportAuxData *aux, const gchar
>     *name, pid_t pid, const gchar *proc_file)
>
>     ^
>
>     modules/afsocket/transport-unix-socket.c:135:1: warning:
>     â_add_nv_pair_proc_readlinkâ defined but not used [-Wunused-function]
>
>     _add_nv_pair_proc_readlink(LogTransportAuxData *aux, const gchar
>     *name, pid_t pid, const gchar *proc_file)
>
>     ^
>
>        CC
>     modules/afsocket/modules_afsocket_libafsocket_tls_la-unix-credentials.lo
>
>        CC
>     modules/afsocket/modules_afsocket_libafsocket_tls_la-afsocket-grammar.lo
>
>        CC
>     modules/afsocket/modules_afsocket_libafsocket_tls_la-afsocket-parser.lo
>
>        CC
>     modules/afsocket/modules_afsocket_libafsocket_tls_la-afsocket-plugin.lo
>
>        CC
>     modules/afsocket/modules_afsocket_libafsocket_tls_la-systemd-syslog-source.lo
>
>        CCLD   modules/afsocket/libafsocket-tls.la
>     <http://libafsocket-tls.la>
>
>        CC     modules/afsql/modules_afsql_libafsql_la-afsql.lo
>
>     In file included from modules/afsql/afsql.c:24:0:
>
>     modules/afsql/afsql.h:28:21: fatal error: dbi/dbi.h: No such file or
>     directory
>
>     #include <dbi/dbi.h>
>
>                           ^
>
>     compilation terminated.
>
>     gmake[2]: *** [modules/afsql/modules_afsql_libafsql_la-afsql.lo] Error 1
>
>     gmake[1]: *** [all-recursive] Error 1
>
>     gmake: *** [all] Error 2
>
>     *From:*Arsenault, Adam [mailto:adam.arsenault at balabit.com
>     <mailto:adam.arsenault at balabit.com>]
>     *Sent:* 02 July 2015 14:43
>     *To:* syslog-ng at lists.balabit.hu <mailto:syslog-ng at lists.balabit.hu>
>     *Cc:* Cottington-Bray, Ian
>     *Subject:* [syslog-ng] Problems trying to compile syslog-ng 3.6.4 on
>     Solaris 11.2 (SPARC)
>
>     With this patch, syslog-ng 3.6.4 compiles on Solaris 11.2 (X86-64).
>     It will work on SPARC as well.
>
>     https://github.com/balabit/syslog-ng/pull/543
>
>     -Adam Arsenault
>
>
>     The contents of this e-mail are confidential and for the exclusive
>     use of the intended recipient. If you are not the intended recipient
>     you should not read, copy, retransmit or disclose its contents. If
>     you have received this email in error please delete it from your
>     system immediately and notify us either by email or telephone. The
>     views expressed in this communication may not necessarily be the
>     views held by McLaren Technology Group Limited.
>     McLaren Technology Group Limited | McLaren Technology Centre |
>     Chertsey Road | Woking | Surrey | GU21 4YH | UK | Company Number:
>     01967715
>
>
>     ______________________________________________________________________________
>     Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
>     Documentation:
>     http://www.balabit.com/support/documentation/?product=syslog-ng
>     FAQ: http://www.balabit.com/wiki/syslog-ng-faq
>
>
> The contents of this e-mail are confidential and for the exclusive use
> of the intended recipient. If you are not the intended recipient you
> should not read, copy, retransmit or disclose its contents. If you have
> received this email in error please delete it from your system
> immediately and notify us either by email or telephone. The views
> expressed in this communication may not necessarily be the views held by
> McLaren Technology Group Limited.
> McLaren Technology Group Limited | McLaren Technology Centre | Chertsey
> Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01967715
>
>
> The contents of this e-mail are confidential and for the exclusive use
> of the intended recipient. If you are not the intended recipient you
> should not read, copy, retransmit or disclose its contents. If you have
> received this email in error please delete it from your system
> immediately and notify us either by email or telephone. The views
> expressed in this communication may not necessarily be the views held by
> McLaren Technology Group Limited.
> McLaren Technology Group Limited | McLaren Technology Centre | Chertsey
> Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01967715
>
>
> ______________________________________________________________________________
> Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
> Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng
> FAQ: http://www.balabit.com/wiki/syslog-ng-faq
>

-------------- next part --------------
--- syslog-ng/Makefile.am-old	2015-06-19 13:23:23.000000000 +0200
+++ syslog-ng/Makefile.am	2015-07-10 16:36:02.926726418 +0200
@@ -15,6 +15,7 @@
 syslog_ng_syslog_ng_LINK		=  @SYSLOGNG_LINK@
 syslog_ng_syslog_ng_DEPENDENCIES	= lib/libsyslog-ng.la lib/libsyslog-ng-crypto.la
 
+syslog_ng_syslog_ng_wrapper_LDADD	= -L${top_builddir}/lib/.libs -lsyslog-ng
 syslog_ng_syslog_ng_wrapper_SOURCES	= syslog-ng/wrapper.c
 
 syslog-ng-install-exec-hook:
--- syslog-ng/wrapper.c-old	2015-06-19 13:23:23.000000000 +0200
+++ syslog-ng/wrapper.c	2015-07-10 16:30:03.210918515 +0200
@@ -23,6 +23,7 @@
  */
 
 #include "syslog-ng.h"
+#include "reloc.h"
 #include <stdlib.h>
 #include <unistd.h>
 #include <stdio.h>
@@ -47,7 +48,7 @@
     putenv(ldlibpath);
   }
 #endif
-  execv(PATH_SYSLOGNG, argv);
-  fprintf(stderr, "Unable to execute main syslog-ng binary from env-wrapper, path=%s, error=%s\n", PATH_SYSLOGNG, strerror(errno));
+  execv(get_installation_path_for(PATH_SYSLOGNG), argv);
+  fprintf(stderr, "Unable to execute main syslog-ng binary from env-wrapper, path=%s, error=%s\n", get_installation_path_for(PATH_SYSLOGNG), strerror(errno));
   return 127;
 }


More information about the syslog-ng mailing list