aboutsummaryrefslogtreecommitdiff
path: root/security/ruby-tcpwrap
diff options
context:
space:
mode:
authorSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2013-09-14 14:40:33 +0000
committerSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2013-09-14 14:40:33 +0000
commit7da387fd79235a90176d44958c76c18cf386095b (patch)
tree3c63b077d0b6e29f652336ef6d3ba9db81d53408 /security/ruby-tcpwrap
parent0c5b07322782dec5f83ed57a9d6f6688868007af (diff)
downloadports-7da387fd79235a90176d44958c76c18cf386095b.tar.gz
ports-7da387fd79235a90176d44958c76c18cf386095b.zip
- Fix build with ruby19 [1]
- Remove DEPRECATED and EXPIRATION_DATE - Convert to new LIB_DEPENDS format - Convert to new options framework - Simplify DOC_EN and DOC_JA installation Obtained from: NetBSD [1]
Notes
Notes: svn path=/head/; revision=327290
Diffstat (limited to 'security/ruby-tcpwrap')
-rw-r--r--security/ruby-tcpwrap/Makefile25
-rw-r--r--security/ruby-tcpwrap/files/patch-tcpwrap.c73
2 files changed, 82 insertions, 16 deletions
diff --git a/security/ruby-tcpwrap/Makefile b/security/ruby-tcpwrap/Makefile
index 4bcb31abaed7..9fe037c041f6 100644
--- a/security/ruby-tcpwrap/Makefile
+++ b/security/ruby-tcpwrap/Makefile
@@ -13,16 +13,15 @@ DIST_SUBDIR= ruby
MAINTAINER= ruby@FreeBSD.org
COMMENT= TCP wrappers library for Ruby
-DEPRECATED= Does not work with Ruby 1.9
-EXPIRATION_DATE= 2013-05-02
+LIB_DEPENDS= libident.so:${PORTSDIR}/security/libident
-LIB_DEPENDS= ident.0:${PORTSDIR}/security/libident
+OPTIONS_DEFINE= DOCS
USE_RUBY= yes
USE_RUBY_EXTCONF= yes
WRKSRC= ${WRKDIR}/ruby-${PORTNAME}
-CONFIGURE_ARGS= --with-libwrap-dir="/usr" \
+CONFIGURE_ARGS= --with-libwrap-dir=/usr \
--with-ident-dir="${LOCALBASE}"
INSTALL_TARGET= site-install
@@ -30,21 +29,15 @@ INSTALL_TARGET= site-install
DOCS_EN= README.en doc/tcpwrap.html.en
DOCS_JA= README.ja doc/tcpwrap.html.ja
+.include <bsd.port.options.mk>
+
post-install:
-.if !defined(NOPORTDOCS)
+.if ${PORT_OPTIONS:MDOCS}
${MKDIR} ${RUBY_MODEXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/sample/echod.rb ${RUBY_MODEXAMPLESDIR}/
${MKDIR} ${RUBY_MODDOCDIR}/ja
-.for f in ${DOCS_EN}
- ${INSTALL_DATA} ${WRKSRC}/${f} ${RUBY_MODDOCDIR}/
-.endfor
-.for f in ${DOCS_JA}
- ${INSTALL_DATA} ${WRKSRC}/${f} ${RUBY_MODDOCDIR}/ja/
-.endfor
+ cd ${WRKSRC}/ && ${INSTALL_DATA} ${DOCS_EN} ${RUBY_MODDOCDIR}/
+ cd ${WRKSRC}/ && ${INSTALL_DATA} ${DOCS_JA} ${RUBY_MODDOCDIR}/ja/
.endif
-.include <bsd.port.pre.mk>
-.if ${RUBY_VER} == 1.9
-BROKEN= does not build with ruby 1.9
-.endif
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/security/ruby-tcpwrap/files/patch-tcpwrap.c b/security/ruby-tcpwrap/files/patch-tcpwrap.c
new file mode 100644
index 000000000000..47d6b67625b0
--- /dev/null
+++ b/security/ruby-tcpwrap/files/patch-tcpwrap.c
@@ -0,0 +1,73 @@
+--- tcpwrap.c.orig 2003-08-20 03:30:10.000000000 +0000
++++ tcpwrap.c
+@@ -25,7 +25,12 @@
+ */
+
+ #include "ruby.h"
++#ifdef HAVE_RUBY_IO_H /* Ruby 1.9 and later */
++#include "ruby/io.h"
++#else /* Ruby 1.8.x */
+ #include "rubyio.h"
++#define rb_io_stdio_file(iot) ((iot)->f)
++#endif
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+@@ -101,7 +106,7 @@ static VALUE tcpd_accept(VALUE self)
+ tcp_wrapper_t *tcpd;
+ VALUE sock;
+ int sockfd;
+- OpenFile *fptr;
++ rb_io_t *fptr;
+ struct sockaddr_storage addr;
+ char client_name[NI_MAXHOST] = STRING_UNKNOWN;
+ char client_addr[NI_MAXHOST] = STRING_UNKNOWN;
+@@ -113,7 +118,7 @@ static VALUE tcpd_accept(VALUE self)
+ again:
+ sock = rb_funcall(tcpd->server, rb_intern("accept"), 0);
+ GetOpenFile(sock, fptr);
+- sockfd = fileno(fptr->f);
++ sockfd = fileno(rb_io_stdio_file(fptr));
+ if (getpeername(sockfd, (struct sockaddr*) &addr, &len) < 0)
+ rb_sys_fail("getpeername(2)");
+ error = getnameinfo((struct sockaddr*) &addr, len,
+@@ -132,7 +137,7 @@ static VALUE tcpd_accept(VALUE self)
+ if (tcpd->ident_lookup)
+ client_user = ident_id(sockfd, tcpd->ident_timeout);
+ #endif
+- if (!hosts_ctl(RSTRING(tcpd->daemon)->ptr,
++ if (!hosts_ctl(RSTRING_PTR(tcpd->daemon),
+ client_name,
+ client_addr,
+ (client_user == NULL) ? STRING_UNKNOWN : client_user)) {
+@@ -156,8 +161,8 @@ tcpd_s_set_hosts_allow(VALUE self, VALUE
+ {
+ static char hosts_allow[MAXPATHLEN];
+
+- Check_SafeStr(s);
+- snprintf(hosts_allow, sizeof(hosts_allow), "%s", RSTRING(s)->ptr);
++ SafeStringValue(s);
++ snprintf(hosts_allow, sizeof(hosts_allow), "%s", RSTRING_PTR(s));
+ if(access(hosts_allow, R_OK) < 0)
+ rb_warning("cannot read %s", hosts_allow);
+ hosts_allow_table = hosts_allow;
+@@ -176,8 +181,8 @@ tcpd_s_set_hosts_deny(VALUE self, VALUE
+ {
+ static char hosts_deny[MAXPATHLEN];
+
+- Check_SafeStr(s);
+- snprintf(hosts_deny, sizeof(hosts_deny), "%s", RSTRING(s)->ptr);
++ SafeStringValue(s);
++ snprintf(hosts_deny, sizeof(hosts_deny), "%s", RSTRING_PTR(s));
+ if(access(hosts_deny, R_OK) < 0)
+ rb_warning("cannot read %s", hosts_deny);
+ hosts_deny_table = hosts_deny;
+@@ -196,7 +201,7 @@ str_to_ctlstr(VALUE s)
+ {
+ if(NIL_P(s)) return STRING_UNKNOWN;
+ Check_Type(s, T_STRING);
+- return RSTRING(s)->ptr;
++ return RSTRING_PTR(s);
+ }
+
+ static VALUE