Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#46764 closed defect (fixed)

mod_perl: obsolete outdated/unmaintained port, not compatible with perl5.16+

Reported by: dbevans (David B. Evans) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: ryandesign (Ryan Carsten Schmidt), mojca (Mojca Miklavec)
Port: mod_perl

Description (last modified by dbevans (David B. Evans))

mod_perl (version 1.x) fails to build with perl5.16 as follows

/usr/bin/clang  -O3 -I/opt/local/lib/perl5/5.16.3/darwin-thread-multi-2level/CORE -pipe -Os  -fno-common -DPERL_DARWIN -I/opt/local/include -fno-strict-aliasing -fstack-protector -I/opt/local/include -DMOD_PERL_VERSION=\"1.31\" -DMOD_PERL_STRING_VERSION=\"mod_perl/1.31\" -DMOD_PERL_PREFIX=\"/opt/local/lib/perl5/site_perl/5.16.3/darwin-thread-multi-2level\" -I/opt/local/include/httpd -DMOD_PERL -DDARWIN -DUSE_HSREGEX -pipe -Os -std=c89 -arch x86_64  -c perlio.c && mv perlio.o perlio.lo
/usr/bin/clang  -O3 -I/opt/local/lib/perl5/5.16.3/darwin-thread-multi-2level/CORE -pipe -Os  -fno-common -DPERL_DARWIN -I/opt/local/include -fno-strict-aliasing -fstack-protector -I/opt/local/include -DMOD_PERL_VERSION=\"1.31\" -DMOD_PERL_STRING_VERSION=\"mod_perl/1.31\" -DMOD_PERL_PREFIX=\"/opt/local/lib/perl5/site_perl/5.16.3/darwin-thread-multi-2level\" -I/opt/local/include/httpd -DMOD_PERL -DDARWIN -DUSE_HSREGEX -pipe -Os -std=c89 -arch x86_64  -c mod_perl_opmask.c && mv mod_perl_opmask.o mod_perl_opmask.lo
perl_util.c:673:5: error: use of undeclared identifier 'PL_uid'
    uid  = (int)getuid(); 
    ^
./perl_PL.h:68:13: note: expanded from macro 'uid'
#define uid PL_uid
            ^
perl_util.c:674:5: error: use of undeclared identifier 'PL_euid'
    euid = (int)geteuid(); 
    ^
./perl_PL.h:47:14: note: expanded from macro 'euid'
#define euid PL_euid
             ^
perl_util.c:675:5: error: use of undeclared identifier 'PL_gid'
    gid  = (int)getgid(); 
    ^
./perl_PL.h:50:13: note: expanded from macro 'gid'
#define gid PL_gid
            ^
perl_util.c:676:5: error: use of undeclared identifier 'PL_egid'
    egid = (int)getegid(); 
    ^
./perl_PL.h:38:14: note: expanded from macro 'egid'
#define egid PL_egid
             ^
perl_util.c:761:mod_perl.c:525:28: warning: 34: warning: invalid conversion specifier '_' [-Wformat-invalid-specifier]
invalid conversion specifier '_' [-Wformat-invalid-specifier]
            sv_catpvf(fake, " at %_ line ", GvSV(CopFILEGV(curcop)));
                                 ~^
    fprintf(stderr, "%s", form("%_ is version %_\n", 
                                ~^
mod_perl.c:525:48: warning: invalid conversion specifier '_' [-Wformat-invalid-specifier]
    fprintf(stderr, "%s", form("%_ is version %_\n", 
                                              ~^
mod_perl.c:536:22: warning: invalid conversion specifier '_' [-Wformat-invalid-specifier]
        sv_setpvf(namesv, "%_/Apache.pm", dir);
                           ~^
1 warning and 4 errors generated.
mod_perl.c:562:31: warning: invalid conversion specifier 'v' [-Wformat-invalid-specifier]
        char *version = form("Perl/v%vd", PL_patchlevel);
                                    ~^
make[1]: *** [perl_util.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
mod_perl.c:788:15: error: expression is not assignable
        GvCV(exitgp) = perl_get_cv("Apache::exit", TRUE);
        ~~~~~~~~~~~~ ^
perl_config.c:1723:22: error: expression is not assignable
            CvGV(cv) = gv;
            ~~~~~~~~ ^
1 error generated.
make[1]: Entering directory `/opt/local/var/macports/build/_opt_macports_trunk_dports_www_mod_perl/mod_perl/work/mod_perl-1.31/Apache'
make[1]: *** [perl_config.lo] Error 1
4 warnings and 1 error generated.

The undeclared identifiers mentioned were removed from perl in perl5.16.

See upstream bug report RT #77129 for this problem against mod_perl 2.0.6. Although a patch was proposed to fix the problem and incorporated into mod_perl 2.x, it was never backported to mod_perl 1.x.

I've tried the patch as given against mod_perl, but it fixes only a portion of the problems associated with these missing identifiers.

Unless there is someone who really needs this port and is willing to take maintainership and make it work with current perl versions, I see no point in carrying it further and propose to remove it and it sole dependency p5-libapreq and remove optional support for it in other ports such as p5-html-mason.

Mavericks build log attached.

Attachments (1)

main.log (26.3 KB) - added by dbevans (David B. Evans) 9 years ago.
Build log showing failure

Download all attachments as: .zip

Change History (6)

Changed 9 years ago by dbevans (David B. Evans)

Attachment: main.log added

Build log showing failure

comment:1 Changed 9 years ago by mojca (Mojca Miklavec)

Which also makes p5-libapreq useless, right?

Unless there is someone who really needs this port and is willing to take maintainership and make it work with current perl versions, I see no point in carrying it further

I fully agree.

Ryan wanted to keep support for Apache 1. Ryan, are you still willing to take over these three broken ports (apache, mod_perl, p5-libapreq)?

comment:2 Changed 9 years ago by dbevans (David B. Evans)

Description: modified (diff)

comment:3 in reply to:  1 Changed 9 years ago by dbevans (David B. Evans)

Replying to mojca@…:

Which also makes p5-libapreq useless, right?

That's what I meant to say (typo).

Unless there is someone who really needs this port and is willing to take maintainership and make it work with current perl versions, I see no point in carrying it further

I fully agree.

Ryan wanted to keep support for Apache 1. Ryan, are you still willing to take over these three broken ports (apache, mod_perl, p5-libapreq)?

mod_perl, p5-libapreq are not requirements for keeping Apache 1: they are optional extensions. I have no problem keeping Apache 1 as long as it works.

Last edited 9 years ago by dbevans (David B. Evans) (previous) (diff)

comment:4 Changed 9 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: newclosed

Hearing no objections, mod_perl, p5-libapreq removed in r132732, r132734.

No further dependents, no replacement specified since moving to mod_perl2 also requires moving to apache2.

Last edited 9 years ago by dbevans (David B. Evans) (previous) (diff)

comment:5 Changed 9 years ago by mojca (Mojca Miklavec)

Thank you.

Note: See TracTickets for help on using tickets.