ports/113458: net-im/vicq does not work with perl5.8
Eugene Grosbein
eugen at grosbein.pp.ru
Thu Jun 7 16:00:13 UTC 2007
>Number: 113458
>Category: ports
>Synopsis: net-im/vicq does not work with perl5.8
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Jun 07 16:00:12 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: Eugene Grosbein
>Release: FreeBSD 6.2-STABLE i386
>Organization:
Svyaz Service JSC
>Environment:
System: FreeBSD grosbein.pp.ru 6.2-STABLE FreeBSD 6.2-STABLE #16: Tue Apr 17 23:08:38 KRAST 2007 eu at grosbein.pp.ru:/mnt/home/obj/usr/local/src/sys/DADV i386
perl 5.8, vicq-0.4.2
>Description:
Quoting some web page:
Perl 5.8 has this wonderful thing called "safe interrupts", which
essentially defers them. So the "alarm" that's supposed to interrupt
the readline was deferred until AFTER the readline. Beautiful, no?
So, vicq doesn't update status nor deliver messages asyncronously
with input from keyboard when used with perl 5.8.
>How-To-Repeat:
Run vicq using perl 5.8 and try to receive a message.
>Fix:
diff -urN vicq.orig/Makefile vicq/Makefile
--- vicq.orig/Makefile Thu Jun 7 23:26:53 2007
+++ vicq/Makefile Thu Jun 7 23:36:18 2007
@@ -30,4 +30,13 @@
${MKDIR} ${PREFIX}/share/examples/vicq
${INSTALL_DATA} ${WRKSRC}/vicqrc.example ${PREFIX}/share/examples/vicq
-.include <bsd.port.mk>
+.include <bsd.port.pre.mk>
+
+.if ${PERL_LEVEL} >= 500800
+SIGNAL_PATCH=p5.8-patch-sigalrm
+post-patch:
+ @${ECHO_MSG} "===> Applying patch ${SIGNAL_PATCH} for ${PKGNAME}"
+ @${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/${SIGNAL_PATCH}
+.endif
+
+.include <bsd.port.post.mk>
diff -urN vicq.orig/files/p5.8-patch-sigalrm vicq/files/p5.8-patch-sigalrm
--- vicq.orig/files/p5.8-patch-sigalrm Thu Jan 1 07:00:00 1970
+++ vicq/files/p5.8-patch-sigalrm Thu Jun 7 23:19:53 2007
@@ -0,0 +1,19 @@
+--- vicq.orig Thu Jun 7 23:15:28 2007
++++ vicq Thu Jun 7 23:16:41 2007
+@@ -20,6 +20,7 @@
+ use Getopt::Std;
+ use Socket;
+ use POSIX qw(mktime getcwd);
++use POSIX ':signal_h';
+ package main;
+ use locale;
+ #use Data::Dumper;
+@@ -3347,7 +3348,7 @@
+ if(!$err)
+ {
+ print "done!\n";
+- $SIG{ALRM} = \&tick_handler;
++ sigaction SIGALRM, new POSIX::SigAction \&tick_handler;
+ alarm 1;
+ return 0;
+ } else
Eugene Grosbein
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list