sysutils/aimage: Unbreak build with Clang 6

- Also fix build with LibreSSL: The configure script checks that
  libssl has ssl3_new() which LibreSSL doesn't have but aimage itself
  never uses it, so pretend it's there to pass the check.

PR:		228756
Reported by:	Chris Hutchinson <portmaster@bsdforge.com>
Submitted by:	tobik
Approved by:	Chris Hutchinson <portmaster@bsdforge.com> (maintainer)
This commit is contained in:
Tobias Kortkamp
2018-06-06 12:29:15 +00:00
parent 839e7d7bf5
commit 0734cd7c74
3 changed files with 23 additions and 4 deletions

View File

@@ -11,11 +11,15 @@ MAINTAINER= portmaster@BSDforge.com
COMMENT= Advanced Disk Imager
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libafflib.so:sysutils/afflib
USES= gmake readline ssl
GNU_CONFIGURE= yes
# Pretend ssl3_new exists for LibreSSL. It's never really used but
# configure checks for it.
CONFIGURE_ARGS= ac_cv_lib_ssl_ssl3_new=yes
PLIST_FILES= bin/aimage

View File

@@ -1,6 +1,6 @@
--- src/aimage.cpp.orig 2018-02-26 16:24:29.829120000 -0800
+++ src/aimage.cpp 2018-02-26 16:25:21.187218000 -0800
@@ -344,7 +344,7 @@
--- src/aimage.cpp.orig 2010-12-17 13:49:50 UTC
+++ src/aimage.cpp
@@ -344,7 +344,7 @@ void segwrite_callback(struct affcallback_info *acbi)
/* log if necessary */
if(logfile){
fprintf(logfile,
@@ -9,7 +9,7 @@
acbi->pagenum,
acbi->bytes_to_write,
acbi->bytes_written,
@@ -621,7 +621,7 @@
@@ -621,7 +621,7 @@ int64 scaled_atoi(const char *arg)
int64 ret=0;
int multiplier=1;
char ch,junk;

View File

@@ -0,0 +1,15 @@
imager.cpp:857:8: error: value of type '__bind<int &, sockaddr *, unsigned long>' is not contextually convertible to 'bool'
if(bind(sock,(sockaddr *)&local,sizeof(local))) err(1,"bind");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- src/imager.cpp.orig 2018-06-05 06:55:20 UTC
+++ src/imager.cpp
@@ -854,7 +854,7 @@ int imager::socket_listen(int port)
#endif
local.sin_family = AF_INET;
local.sin_port = htons(port); // listen on requested port.
- if(bind(sock,(sockaddr *)&local,sizeof(local))) err(1,"bind");
+ if(::bind(sock,(sockaddr *)&local,sizeof(local))) err(1,"bind");
if(listen(sock,0)) err(1,"listen"); // listen, and only accept one
printf("Listening for connection on port %d...\n",port);
in = accept(sock,(sockaddr *)&remote,&rsize);