Skip site navigation (1)Skip section navigation (2)
Date:      Sat,  9 Dec 2006 20:20:38 +0800 (CST)
From:      Gea-Suan Lin <gslin@gslin.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        perl@FreeBSD.org
Subject:   ports/106528: [PATCH] devel/p5-Coro: update to 3.1.1
Message-ID:  <20061209122038.754778D@netnews.NCTU.edu.tw>
Resent-Message-ID: <200612091230.kB9CUGKE020219@freefall.freebsd.org>

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

>Number:         106528
>Category:       ports
>Synopsis:       [PATCH] devel/p5-Coro: update to 3.1.1
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Dec 09 12:30:16 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Gea-Suan Lin
>Release:        FreeBSD 6.1-RELEASE-p8 i386
>Organization:
>Environment:
System: FreeBSD netnews.NCTU.edu.tw 6.1-RELEASE-p8 FreeBSD 6.1-RELEASE-p8 #0: Fri Sep 29 03:41:50 CST 2006
>Description:
- Update to 3.1.1

Port maintainer (perl@FreeBSD.org) is cc'd.

Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:

--- p5-Coro-3.1.1,1.patch begins here ---
diff -ruN --exclude=CVS /usr/ports/devel/p5-Coro/Makefile /home/staff/gslin/work/ports/p5-Coro/Makefile
--- /usr/ports/devel/p5-Coro/Makefile	Mon Feb  6 16:11:21 2006
+++ /home/staff/gslin/work/ports/p5-Coro/Makefile	Sat Dec  9 20:19:51 2006
@@ -6,34 +6,29 @@
 #
 
 PORTNAME=	Coro
-PORTVERSION=	1.9
+PORTVERSION=	3.1.1
 PORTEPOCH=	1
 CATEGORIES=	devel
 MASTER_SITES=	${MASTER_SITE_PERL_CPAN}
 MASTER_SITE_SUBDIR=	Coro
 PKGNAMEPREFIX=	p5-
+DISTNAME=	${PORTNAME}-3.11
 
 MAINTAINER=	perl@FreeBSD.org
 COMMENT=	Coro - coroutine process abstraction for perl
 
-BUILD_DEPENDS=	p5-Event>=0.89:${PORTSDIR}/devel/p5-Event \
-		${SITE_PERL}/${PERL_ARCH}/Scalar/Util.pm:${PORTSDIR}/lang/p5-Scalar-List-Utils
-RUN_DEPENDS=	${BUILD_DEPENDS}
+RUN_DEPENDS=	p5-Event>=0.89:${PORTSDIR}/devel/p5-Event \
+		${SITE_PERL}/AnyEvent.pm:${PORTSDIR}/devel/p5-AnyEvent \
+		${SITE_PERL}/${PERL_ARCH}/IO/AIO.pm:${PORTSDIR}/devel/p5-IO-AIO
+BUILD_DEPENDS=	${RUN_DEPENDS}
 
 PERL_CONFIGURE=	yes
 
-.if !defined(NOPORTDOCS)
-PORTDOCS=	Changes
-EXAMPLES=	eg/attributes eg/bench eg/cont eg/dns eg/event eg/lwp eg/myhttpd eg/prodcons1 eg/prodcons2 eg/prodcons3 eg/readline
-
-post-install:
-	@${MKDIR} ${DOCSDIR}
-	@${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${DOCSDIR}
-	@${ECHO_MSG} "===> Documentation installed in ${DOCSDIR}."
-	@${MKDIR} ${EXAMPLESDIR}
-	@${INSTALL_DATA} ${EXAMPLES:S|^|${WRKSRC}/|} ${EXAMPLESDIR}
-	@${ECHO_MSG} "===> Examples installed in ${EXAMPLESDIR}."
-.endif
+MAN3=		Coro.3 Coro::AIO.3 Coro::Channel.3 Coro::Handle.3 \
+		Coro::LWP.3 Coro::MakeMaker.3 Coro::RWLock.3 Coro::Select.3 \
+		Coro::Semaphore.3 Coro::SemaphoreSet.3 Coro::Signal.3 \
+		Coro::Socket.3 Coro::Specific.3 Coro::State.3 Coro::Timer.3 \
+		Coro::Util.3
 
 .include <bsd.port.pre.mk>
 
@@ -41,22 +36,12 @@
 IGNORE=		requires perl 5.6.0 or later. Install lang/perl5.8 and try again
 .endif
 
-MAN3=	Coro.3 \
-	Coro::AIO.3 \
-	Coro::Channel.3 \
-	Coro::Cont.3 \
-	Coro::Event.3 \
-	Coro::Handle.3 \
-	Coro::MakeMaker.3 \
-	Coro::RWLock.3 \
-	Coro::Select.3 \
-	Coro::Semaphore.3 \
-	Coro::SemaphoreSet.3 \
-	Coro::Signal.3 \
-	Coro::Socket.3 \
-	Coro::Specific.3 \
-	Coro::State.3 \
-	Coro::Timer.3 \
-	Coro::Util.3
+post-install:
+	${MKDIR} ${EXAMPLESDIR}
+	${INSTALL_SCRIPT} ${WRKSRC}/eg/* ${EXAMPLESDIR}
+.if !defined(NOPORTDOCS)
+	${MKDIR} ${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/doc/cede-vs-schedule ${DOCSDIR}
+.endif
 
 .include <bsd.port.post.mk>
diff -ruN --exclude=CVS /usr/ports/devel/p5-Coro/distinfo /home/staff/gslin/work/ports/p5-Coro/distinfo
--- /usr/ports/devel/p5-Coro/distinfo	Mon Feb  6 16:11:21 2006
+++ /home/staff/gslin/work/ports/p5-Coro/distinfo	Sat Dec  9 19:45:50 2006
@@ -1,3 +1,3 @@
-MD5 (Coro-1.9.tar.gz) = 63efa9fb31ded80f2c7d1fb900163824
-SHA256 (Coro-1.9.tar.gz) = c94d584e07e0433909157277194112807077ed97446943995ecc2634595b8d7f
-SIZE (Coro-1.9.tar.gz) = 55882
+MD5 (Coro-3.11.tar.gz) = b5e2accd75fbb4aaa83e7216e92e6a3d
+SHA256 (Coro-3.11.tar.gz) = 1ad4f9aa856b7b8d9add923d1cb5baf14064d4754d999090f6d402c7e5b7cd9d
+SIZE (Coro-3.11.tar.gz) = 62084
diff -ruN --exclude=CVS /usr/ports/devel/p5-Coro/files/patch-Coro-Makefile.PL /home/staff/gslin/work/ports/p5-Coro/files/patch-Coro-Makefile.PL
--- /usr/ports/devel/p5-Coro/files/patch-Coro-Makefile.PL	Wed Jan 11 21:17:31 2006
+++ /home/staff/gslin/work/ports/p5-Coro/files/patch-Coro-Makefile.PL	Sat Dec  9 19:51:35 2006
@@ -1,120 +1,40 @@
---- Coro/Makefile.PL.orig	Wed Jan 11 13:20:06 2006
-+++ Coro/Makefile.PL	Wed Jan 11 13:22:18 2006
-@@ -31,77 +31,8 @@ if ($^O =~ /win32/i or $^O =~ /cygwin/ o
-    $iface = "s";
- }
- 
--print <<EOF;
--
--*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
--
--C context sharing: This option makes it possible to share the C stack and
--context between many coroutines, resulting in large memory savings and
--slight speed gains, at the cost of potential (but mostly theoretical)
--segfaults. On my Linux/x86 machine this decreased the size of a new
--coroutine from 9k to 5k, but the savings are much more apparent on
--machines without mmap or good memory management.
--
--The algorithm relies on the non-fact that the same machine stack pointer
--indicates the same function call nesting level, which usually works good
--enough (no known cases of it failing are known) but might fail in theory.
--
--The default (enabled) has been in use on productions servers for some
--time now, without any problem reports, so you are encouraged to use the
--default.
--
--EOF
--
--if (prompt ("Do you want to enable C context sharing (y/n)", "y") !~ /^\s*n/i) {
--   print "\nC context sharing enabled.\n\n";
-+$iface = "u";
-    $DEFINE .= " -DCORO_LAZY_STACK";
--}
--
--if ($iface) {
--   print <<EOF;
--
--*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
--
--Coro can use a number of methods to implement coroutines at the C
--level. The default chosen is based on your current confguration and is
--correct in most cases, but you still can chose between these alternatives:
--
--u  The unix 'ucontext.h' functions are relatively new and not implemented
--   or well-tested in older unices. They allow very fast coroutine creation
--   and reasonably fast switching, and, most importantly, are very stable.
--
--s  If the ucontext functions are not working or you don't want
--   to use them for other reasons you can try a workaround using
--   setjmp/longjmp/sigaltstack (also standard unix functions). Coroutine
--   creation is rather slow, but switching is very fast as well (often much
--   faster than with the ucontext functions). Unfortunately, glibc-2.1 and
--   below don't even feature a working sigaltstack.
--
--l  GNU/Linux. Very old GNU/Linux systems (glibc-2.1 and below) need
--   this hack. Since it is very linux-specific it is also quite fast and
--   recommended even for newer versions; when it works, that is (currently
--   x86 and a few others only. If it compiles, it's usually ok).
--
--i  IRIX. For some reason, SGI really does not like to follow the single
--   unix specification (does that surprise you?), so this workaround might
--   be needed (it's fast), although [s] and [u] should also work now.
--
--w  Microsoft Windows. Try this on Microsoft Windows, although, as there is
--   no standard on how to do this under windows, this might work only on
--   cygwin or specific versions of msvc. Your problem.
--
--For most systems, the default chosen should be OK. If you experience
--problems then you should experiment with this setting and/or turn off
--optimizations (make OPTIMIZE=-O0).
--
--EOF
--
--retry:
--
+--- Coro/Makefile.PL.orig	Sat Dec  9 19:48:35 2006
++++ Coro/Makefile.PL	Sat Dec  9 19:51:08 2006
+@@ -72,9 +72,7 @@
+ 
+ retry:
+ 
 -   my $r = prompt "Use which implementation,\n" .
 -                  "<s>etjmp/longjump, <u>context, <i>rix, <l>inux or <w>indows?",
 -                  $iface;
--   $iface = lc $1 if $r =~ /(\S)/;
++   my $r = 'u';
+    $iface = lc $1 if $r =~ /(\S)/;
  
     if ($iface eq "u") {
-       $DEFINE .= " -DCORO_UCONTEXT";
-@@ -122,37 +53,9 @@ retry:
-       print "\nUsing windows-specific implementation\n\n";
-    } else {
-       print "\nUnknown implementation \"$iface\"\n";
--      goto retry;
-    }
--} else {
--   print "\nUsing microsoft compatible coroutines\n\n";
--}
--
--print <<EOF;
--
--*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
--
--Per-context stack size factor: Depending on your settings, Coro tries to
--share the C stack as much as possible, but sometimes it needs to allocate
--a new one. This setting controls the maximum size that gets allocated,
--and should not be set too high, as memory and address space still is
--wasted even if it's not fully used. The value entered will be multiplied
--by sizeof(long), which is usually 4 on 32-bit systems, and 8 on 64-bit
--systems.
--
--A setting of 16384 (the default) therefore corresponds to a 64k..128k
--stack, which usually is ample space (you might even want to try 8192 or
--lower if your program creates many coroutines).
--
--Some perls (mostly threaded ones and perl compiled under linux 2.6) and
--some programs (inefficient regexes can use a lot of stack space) may
--need much, much more: If Coro segfaults with weird backtraces (e.g. in a
--function prologue) or in t/10_bugs.t, you might want to increase this to
--65536 or more.
--
--EOF
+@@ -132,7 +130,7 @@
+ 
+ EOF
  
 -my $stacksize = prompt ("C stack size factor", "16384");
 +my $stacksize = 65536;
  $DEFINE .= " -DSTACKSIZE=$stacksize";
  
  print "using a stacksize of $stacksize * sizeof(long)\n";
+@@ -159,7 +157,7 @@
+ 
+ EOF
+ 
+-my $stackguard = prompt ("Number of guard pages (0 disables)", "4");
++my $stackguard = 4;
+ $DEFINE .= " -DSTACKGUARD=$stackguard";
+ 
+ print <<EOF;
+@@ -177,7 +175,7 @@
+ 
+ EOF
+ 
+-my $valgrind = prompt ("Enable valgrind support (y/n)", "n");
++my $valgrind = 'n';
+ $DEFINE .= " -DUSE_VALGRIND=1" if $valgrind =~ /[yY]/;
+ 
+ print <<EOF;
diff -ruN --exclude=CVS /usr/ports/devel/p5-Coro/pkg-plist /home/staff/gslin/work/ports/p5-Coro/pkg-plist
--- /usr/ports/devel/p5-Coro/pkg-plist	Wed Jan 11 21:17:31 2006
+++ /home/staff/gslin/work/ports/p5-Coro/pkg-plist	Sat Dec  9 20:20:11 2006
@@ -1,40 +1,37 @@
-@comment $FreeBSD: ports/devel/p5-Coro/pkg-plist,v 1.5 2006/01/11 13:17:31 tobez Exp $
-%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/Event/Event.so
-%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/Event/Event.bs
-%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/State/State.so
-%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/State/State.bs
-%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/.packlist
+@comment $FreeBSD$
+%%EXAMPLESDIR%%/attributes
+%%EXAMPLESDIR%%/bench
+%%EXAMPLESDIR%%/dns
+%%EXAMPLESDIR%%/event
+%%EXAMPLESDIR%%/lwp
+%%EXAMPLESDIR%%/myhttpd
+%%EXAMPLESDIR%%/prodcons1
+%%EXAMPLESDIR%%/prodcons2
+%%EXAMPLESDIR%%/prodcons3
+%%EXAMPLESDIR%%/readline
+%%PORTDOCS%%%%DOCSDIR%%/cede-vs-schedule
 %%SITE_PERL%%/%%PERL_ARCH%%/Coro.pm
 %%SITE_PERL%%/%%PERL_ARCH%%/Coro/AIO.pm
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Cont.pm
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/State.pm
 %%SITE_PERL%%/%%PERL_ARCH%%/Coro/Channel.pm
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Semaphore.pm
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/SemaphoreSet.pm
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/RWLock.pm
 %%SITE_PERL%%/%%PERL_ARCH%%/Coro/CoroAPI.h
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Specific.pm
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Timer.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Handle.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/Coro/LWP.pm
 %%SITE_PERL%%/%%PERL_ARCH%%/Coro/MakeMaker.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/Coro/RWLock.pm
 %%SITE_PERL%%/%%PERL_ARCH%%/Coro/Select.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Semaphore.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/Coro/SemaphoreSet.pm
 %%SITE_PERL%%/%%PERL_ARCH%%/Coro/Signal.pm
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Handle.pm
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Util.pm
-%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Event.pm
 %%SITE_PERL%%/%%PERL_ARCH%%/Coro/Socket.pm
-%%PORTDOCS%%%%EXAMPLESDIR%%/attributes
-%%PORTDOCS%%%%EXAMPLESDIR%%/bench
-%%PORTDOCS%%%%EXAMPLESDIR%%/cont
-%%PORTDOCS%%%%EXAMPLESDIR%%/dns
-%%PORTDOCS%%%%EXAMPLESDIR%%/event
-%%PORTDOCS%%%%EXAMPLESDIR%%/lwp
-%%PORTDOCS%%%%EXAMPLESDIR%%/myhttpd
-%%PORTDOCS%%%%EXAMPLESDIR%%/prodcons1
-%%PORTDOCS%%%%EXAMPLESDIR%%/prodcons2
-%%PORTDOCS%%%%EXAMPLESDIR%%/prodcons3
-%%PORTDOCS%%%%EXAMPLESDIR%%/readline
-%%PORTDOCS%%@dirrm %%EXAMPLESDIR%%
-@dirrm %%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/Event
-@dirrm %%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/State
-@dirrm %%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro
-@dirrm %%SITE_PERL%%/%%PERL_ARCH%%/Coro
+%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Specific.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/Coro/State.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Timer.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Util.pm
+%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/.packlist
+%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/State/State.bs
+%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/State/State.so
+@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/State
+@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro
+@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/Coro
+@dirrmtry %%EXAMPLESDIR%%
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
--- p5-Coro-3.1.1,1.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



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