I worked your patch in with some changes I made and got it to compile
(The changes to Makefile.am
<http://Makefile.am>
were a separate problem that came up after). Currently I am working
with inetd to try and actually get it running to confirm that it
works, but it definitely compiles now! Changes are below.
--- config/amanda/syshacks.m4 Wed Aug 2 11:06:49 2017
+++ config/amanda/syshacks.m4.bak Wed Aug 2 11:05:12 2017
@@ -23,7 +23,6 @@
*-freebsd*)
;;
*-openbsd*)
- AC_DEFINE(GETSERVBYNAME_R4,1,[Define on openbsd])
;;
*-hp-*)
case "$CC" in
--- /root/amanda-3.4.5/common-src/security-util.c Wed Aug 2
17:39:04 2017
+++ /root/amanda-3.4.5/common-src/security-util.c.bak Wed Aug 2
08:56:01 2017
@@ -3305,7 +3305,7 @@
struct servent sp;
char buf[2048];
-#if defined GETSERVBYNAME_R5
+#ifdef GETSERVBYNAME_R5
result = getservbyname_r(service, proto, &sp, buf, 2048);
if (result == 0) {
assert(errno != ERANGE);
@@ -3313,16 +3313,6 @@
} else {
port = (in_port_t)(ntohs((in_port_t)sp.s_port));
}
-#elif defined GETSERVBYNAME_R4
- struct servent_data servent_data;
- int r;
- memset(&servent_data, 0, sizeof(struct servent_data));
- r = getservbyname_r(service, proto, &result, &servent_data);
- if (r !=0) {
- port = 0;
- } else {
- port = (in_port_t)(ntohs((in_port_t)result->s_port));
- }
#else
int r;
r = getservbyname_r(service, proto, &sp, buf, 2048, &result);
--- Makefile.am
<http://Makefile.am>
Wed Aug 2 14:12:14 2017
+++ Makefile.am.bak Wed Aug 2 13:30:41 2017
@@ -4,7 +4,7 @@
include $(top_srcdir)/config/automake/vars.am
include $(top_srcdir)/config/automake/installperms.am
-ACLOCAL_AMFLAGS = --force -I config -I . -I config/gettext-macros -I
config/gnulib -I config/amanda -I config/macro-archive
+ACLOCAL_AMFLAGS = --force -I config -I . -I config/gettext-macros -I
config/gnulib -I config/amanda -I config/macro-archive -I
/usr/share/aclocal
if WANT_CLIENT
CLIENT_SUBDIRS = client-src application-src
From: <[email protected]
<mailto:[email protected]>> on behalf of Jean-Louis
Martineau <[email protected] <mailto:[email protected]>>
Date: Wednesday, August 2, 2017 at 1:02 PM
To: Eric Lovelace <[email protected]
<mailto:[email protected]>>, "[email protected]
<mailto:[email protected]>" <[email protected]
<mailto:[email protected]>>
Subject: Re: Compiling 3.4.5 on OpenBSD 6.1
Another variant of getservbyname_r.
Try the attached patch.
I can't compile it, I do not have an openbsd host.
If the patch works, we will have to fix the configure script to
detect that variant and define GETSERVBYNAME_R4
Jean-Louis
On 01/08/17 06:17 PM, Eric Lovelace wrote:
This seems to be the relevant part from the doc (located here:
https://man.openbsd.org/getservent.3
<https://man.openbsd.org/getservent.3>):
int getservbyname_r(const char *name, const char *proto, struct
servent *servent, struct servent_data *servent_data);
I checked out the line from the source (security-util.c line 3318)
r = getservbyname_r(service, proto, &sp, buf, 2048, &result);
So there definitely is a mismatch in parameters. It also looks like
that area of code already has some logic for switching between a 5
parameter call and a 6 parameter call; I guess when I sit back down
in front of the system in question I will see if I can get enough of
a handle on the code to write the 4 parameter call.
________________________________________
From: Jean-Louis Martineau [[email protected]]
Sent: Tuesday, August 01, 2017 5:11 PM
To: Eric Lovelace; [email protected]
Subject: Re: Compiling 3.4.5 on OpenBSD 6.1
How getservbyname_r is defined on OpenBSD 6.1
Jean-Louis
On 01/08/17 04:28 PM, Eric Lovelace wrote:
> Hello,
>
> I would like to run Amanda on OpenBSD (Ideally with current
versions of
> each). From what I have found online, this was possible in previous
> versions of both softwares but I can¹t find any examples with more
recent
> versions; is this setup still supported? I ran into an issue with the
> default make command (that apparently the Makefile used some GNU make
> exclusive features), but using gmake seemed to advance the progress a
> little further. Has anyone encountered anything similar and been
able to
> get it working? Thanks in advance!
>
> The error from running gmake
> ============================
> libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../config -I../gnulib
> -I../common-src -fno-strict-aliasing -D_GNU_SOURCE -I/usr/include
-pthread
> -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include
> -I/usr/local/include -Wall -Wextra -Wparentheses
> -Wdeclaration-after-statement -Wmissing-prototypes -Wstrict-prototypes
> -Wmissing-declarations -Wformat -Wformat-security -Wsign-compare
> -Wfloat-equal -Wold-style-definition -Wno-strict-aliasing
> -Wno-unknown-pragmas -Wno-deprecated-declarations
> -DAMANDA_FILE=\"security-util.c\" -g -O2 -fno-strict-aliasing -MT
> security-util.lo -MD -MP -MF .deps/security-util.Tpo -c
security-util.c
> -fPIC -DPIC -o .libs/security-util.o
> security-util.c: In function 'find_port_for_service':
> security-util.c:3318: warning: passing argument 4 of 'getservbyname_r'
> from incompatible pointer type
> security-util.c:3318: error: too many arguments to function
> 'getservbyname_r'
> gmake[3]: *** [Makefile:2479: security-util.lo] Error 1
> gmake[3]: Leaving directory '/root/amanda-3.4.5/common-src'
> gmake[2]: *** [Makefile:2123: all] Error 2
> gmake[2]: Leaving directory '/root/amanda-3.4.5/common-src'
> gmake[1]: *** [Makefile:1717: all-recursive] Error 1
> gmake[1]: Leaving directory '/root/amanda-3.4.5'
> gmake: *** [Makefile:1641: all] Error 2
>
>
>
>
> The results from ./configure
> ============================
> Directories:
> Application: /usr/local/libexec/amanda/application
> Configuration: /usr/local/etc/amanda
> GNU Tar lists: /usr/local/var/amanda/gnutar-lists
> Perl modules (amperldir): /usr/local/libdata/perl5/site_perl
> Template and example data files (amdatadir): /usr/local/share/amanda
> Temporary: /tmp/amanda
> WARNINGS:
> no user specified (--with-user) -- using 'amanda'
> no group specified (--with-group) -- using 'backup'
> /bin/tar is not GNU tar, so it will not be used.
> /usr/local/bin/smbclient does not seem to be smbclient.
>
>