Bug 187928 - lang/ruby{20,21}: support for readline 6.3
Summary: lang/ruby{20,21}: support for readline 6.3
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Steve Wills
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-03-25 11:30 UTC by murashin
Modified: 2014-05-30 19:40 UTC (History)
0 users

See Also:


Attachments
ruby21.diff (731 bytes, patch)
2014-03-25 11:30 UTC, murashin
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description murashin 2014-03-25 11:30:00 UTC
	build of lang/ruby{20,21} were broken because of readline update.
	See https://bugs.ruby-lang.org/issues/9578 for details.
	The attached patch is available for both of lang/ruby{20,21}.

How-To-Repeat: 	just type make in the ports dirs with readline-6.3.
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2014-03-25 15:58:39 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ruby

Over to maintainer(s).
Comment 2 Steve Wills freebsd_committer 2014-03-26 03:08:55 UTC
Responsible Changed
From-To: ruby->swills

I'll take it.
Comment 3 dfilter service freebsd_committer 2014-05-30 19:34:34 UTC
Author: swills
Date: Fri May 30 18:34:29 2014
New Revision: 355890
URL: http://svnweb.freebsd.org/changeset/ports/355890
QAT: https://qat.redports.org/buildarchive/r355890/

Log:
  - Force use of libreadline from ports rather than base, in order to avoid
    unexpectedly getting readline from ports if it's already installed.
  - Add patch to work with newer libreadline
  - Provide an option to use libedit from ports, avoiding the libedit in base.
  - Note 1: The patch to work with newer libreadline is only applied in the
    libreadline case since it actually breaks building with libedit.
  - Note 2: libreadline is not BSD licensed and while libedit would be
    preferable, it seems to have issues with UTF8 still, see ruby bug 9204. Once
    that's resolved, we can make libedit the default.
  
  PR:		ports/187928 [1] (based on)
  PR:		ports/188077 [2] (based on)
  Submitted by:	Shin-ya Murakami <murashin@gfd-dennou.org> [1]
  Submitted by:	Christoph Moench-Tegeder <cmt@burggraben.net> [2]
  Obtained from:	http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/readline/readline.c?r1=43458&r2=45225 (ruby upstream)
  MFH:		2014Q2

Added:
  head/lang/ruby20/files/extra-patch-ext__readline__readline.c   (contents, props changed)
  head/lang/ruby21/files/extra-patch-ext__readline__readline.c   (contents, props changed)
Modified:
  head/Mk/bsd.ruby.mk
  head/lang/ruby20/Makefile
  head/lang/ruby21/Makefile

Modified: head/Mk/bsd.ruby.mk
==============================================================================
--- head/Mk/bsd.ruby.mk	Fri May 30 18:33:59 2014	(r355889)
+++ head/Mk/bsd.ruby.mk	Fri May 30 18:34:29 2014	(r355890)
@@ -193,7 +193,7 @@ RUBY21=			"@comment "
 # Ruby 2.0
 #
 RUBY_RELVERSION=	2.0.0
-RUBY_PORTREVISION=	5
+RUBY_PORTREVISION=	6
 RUBY_PORTEPOCH=		1
 RUBY_PATCHLEVEL=	353
 
@@ -209,7 +209,7 @@ RUBY21=			"@comment "
 # Ruby 2.1
 #
 RUBY_RELVERSION=	2.1.1
-RUBY_PORTREVISION=	1
+RUBY_PORTREVISION=	2
 RUBY_PORTEPOCH=		1
 RUBY_PATCHLEVEL=	0
 

Modified: head/lang/ruby20/Makefile
==============================================================================
--- head/lang/ruby20/Makefile	Fri May 30 18:33:59 2014	(r355889)
+++ head/lang/ruby20/Makefile	Fri May 30 18:34:29 2014	(r355890)
@@ -40,16 +40,25 @@ USE_AUTOTOOLS=	autoconf
 WRKSRC=		${WRKDIR}/${PORTNAME}-${RUBY_DISTVERSION}
 
 RUBY_VER=		2.0
-USE_BZIP2=		yes
 USE_RUBY=		yes
 RUBY_NO_BUILD_DEPENDS=	yes
 RUBY_NO_RUN_DEPENDS=	yes
 
 NO_LATEST_LINK=	yes
 
-OPTIONS_DEFINE=	RDOC DEBUG
-RDOC_DESC=	Build and install Rdoc indexes
-DEBUG_DESC=	Compile-in debug info
+OPTIONS_DEFINE=		RDOC DEBUG
+OPTIONS_DEFAULT=	READLINE
+OPTIONS_RADIO=		EDIT
+OPTIONS_RADIO_EDIT=	LIBEDIT READLINE
+RDOC_DESC=		Build and install Rdoc indexes
+DEBUG_DESC=		Compile-in debug info
+EDIT_DESC=		Which line editing lib to use
+LIBEDIT_DESC=		Use libedit
+READLINE_DESC=		Use libreadline
+
+.include <bsd.port.options.mk>
+
+USES=		tar:bzip2
 
 .include <bsd.port.pre.mk>
 
@@ -83,6 +92,19 @@ CONFIGURE_ENV=	CFLAGS="-I${LOCALBASE}/in
 		LIBS="-L${LOCALBASE}/lib ${LDFLAGS}" \
 		debugflags=
 
+.if ${PORT_OPTIONS:MLIBEDIT}
+BUILD_DEPENDS+=	libedit>=0:${PORTSDIR}/devel/libedit
+RUN_DEPENDS+=	libedit>=0:${PORTSDIR}/devel/libedit
+CONFIGURE_ARGS+=	--enable-libedit --with-libedit-prefix=${LOCALBASE}
+.endif
+
+.if ${PORT_OPTIONS:MREADLINE}
+BUILD_DEPENDS+=	readline>=0:${PORTSDIR}/devel/readline
+RUN_DEPENDS+=	readline>=0:${PORTSDIR}/devel/readline
+CONFIGURE_ARGS+=	--disable-libedit --with-readline-prefix=${LOCALBASE}
+EXTRA_PATCHES+=		${FILESDIR}/extra-patch-ext__readline__readline.c
+.endif
+
 .if ${RUBY_VER} == ${RUBY_DEFAULT_VER}
 MLINKS=		${RUBY_NAME}.1 ruby.1
 PLIST_SUB+=	IF_DEFAULT=""
@@ -159,8 +181,6 @@ pre-su-install:
 			${STAGEDIR}${RUBY_SITEARCHLIBDIR}	\
 			${STAGEDIR}${RUBY_VENDORARCHLIBDIR}
 
-	${SETENV} LC_TIME=C /bin/date > ${STAGEDIR}${RUBY_RIDIR}/created.rid
-	${SETENV} LC_TIME=C /bin/date > ${STAGEDIR}${RUBY_SITERIDIR}/created.rid
 	${TOUCH} ${STAGEDIR}${RUBY_EXAMPLESDIR}/.keep_me
 	${TOUCH} ${STAGEDIR}${RUBY_DOCDIR}/.keep_me
 	${TOUCH} ${STAGEDIR}${RUBY_SITEARCHLIBDIR}/.keep_me

Added: head/lang/ruby20/files/extra-patch-ext__readline__readline.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/ruby20/files/extra-patch-ext__readline__readline.c	Fri May 30 18:34:29 2014	(r355890)
@@ -0,0 +1,11 @@
+--- ext/readline/readline.c.orig	2013/10/29 03:09:00	43458
++++ ext/readline/readline.c	2014/03/01 07:19:08	45225
+@@ -1974,7 +1974,7 @@
+ 
+     rl_attempted_completion_function = readline_attempted_completion_function;
+ #if defined(HAVE_RL_PRE_INPUT_HOOK)
+-    rl_pre_input_hook = (Function *)readline_pre_input_hook;
++    rl_pre_input_hook = (rl_hook_func_t *)readline_pre_input_hook;
+ #endif
+ #ifdef HAVE_RL_CATCH_SIGNALS
+     rl_catch_signals = 0;

Modified: head/lang/ruby21/Makefile
==============================================================================
--- head/lang/ruby21/Makefile	Fri May 30 18:33:59 2014	(r355889)
+++ head/lang/ruby21/Makefile	Fri May 30 18:34:29 2014	(r355890)
@@ -40,16 +40,25 @@ USE_AUTOTOOLS=	autoconf
 WRKSRC=		${WRKDIR}/${PORTNAME}-${RUBY_DISTVERSION}
 
 RUBY_VER=		2.1
-USE_BZIP2=		yes
 USE_RUBY=		yes
 RUBY_NO_BUILD_DEPENDS=	yes
 RUBY_NO_RUN_DEPENDS=	yes
 NO_LATEST_LINK=		yes
 MAKE_JOBS_UNSAFE=	yes
 
-OPTIONS_DEFINE=	RDOC DEBUG
-RDOC_DESC=	Build and install Rdoc indexes
-DEBUG_DESC=	Compile-in debug info
+OPTIONS_DEFINE=		RDOC DEBUG
+OPTIONS_DEFAULT=	READLINE
+OPTIONS_RADIO=		EDIT
+OPTIONS_RADIO_EDIT=	LIBEDIT READLINE
+RDOC_DESC=		Build and install Rdoc indexes
+DEBUG_DESC=		Compile-in debug info
+EDIT_DESC=		Which line editing lib to use
+LIBEDIT_DESC=		Use libedit
+READLINE_DESC=		Use libreadline
+
+.include <bsd.port.options.mk>
+
+USES=		tar:bzip2
 
 .include <bsd.port.pre.mk>
 
@@ -83,6 +92,19 @@ CONFIGURE_ENV=	CFLAGS="-I${LOCALBASE}/in
 		LIBS="-L${LOCALBASE}/lib ${LDFLAGS}" \
 		debugflags=
 
+.if ${PORT_OPTIONS:MLIBEDIT}
+BUILD_DEPENDS+=	libedit>=0:${PORTSDIR}/devel/libedit
+RUN_DEPENDS+=	libedit>=0:${PORTSDIR}/devel/libedit
+CONFIGURE_ARGS+=	--enable-libedit --with-libedit-prefix=${LOCALBASE}
+.endif
+
+.if ${PORT_OPTIONS:MREADLINE}
+BUILD_DEPENDS+=	readline>=0:${PORTSDIR}/devel/readline
+RUN_DEPENDS+=	readline>=0:${PORTSDIR}/devel/readline
+CONFIGURE_ARGS+=	--disable-libedit --with-readline-prefix=${LOCALBASE}
+EXTRA_PATCHES+=		${FILESDIR}/extra-patch-ext__readline__readline.c
+.endif
+
 .if ${RUBY_VER} == ${RUBY_DEFAULT_VER}
 MLINKS=		${RUBY_NAME}.1 ruby.1
 PLIST_SUB+=	IF_DEFAULT=""
@@ -155,8 +177,6 @@ pre-su-install:
 			${STAGEDIR}${RUBY_SITEARCHLIBDIR}	\
 			${STAGEDIR}${RUBY_VENDORARCHLIBDIR}
 
-	${SETENV} LC_TIME=C /bin/date > ${STAGEDIR}${RUBY_RIDIR}/created.rid
-	${SETENV} LC_TIME=C /bin/date > ${STAGEDIR}${RUBY_SITERIDIR}/created.rid
 	${TOUCH} ${STAGEDIR}${RUBY_EXAMPLESDIR}/.keep_me
 	${TOUCH} ${STAGEDIR}${RUBY_DOCDIR}/.keep_me
 	${TOUCH} ${STAGEDIR}${RUBY_SITEARCHLIBDIR}/.keep_me

Added: head/lang/ruby21/files/extra-patch-ext__readline__readline.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/ruby21/files/extra-patch-ext__readline__readline.c	Fri May 30 18:34:29 2014	(r355890)
@@ -0,0 +1,11 @@
+--- ext/readline/readline.c.orig	2013/10/29 03:09:00	43458
++++ ext/readline/readline.c	2014/03/01 07:19:08	45225
+@@ -1974,7 +1974,7 @@
+ 
+     rl_attempted_completion_function = readline_attempted_completion_function;
+ #if defined(HAVE_RL_PRE_INPUT_HOOK)
+-    rl_pre_input_hook = (Function *)readline_pre_input_hook;
++    rl_pre_input_hook = (rl_hook_func_t *)readline_pre_input_hook;
+ #endif
+ #ifdef HAVE_RL_CATCH_SIGNALS
+     rl_catch_signals = 0;
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 4 Steve Wills freebsd_committer 2014-05-30 19:36:33 UTC
State Changed
From-To: open->closed

Committed. Thanks!