4e8ce45bc2
libnids is used by dsniff, but libnids only builds a static library due to being coded in 2005 before much use of `.dylib` etc. By patching libnids to build a shared library, we can get dsniff to link against it and against glib and gthread correctly without `LDFLAGS` hacking. - Add deps on automake anb libtool to run `autoreconf` - Run autoreconf to fix any issues in 2005 era configure. - Add configure flag to `--enable-shared` - Add patch to fix errors building shared with `-soname` and `.so` - Works well with superenv and dnsiff Fixes Homebrew/homebrew#14363 Closes Homebrew/homebrew#15011. Signed-off-by: Max Howell <mxcl@me.com>
63 lines
2.3 KiB
Ruby
63 lines
2.3 KiB
Ruby
require 'formula'
|
|
|
|
class Libnids < Formula
|
|
homepage 'http://libnids.sourceforge.net/'
|
|
url 'http://downloads.sourceforge.net/project/libnids/libnids/1.24/libnids-1.24.tar.gz'
|
|
sha1 '9a421df05cefdc4f5f7db95efc001b3c2b5249ce'
|
|
|
|
option "disable-libnet", "Don't include code requiring libnet"
|
|
option "disable-libglib", "Don't use glib2 for multiprocessing support"
|
|
|
|
depends_on 'pkg-config' => :build
|
|
depends_on :automake => :build
|
|
depends_on :libtool => :build
|
|
depends_on 'libnet' => :recommended unless build.include? "disable-libnet"
|
|
depends_on 'glib' => :recommended unless build.include? "disable-libglib"
|
|
|
|
# Patch fixes -soname and .so shared library issues. Unreported.
|
|
def patches
|
|
DATA
|
|
end
|
|
|
|
def install
|
|
# autoreconf the old 2005 era code for sanity.
|
|
system 'autoreconf', '-ivf'
|
|
args = ["--prefix=#{prefix}", "--mandir=#{man}", "--enable-shared"]
|
|
args << "--disable-libnet" if build.include? "disable-libnet"
|
|
args << "--disable-libglib" if build.include? "disable-libglib"
|
|
|
|
system "./configure", *args
|
|
system "make install"
|
|
end
|
|
end
|
|
|
|
__END__
|
|
--- a/src/Makefile.in 2010-03-01 13:13:17.000000000 -0800
|
|
+++ b/src/Makefile.in 2012-09-19 09:48:23.000000000 -0700
|
|
@@ -13,7 +13,7 @@
|
|
libdir = @libdir@
|
|
mandir = @mandir@
|
|
LIBSTATIC = libnids.a
|
|
-LIBSHARED = libnids.so.1.24
|
|
+LIBSHARED = libnids.1.24.dylib
|
|
|
|
CC = @CC@
|
|
CFLAGS = @CFLAGS@ -DLIBNET_VER=@LIBNET_VER@ -DHAVE_ICMPHDR=@ICMPHEADER@ -DHAVE_TCP_STATES=@TCPSTATES@ -DHAVE_BSD_UDPHDR=@HAVE_BSD_UDPHDR@
|
|
@@ -65,7 +65,7 @@
|
|
ar -cr $@ $(OBJS)
|
|
$(RANLIB) $@
|
|
$(LIBSHARED): $(OBJS_SHARED)
|
|
- $(CC) -shared -Wl,-soname,$(LIBSHARED) -o $(LIBSHARED) $(OBJS_SHARED) $(LIBS) $(LNETLIB) $(PCAPLIB)
|
|
+ $(CC) -Wl,-dylib -Wl,-install_name -Wl,$(LIBSHARED) -Wl,-headerpad_max_install_names -o $(LIBSHARED) $(OBJS_SHARED) $(LIBS) $(LNETLIB) $(PCAPLIB)
|
|
|
|
_install install: $(LIBSTATIC)
|
|
../mkinstalldirs $(install_prefix)$(libdir)
|
|
@@ -76,7 +76,7 @@
|
|
$(INSTALL) -c -m 644 libnids.3 $(install_prefix)$(mandir)/man3
|
|
_installshared installshared: install $(LIBSHARED)
|
|
$(INSTALL) -c -m 755 $(LIBSHARED) $(install_prefix)$(libdir)
|
|
- ln -s -f $(LIBSHARED) $(install_prefix)$(libdir)/libnids.so
|
|
+ ln -s -f $(LIBSHARED) $(install_prefix)$(libdir)/libnids.dylib
|
|
|
|
clean:
|
|
rm -f *.o *~ $(LIBSTATIC) $(LIBSHARED)
|