Opened 9 years ago

Last modified 9 years ago

#46764 closed defect

mod_perl: obsolete outdated/unmaintained port, not compatible with perl5.16+ — at Initial Version

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

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-libapr and remove optional support for it in other ports such as p5-html-mason.

Mavericks build log attached.

Change History (1)

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

Attachment: main.log added

Build log showing failure

Note: See TracTickets for help on using tickets.