1071fc860b
This adds a very small patch to fix an issue with building nmap with clang. The crux of the issue is that clang no longer compiles files with void main() instead requiring int main(). This causes the configure to fail when attempting to identify if a certain feature exists which causes nmap to include its own version which off course causes a compile failure because now you have two structs with the same name and two functions with the same name in the same compilation unit. This patch should probably be sent upstream as well. Closes Homebrew/homebrew#10302. Closes Homebrew/homebrew#10300. Signed-off-by: Max Howell <max@methylblue.com>
60 lines
1.5 KiB
Ruby
60 lines
1.5 KiB
Ruby
require 'formula'
|
|
|
|
class Nmap < Formula
|
|
url 'http://nmap.org/dist/nmap-5.51.tar.bz2'
|
|
homepage 'http://nmap.org/5/'
|
|
md5 '0b80d2cb92ace5ebba8095a4c2850275'
|
|
head 'https://guest:@svn.nmap.org/nmap/', :using => :svn
|
|
|
|
# Leopard's version of OpenSSL isn't new enough
|
|
depends_on "openssl" if MacOS.leopard?
|
|
|
|
fails_with_llvm :build => 2334
|
|
|
|
def install
|
|
ENV.deparallelize
|
|
|
|
args = ["--prefix=#{prefix}", "--without-zenmap"]
|
|
|
|
if MacOS.leopard?
|
|
openssl = Formula.factory('openssl')
|
|
args << "--with-openssl=#{openssl.prefix}"
|
|
end
|
|
|
|
system "./configure", *args
|
|
system "make" # separate steps required otherwise the build fails
|
|
system "make install"
|
|
end
|
|
|
|
def patches
|
|
# The configure script has a C file to test for some functionality that
|
|
# uses void main(void). This does not compile with clang but does compile
|
|
# with GCC/gcc-llvm. This small patch fixes the issues so that the
|
|
# project will compile without issues with clang as well.
|
|
#
|
|
# See: https://github.com/mxcl/homebrew/issues/10300
|
|
DATA
|
|
end
|
|
end
|
|
|
|
__END__
|
|
--- nmap-5.51/nbase/configure 2012-02-18 02:40:16.000000000 -0700
|
|
+++ nmap-5.51/nbase/configure.old 2012-02-18 02:40:01.000000000 -0700
|
|
@@ -4509,7 +4509,7 @@
|
|
#include <sys/socket.h>
|
|
#endif
|
|
|
|
-void main(void) {
|
|
+int main(void) {
|
|
struct addrinfo hints, *ai;
|
|
int error;
|
|
|
|
@@ -4641,7 +4641,7 @@
|
|
#include <netinet/in.h>
|
|
#endif
|
|
|
|
-void main(void) {
|
|
+int main(void) {
|
|
struct sockaddr_in sa;
|
|
char hbuf[256];
|
|
int error;
|