Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@nijssen
Created April 20, 2015 07:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nijssen/0ca278c9ef87bec86034 to your computer and use it in GitHub Desktop.
Save nijssen/0ca278c9ef87bec86034 to your computer and use it in GitHub Desktop.
Installing Everything: mod_perl patch
diff -crB apache1/mod_perl-1.31/src/modules/perl/Constants.xs mod_perl-1.31/src/modules/perl/Constants.xs
*** apache1/mod_perl-1.31/src/modules/perl/Constants.xs 2003-03-13 20:39:39.000000000 -0800
--- mod_perl-1.31/src/modules/perl/Constants.xs 2015-04-19 22:49:07.370809012 -0700
***************
*** 20,26 ****
SvPVX(caller), sub, SvPVX(pclass), sub);
#endif
gv = gv_fetchpv(form("%_::%s", caller, sub), TRUE, SVt_PVCV);
! GvCV(gv) = perl_get_cv(form("%_::%s", pclass, sub), TRUE);
GvIMPORTED_CV_on(gv);
}
--- 20,26 ----
SvPVX(caller), sub, SvPVX(pclass), sub);
#endif
gv = gv_fetchpv(form("%_::%s", caller, sub), TRUE, SVt_PVCV);
! GvCV_set(gv, perl_get_cv(form("%_::%s", pclass, sub), TRUE));
GvIMPORTED_CV_on(gv);
}
diff -crB apache1/mod_perl-1.31/src/modules/perl/Log.xs mod_perl-1.31/src/modules/perl/Log.xs
*** apache1/mod_perl-1.31/src/modules/perl/Log.xs 2001-01-24 23:43:05.000000000 -0800
--- mod_perl-1.31/src/modules/perl/Log.xs 2015-04-19 22:49:24.994798100 -0700
***************
*** 10,16 ****
static void perl_cv_alias(char *to, char *from)
{
GV *gp = gv_fetchpv(to, TRUE, SVt_PVCV);
! GvCV(gp) = perl_get_cv(from, TRUE);
}
static void ApacheLog(int level, SV *sv, SV *msg)
--- 10,16 ----
static void perl_cv_alias(char *to, char *from)
{
GV *gp = gv_fetchpv(to, TRUE, SVt_PVCV);
! GvCV_set(gp, perl_get_cv(from, TRUE));
}
static void ApacheLog(int level, SV *sv, SV *msg)
diff -crB apache1/mod_perl-1.31/src/modules/perl/mod_perl.c mod_perl-1.31/src/modules/perl/mod_perl.c
*** apache1/mod_perl-1.31/src/modules/perl/mod_perl.c 2008-11-20 10:12:31.000000000 -0800
--- mod_perl-1.31/src/modules/perl/mod_perl.c 2015-04-19 22:50:00.822708627 -0700
***************
*** 785,791 ****
/* *CORE::GLOBAL::exit = \&Apache::exit */
if(gv_stashpv("CORE::GLOBAL", FALSE)) {
GV *exitgp = gv_fetchpv("CORE::GLOBAL::exit", TRUE, SVt_PVCV);
! GvCV(exitgp) = perl_get_cv("Apache::exit", TRUE);
GvIMPORTED_CV_on(exitgp);
}
--- 785,791 ----
/* *CORE::GLOBAL::exit = \&Apache::exit */
if(gv_stashpv("CORE::GLOBAL", FALSE)) {
GV *exitgp = gv_fetchpv("CORE::GLOBAL::exit", TRUE, SVt_PVCV);
! GvCV_set(exitgp, perl_get_cv("Apache::exit", TRUE));
GvIMPORTED_CV_on(exitgp);
}
diff -crB apache1/mod_perl-1.31/src/modules/perl/perl_config.c mod_perl-1.31/src/modules/perl/perl_config.c
*** apache1/mod_perl-1.31/src/modules/perl/perl_config.c 2003-03-13 20:55:59.000000000 -0800
--- mod_perl-1.31/src/modules/perl/perl_config.c 2015-04-19 22:58:45.201694521 -0700
***************
*** 1720,1726 ****
if((cv = GvCV((GV*)val)) && (GvSTASH((GV*)val) == GvSTASH(CvGV(cv)))) {
GV *gv = CvGV(cv);
cv_undef(cv);
! CvGV(cv) = gv;
GvCVGEN(gv) = 1; /* invalidate method cache */
}
}
--- 1720,1726 ----
if((cv = GvCV((GV*)val)) && (GvSTASH((GV*)val) == GvSTASH(CvGV(cv)))) {
GV *gv = CvGV(cv);
cv_undef(cv);
! CvGV_set(cv, gv);
GvCVGEN(gv) = 1; /* invalidate method cache */
}
}
diff -crB apache1/mod_perl-1.31/src/modules/perl/perl_util.c mod_perl-1.31/src/modules/perl/perl_util.c
*** apache1/mod_perl-1.31/src/modules/perl/perl_util.c 2007-12-02 23:19:59.000000000 -0800
--- mod_perl-1.31/src/modules/perl/perl_util.c 2015-04-19 22:55:18.001436463 -0700
***************
*** 669,675 ****
{
if(set_ids++) return;
sv_setiv(GvSV(gv_fetchpv("$", TRUE, SVt_PV)), (I32)getpid());
! #ifndef WIN32
uid = (int)getuid();
euid = (int)geteuid();
gid = (int)getgid();
--- 669,675 ----
{
if(set_ids++) return;
sv_setiv(GvSV(gv_fetchpv("$", TRUE, SVt_PV)), (I32)getpid());
! #if 0
uid = (int)getuid();
euid = (int)geteuid();
gid = (int)getgid();
diff -crB apache1/mod_perl-1.31/Symbol/Symbol.xs mod_perl-1.31/Symbol/Symbol.xs
*** apache1/mod_perl-1.31/Symbol/Symbol.xs 2000-12-21 22:02:32.000000000 -0800
--- mod_perl-1.31/Symbol/Symbol.xs 2015-04-18 16:50:55.925460012 -0700
***************
*** 30,36 ****
has_proto = TRUE;
cv_undef(cv);
! CvGV(cv) = gv; /* let user-undef'd sub keep its identity */
if(has_proto)
SvPOK_on(cv); /* otherwise we get `Prototype mismatch:' */
--- 30,36 ----
has_proto = TRUE;
cv_undef(cv);
! CvGV_set(cv,gv); /* let user-undef'd sub keep its identity */
if(has_proto)
SvPOK_on(cv); /* otherwise we get `Prototype mismatch:' */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment