summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-perl')
-rw-r--r--dev-perl/SpeedyCGI/ChangeLog21
-rw-r--r--dev-perl/SpeedyCGI/SpeedyCGI-2.22-r1.ebuild36
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-apache-docs.patch18
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-apache2.2.patch56
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-empty-param.patch40
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-makefile-manpage.patch16
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-perl5.10.patch26
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-perl_sys_init.patch28
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-speedy_unsafe_putenv.patch16
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-strerror.patch47
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-strip-backend-libs.patch31
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-test-timeout.patch14
-rw-r--r--dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-uninit-crash.patch15
13 files changed, 362 insertions, 2 deletions
diff --git a/dev-perl/SpeedyCGI/ChangeLog b/dev-perl/SpeedyCGI/ChangeLog
index 2076de02e4b9..728c291a0db4 100644
--- a/dev-perl/SpeedyCGI/ChangeLog
+++ b/dev-perl/SpeedyCGI/ChangeLog
@@ -1,6 +1,23 @@
# ChangeLog for dev-perl/SpeedyCGI
-# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-perl/SpeedyCGI/ChangeLog,v 1.8 2009/11/26 12:36:41 flameeyes Exp $
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-perl/SpeedyCGI/ChangeLog,v 1.9 2010/03/29 14:59:14 pva Exp $
+
+*SpeedyCGI-2.22-r1 (29 Mar 2010)
+
+ 29 Mar 2010; Peter Volkov <pva@gentoo.org> +SpeedyCGI-2.22-r1.ebuild,
+ +files/SpeedyCGI-2.22-apache-docs.patch,
+ +files/SpeedyCGI-2.22-apache2.2.patch,
+ +files/SpeedyCGI-2.22-empty-param.patch,
+ +files/SpeedyCGI-2.22-makefile-manpage.patch,
+ +files/SpeedyCGI-2.22-perl5.10.patch,
+ +files/SpeedyCGI-2.22-perl_sys_init.patch,
+ +files/SpeedyCGI-2.22-speedy_unsafe_putenv.patch,
+ +files/SpeedyCGI-2.22-strerror.patch,
+ +files/SpeedyCGI-2.22-strip-backend-libs.patch,
+ +files/SpeedyCGI-2.22-test-timeout.patch,
+ +files/SpeedyCGI-2.22-uninit-crash.patch:
+ Added debian patchset, fixes #299978 thank Diego E. 'Flameeyes' Pettenò
+ for report.
26 Nov 2009; Diego E. Pettenò <flameeyes@gentoo.org>
SpeedyCGI-2.22.ebuild:
diff --git a/dev-perl/SpeedyCGI/SpeedyCGI-2.22-r1.ebuild b/dev-perl/SpeedyCGI/SpeedyCGI-2.22-r1.ebuild
new file mode 100644
index 000000000000..29510d4bc3e2
--- /dev/null
+++ b/dev-perl/SpeedyCGI/SpeedyCGI-2.22-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-perl/SpeedyCGI/SpeedyCGI-2.22-r1.ebuild,v 1.1 2010/03/29 14:59:14 pva Exp $
+
+inherit perl-module
+
+DESCRIPTION="Speed up perl scripts by running them persistently"
+HOMEPAGE="http://daemoninc.com/SpeedyCGI/"
+SRC_URI="http://daemoninc.com/SpeedyCGI/CGI-${P}.tar.gz
+ http://oss.oetiker.ch/smokeping/pub/speedy-error.patch"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~sparc ~x86"
+IUSE=""
+
+DEPEND="dev-lang/perl"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/CGI-${P}
+
+PATCHES=( "${DISTDIR}/speedy-error.patch"
+"${FILESDIR}/${P}-makefile-manpage.patch"
+"${FILESDIR}/${P}-empty-param.patch"
+"${FILESDIR}/${P}-strerror.patch"
+"${FILESDIR}/${P}-apache-docs.patch"
+"${FILESDIR}/${P}-apache2.2.patch"
+"${FILESDIR}/${P}-strip-backend-libs.patch"
+"${FILESDIR}/${P}-test-timeout.patch"
+"${FILESDIR}/${P}-speedy_unsafe_putenv.patch"
+"${FILESDIR}/${P}-perl5.10.patch"
+"${FILESDIR}/${P}-perl_sys_init.patch"
+"${FILESDIR}/${P}-uninit-crash.patch"
+)
+
+MAKEOPTS="${MAKEOPTS} -j1"
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-apache-docs.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-apache-docs.patch
new file mode 100644
index 000000000000..45d35176a0ec
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-apache-docs.patch
@@ -0,0 +1,18 @@
+Author: Niko Tyni <ntyni@iki.fi>
+Description: Documentation for bug #204461.
+--- a/src/SpeedyCGI.src
++++ b/src/SpeedyCGI.src
+@@ -250,6 +250,13 @@
+ be Speedy followed by the option name. For example to set the
+ Timeout option, use the apache directive SpeedyTimeout.
+
++Note that these variables are global. There is currently no way to run
++different scripts with different SpeedyCGI options when they are run
++from the Apache module. Any <Directory> or <Location> contexts
++have no effect on the scope of the SpeedyCGI options. When the
++same SpeedyCGI option is set several times, the last one overrides
++the others.
++
+ =back
+
+ =head2 Context
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-apache2.2.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-apache2.2.patch
new file mode 100644
index 000000000000..3cd754674379
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-apache2.2.patch
@@ -0,0 +1,56 @@
+Author: Niko Tyni <ntyni@iki.fi>
+Description: Apache 2.2 compatibility fixes (#393017):
+* APR_BRIGADE_FOREACH macro removal
+* apr_filename_of_pathname() rename
+--- a/src/mod_speedycgi2.c
++++ b/src/mod_speedycgi2.c
+@@ -340,7 +340,10 @@
+ const char *buf;
+ apr_size_t len;
+ apr_status_t rv;
+- APR_BRIGADE_FOREACH(e, bb) {
++ for (e = APR_BRIGADE_FIRST(bb);
++ e != APR_BRIGADE_SENTINEL(bb);
++ e = APR_BUCKET_NEXT(e)) {
++
+ if (APR_BUCKET_IS_EOS(e)) {
+ break;
+ }
+@@ -380,7 +383,7 @@
+ return DECLINED;
+ }
+
+- argv0 = apr_filename_of_pathname(r->filename);
++ argv0 = apr_filepath_name_get(r->filename);
+ nph = !(strncmp(argv0, "nph-", 4));
+
+ if (!(ap_allow_options(r) & OPT_EXECCGI) && !is_scriptaliased(r))
+@@ -436,7 +439,7 @@
+ if ((rv = default_build_command(&command, &argv, r, p)) != APR_SUCCESS) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_TOCLIENT, rv, r,
+ "don't know how to spawn child process: %s",
+- apr_filename_of_pathname(r->filename));
++ apr_filepath_name_get(r->filename));
+ return HTTP_INTERNAL_SERVER_ERROR;
+ }
+
+@@ -445,7 +448,7 @@
+ command, argv, r, p)) != APR_SUCCESS) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_TOCLIENT, rv, r,
+ "couldn't spawn child process: %s",
+- apr_filename_of_pathname(r->filename));
++ apr_filepath_name_get(r->filename));
+ return HTTP_INTERNAL_SERVER_ERROR;
+ }
+
+@@ -465,7 +468,9 @@
+ return rv;
+ }
+
+- APR_BRIGADE_FOREACH(bucket, bb) {
++ for (bucket = APR_BRIGADE_FIRST(bb);
++ bucket != APR_BRIGADE_SENTINEL(bb);
++ bucket = APR_BUCKET_NEXT(bucket)) {
+ const char *data;
+ apr_size_t len;
+
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-empty-param.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-empty-param.patch
new file mode 100644
index 000000000000..0b9b7fa3c56d
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-empty-param.patch
@@ -0,0 +1,40 @@
+Author: Niko Tyni <ntyni@iki.fi>
+Description: Allow empty strings as command-line parameters
+--- a/src/speedy_frontend.c
++++ b/src/speedy_frontend.c
+@@ -535,7 +535,26 @@
+ ADD_STRING(b, s, l);
+ }
+ }
++ /* Terminate with zero-length string */
++ ADDCHAR(b, 0);
++}
++
++/* Copy a block of strings into the buffer, including empty strings */
++static void add_strings_with_empty(register SpeedyBuf *b, register const char * const * p)
++{
++ int l;
++ register const char *s;
+
++ /* Add strings in p array */
++ for (; (s = *p); ++p) {
++ if ((l = strlen(s))) {
++ ADD_STRING(b, s, l);
++ } else {
++ /* add a 1-byte long string containing just '\0' */
++ l = 1;
++ ADD_STRING(b, s, l);
++ }
++ }
+ /* Terminate with zero-length string */
+ ADDCHAR(b, 0);
+ }
+@@ -560,7 +579,7 @@
+
+ /* Add env and argv */
+ add_strings(sb, envp);
+- add_strings(sb, scr_argv+1);
++ add_strings_with_empty(sb, scr_argv+1);
+
+ /* Put script filename into buffer */
+ add_string(sb, script_fname, strlen(script_fname));
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-makefile-manpage.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-makefile-manpage.patch
new file mode 100644
index 000000000000..8e1d4b73acba
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-makefile-manpage.patch
@@ -0,0 +1,16 @@
+Author: Niko Tyni <ntyni@iki.fi>
+Description: Makefile.PL tries to be too smart, make it generate a manpage.
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -34,9 +34,9 @@
+ VERSION_FROM => 'src/SpeedyCGI.src',
+ EXE_FILES => [qw(speedy/speedy speedy_backend/speedy_backend)],
+ CONFIGURE => sub { return {DIR=>\@dirs} },
+- PM => {'src/SpeedyCGI.pm'=>'$(INST_LIBDIR)/SpeedyCGI.pm'},
++ # PM => {'src/SpeedyCGI.pm'=>'$(INST_LIBDIR)/SpeedyCGI.pm'},
+ MAN1PODS => {},
+- MAN3PODS => {},
++ # MAN3PODS => {},
+ dist => {DIST_DEFAULT => 'mydist'},
+ realclean => {FILES => 'README README.html lib'},
+ %write_makefile_common
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-perl5.10.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-perl5.10.patch
new file mode 100644
index 000000000000..8445dad26683
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-perl5.10.patch
@@ -0,0 +1,26 @@
+Author: Niko Tyni <ntyni@debian.org>
+Description: Fix build failures with Perl 5.10.
+Pod::Text::pod2text() calling conventions changed
+use Newx() instead of New()
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -71,7 +71,7 @@
+ chmod -R u+w,go-w,go+r .
+
+ README: src/SpeedyCGI.pm
+- cd src && $(PERL) -e "use Pod::Text; pod2text(-80)" <SpeedyCGI.pm >../README
++ cd src && pod2text -80 <SpeedyCGI.pm >../README
+
+ README.html: src/SpeedyCGI.pm
+ cd src && pod2html SpeedyCGI.pm >../README.html && $(RM_F) pod2h*
+--- a/src/speedy_backend_main.h
++++ b/src/speedy_backend_main.h
+@@ -38,7 +38,7 @@
+
+ #else
+
+-#define speedy_new(s,n,t) New(123,s,n,t)
++#define speedy_new(s,n,t) Newx(s,n,t)
+ #define speedy_renew Renew
+ #define speedy_free Safefree
+
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-perl_sys_init.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-perl_sys_init.patch
new file mode 100644
index 000000000000..e8da0b9d0f92
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-perl_sys_init.patch
@@ -0,0 +1,28 @@
+Author: Niko Tyni <ntyni@debian.org>
+Description: Properly call PERL_SYS_INIT3() to fix lockups on hppa with perl 5.10.0. (Closes: #486070)
+
+This was always buggy but didn't bite until now. From 'perldoc perlembed':
+
+The macros PERL_SYS_INIT3() and PERL_SYS_TERM() provide system-specific
+tune up of the C runtime environment necessary to run Perl interpreters
+--- a/src/speedy_backend_main.c
++++ b/src/speedy_backend_main.c
+@@ -170,6 +170,8 @@
+ int i;
+ SigList sl;
+
++ PERL_SYS_INIT3(&argc, &argv, &_junk);
++
+ speedy_util_unlimit_core();
+
+ if (!(my_perl = perl_alloc()))
+--- a/src/speedy_perl.c
++++ b/src/speedy_perl.c
+@@ -405,6 +405,7 @@
+
+ perl_destruct(my_perl);
+ }
++ PERL_SYS_TERM();
+ speedy_util_exit(0,0);
+ }
+
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-speedy_unsafe_putenv.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-speedy_unsafe_putenv.patch
new file mode 100644
index 000000000000..c4adb7b8c6ec
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-speedy_unsafe_putenv.patch
@@ -0,0 +1,16 @@
+Author: banb@yahoo.co.jp
+Description: Debian #418447, CPAN #13521
+http://rt.cpan.org/Public/Bug/Display.html?id=13521
+--- a/src/speedy_backend_main.c
++++ b/src/speedy_backend_main.c
+@@ -176,6 +176,10 @@
+ DIE_QUIET("Cannot allocate perl");
+ perl_construct(my_perl);
+
++#if defined(PL_use_safe_putenv) || defined(PL_Guse_safe_putenv)
++ PL_use_safe_putenv = 0;
++#endif
++
+ #ifdef SPEEDY_DEBUG
+ dont_fork = getenv("SPEEDY_NOPARENT") != NULL;
+ #endif
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-strerror.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-strerror.patch
new file mode 100644
index 000000000000..608ac39c566e
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-strerror.patch
@@ -0,0 +1,47 @@
+Author: Niko Tyni <ntyni@iki.fi>
+Description: Don't crash while printing a fatal error.
+--- a/src/speedy_util.c
++++ b/src/speedy_util.c
+@@ -96,13 +96,42 @@
+ }
+
+ static void just_die(const char *fmt, va_list ap) {
++ /*
++ * All this strerror_r() stuff is here because
++ * including perl.h in some cases (Perl 5.8?) replaces
++ * strerr() with a wrapper that needs an embedded perl
++ * interpreter running. Otherwise we get SIGSEGV when
++ * accessing interpreter-specific global variables for the
++ * strerror buffer
++ *
++ * Furthermore, there are two implementations of
++ * strerror_r() out there, with different prototypes.
++ */
++
+ char buf[2048];
++#ifdef HAS_STRERROR_R
++ char errbuf[256];
++ int errsv;
++#endif
+
+ sprintf(buf, "%s[%u]: ", SPEEDY_PROGNAME, (int)getpid());
+ vsprintf(buf + strlen(buf), fmt, ap);
+ if (errno) {
+ strcat(buf, ": ");
++#ifdef HAS_STRERROR_R
++#ifdef _GNU_SOURCE
++ strcat(buf, strerror_r(errno, errbuf, sizeof(errbuf)));
++#else /* ! _GNU_SOURCE */
++ errsv = errno;
++ if (strerror_r(errsv, errbuf, sizeof(errbuf))
++ sprintf(buf + strlen(buf), "(errno = %d)", errsv);
++ else
++ strcat(buf, errbuf);
++ }
++#endif
++#else /* ! HAS_STRERROR_R */
+ strcat(buf, strerror(errno));
++#endif /* HAS_STRERROR_R */
+ }
+ strcat(buf, "\n");
+ # ifdef SPEEDY_DEBUG
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-strip-backend-libs.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-strip-backend-libs.patch
new file mode 100644
index 000000000000..537af4188be5
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-strip-backend-libs.patch
@@ -0,0 +1,31 @@
+Author: Niko Tyni <ntyni@iki.fi>
+Description: Use the automatic 'remove extra libs' feature with speedy_backend too.
+These unnecessary linking flags get removed: -lm -lcrypt -lpthread
+--- a/speedy_backend/Makefile.PL
++++ b/speedy_backend/Makefile.PL
+@@ -29,6 +29,10 @@
+ sub am_frontend {0}
+ sub my_name {'backend'}
+
++sub remove_libs { my $class = shift;
++ 'BIN=speedy_backend ../util/remove_libs';
++}
++
+ use ExtUtils::Embed;
+
+ my $tmp = "xsinit.tmp$$";
+--- a/util/remove_libs
++++ b/util/remove_libs
+@@ -3,7 +3,11 @@
+ # Remove extranaeous libs from the linking command. Reduces shared-library
+ # overhead at exec time.
+
+-BIN=speedy
++# allow testing other binaries too
++if [ "x$BIN" = "x" ]
++then
++ BIN=speedy
++fi
+ TMP1=/tmp/remove_libs$$
+ TMP2="${TMP1}2"
+
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-test-timeout.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-test-timeout.patch
new file mode 100644
index 000000000000..62bbc4ea30d2
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-test-timeout.patch
@@ -0,0 +1,14 @@
+Author: Niko Tyni <ntyni@iki.fi>
+Description: Increase the time for the backend to start so slower buildds
+have a chance. (#418717)
+--- a/speedy/t/killfe.t
++++ b/speedy/t/killfe.t
+@@ -9,7 +9,7 @@
+ my $cmd = "exec $ENV{SPEEDY} -- -M1 $scr </dev/null |";
+
+ my $pid = open (RUN1, $cmd);
+-sleep(1);
++sleep(3);
+ kill(9, $pid);
+ wait;
+ open (RUN2, $cmd);
diff --git a/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-uninit-crash.patch b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-uninit-crash.patch
new file mode 100644
index 000000000000..767fb8de8fe6
--- /dev/null
+++ b/dev-perl/SpeedyCGI/files/SpeedyCGI-2.22-uninit-crash.patch
@@ -0,0 +1,15 @@
+Author: Niko Tyni <ntyni@debian.org>
+Description: Closes: #537996
+The SvIV call crashes in on Perl 5.10.0 when warnings are
+enabled and the value is undef.
+--- a/src/speedy_perl.c
++++ b/src/speedy_perl.c
+@@ -818,7 +818,7 @@
+ my_call_sv(get_perlvar(&PERLVAR_RESET_GLOBALS));
+
+ /* Copy option values in from the perl vars */
+- if (SvIV(PERLVAL_OPTS_CHANGED)) {
++ if (SvTRUE(PERLVAL_OPTS_CHANGED)) {
+ int i;
+ for (i = 0; i < SPEEDY_NUMOPTS; ++i) {
+ OptRec *o = speedy_optdefs + i;