Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Sep 2007 15:13:46 +0200
From:      Martin Kammerhofer <dada@pluto.tugraz.at>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/116690: Update port: devel/rlwarp fix broken pty search on devfs
Message-ID:  <200709271313.l8RDDkwt015105@pluto.tugraz.at>
Resent-Message-ID: <200709271320.l8RDK1Ar088701@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         116690
>Category:       ports
>Synopsis:       Update port: devel/rlwarp fix broken pty search on devfs
>Confidential:   no
>Severity:       non-critical
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 27 13:20:01 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Martin Kammerhofer
>Release:        FreeBSD 6.2-STABLE i386
>Organization:
>Environment:
System: FreeBSD Martin.liebt.Susi 6.2-STABLE FreeBSD 6.2-STABLE #0: Sun Aug 19 14:22:22 CEST 2007 toor@Martin.liebt.Susi:/usr/obj/usr/src/sys/P2B-S i386
>Description:

The configure script of the devel/rlwrap port searches for the names
of pseudo terminals. Found /dev/pty?? files are then hard-coded into
the $PREFIX/bin/rlwrap executable.

This does not work well with FreeBSD where /dev/* nodes are
dynamic. The resulting behaviour is highly undesirable: Only pseudo
terminals in use at configure time are considered. If none of those is
free at run time then pseudo tty allocation fails with a fatal error!

The fix is of course to let the binary know about valid pseudo tty
names on FreeBSD, i.e. /dev/[pt]ty[p-sP-S][0-9a-v].

While at it also s/PREFIX/LOCALBASE/ where appropriate.

>How-To-Repeat:
>Fix:
diff -ruN /usr/ports/devel/rlwrap/Makefile devel/rlwrap/Makefile
--- /usr/ports/devel/rlwrap/Makefile	2007-07-23 11:35:45.000000000 +0200
+++ devel/rlwrap/Makefile	2007-09-27 14:23:12.000000000 +0200
@@ -8,6 +8,7 @@
 
 PORTNAME=	rlwrap
 PORTVERSION=	0.28
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	http://utopia.knoware.nl/~hlub/uck/rlwrap/
 
@@ -26,11 +27,11 @@
 .if ${OSVERSION} < 500018
 # This port requires readline 4.2 or newer, which is only available
 # in the base system in FreeBSD 5.x.
-BUILD_DEPENDS+=		${PREFIX}/lib/libreadline.so.5:${PORTSDIR}/devel/readline
+BUILD_DEPENDS+=		${LOCALBASE}/lib/libreadline.so.5:${PORTSDIR}/devel/readline
 RUN_DEPENDS+=		${BUILD_DEPENDS}
 # Make sure the dynamic linker does not pick up
 # the older libreadline library from the base system.
-LDFLAGS+=		-rpath ${PREFIX}/lib
+LDFLAGS+=		-rpath ${LOCALBASE}/lib
 .endif
 
 .include <bsd.port.post.mk>
diff -ruN /usr/ports/devel/rlwrap/files/patch-src::ptytty.c devel/rlwrap/files/patch-src::ptytty.c
--- /usr/ports/devel/rlwrap/files/patch-src::ptytty.c	2005-11-01 11:03:23.000000000 +0100
+++ devel/rlwrap/files/patch-src::ptytty.c	2007-09-27 14:23:12.000000000 +0200
@@ -1,5 +1,5 @@
---- src/ptytty.c.orig	Mon Oct 31 16:01:11 2005
-+++ src/ptytty.c	Mon Oct 31 16:01:57 2005
+--- src/ptytty.c.orig	2005-10-17 09:36:46.000000000 +0200
++++ src/ptytty.c	2007-09-27 14:12:26.000000000 +0200
 @@ -41,7 +41,7 @@
  #ifdef HAVE_SYS_IOCTL_H
  # include <sys/ioctl.h>
@@ -9,3 +9,28 @@
  # include <sys/stropts.h>	/* for I_PUSH */
  #endif
  
+@@ -159,11 +159,19 @@
+     char pty_name[] = "/dev/pty??";
+     char tty_name[] = "/dev/tty??";
+ 
+-# ifndef PTYCHAR1
+-#  define PTYCHAR1	"pqrstuvwxyz"
+-# endif
+-# ifndef PTYCHAR2
+-#  define PTYCHAR2	"0123456789abcdef"
++# ifdef __FreeBSD__
++/* Auto-detected pty names do not work well with devfs! */
++#  undef  PTYCHAR1
++#  define PTYCHAR1	"pqrsPQRS"
++#  undef  PTYCHAR2
++#  define PTYCHAR2	"0123456789abcdefghijklmnopqrstuv"
++# else
++#  ifndef PTYCHAR1
++#   define PTYCHAR1	"pqrstuvwxyz"
++#  endif
++#  ifndef PTYCHAR2
++#   define PTYCHAR2	"0123456789abcdef"
++#  endif
+ # endif
+     for (c1 = PTYCHAR1; *c1; c1++) {
+       pty_name[(sizeof(pty_name) - 3)] =
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200709271313.l8RDDkwt015105>