Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 550972 - www-apache/mod_perl makes references to ap_default_type.
Summary: www-apache/mod_perl makes references to ap_default_type.
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Christian Ruppert (idl0r)
URL:
Whiteboard:
Keywords:
Depends on: mod_perl-stable
Blocks:
  Show dependency tree
 
Reported: 2015-06-01 19:56 UTC by Dan Goodliffe
Modified: 2017-04-30 11:34 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Goodliffe 2015-06-01 19:56:34 UTC
mod_perl source makes several references to ap_default_type, which was removed 20090131.0 (2.3.2-dev) according to httpd-2.4.12/include/ap_mmn.h.
Default configuration of mod_perl then fails with errors.



mod_perl from jmbsvicetto does not have this reference, but is still v2.0.8. Haven't looked in depth at what sources each pulls in... obviously their different things.

Reproducible: Always

Steps to Reproduce:
1. Configure apache with mod_perl and default configuration
2. Start apache
Actual Results:  
Snippet from /var/log/apache/error.log

[Mon Jun 01 20:36:55.799494 2015] [perl:error] [pid 4288:tid 140103785011072] Can't load '/usr/lib64/perl5/vendor_perl/5.20.2/x86_64-linux-thread-multi/auto/Apache2/RequestUtil/RequestUtil.so' for module Apache2::RequestUtil: /usr/lib64/perl5/vendor_perl/5.20.2/x86_64-linux-thread-multi/auto/Apache2/RequestUtil/RequestUtil.so: undefined symbol: ap_default_type at /usr/lib64/perl5/5.20.2/XSLoader.pm line 68.
at /usr/lib64/perl5/vendor_perl/5.20.2/x86_64-linux-thread-multi/Apache2/RequestUtil.pm line 26.
Compilation failed in require at /etc/apache2/modules.d/apache2-mod_perl-startup.pl line 10.
BEGIN failed--compilation aborted at /etc/apache2/modules.d/apache2-mod_perl-startup.pl line 10.
Compilation failed in require at (eval 2) line 1.

Expected Results:  
No errors, normal start up.

I do have one install of Apache with mod_perl which inexplicably starts. I haven't yet figured out what's different between that and the failing one.

defiant ~ # emerge --info
Portage 2.2.20 (python 3.3.5-final-0, hardened/linux/amd64/no-multilib, gcc-4.9.2, glibc-2.20-r2, 3.14.35-hardened x86_64)
=================================================================
System uname: Linux-3.14.35-hardened-x86_64-Intel-R-_Core-TM-_i3_CPU_530_@_2.93GHz-with-gentoo-2.2
KiB Mem:     8032656 total,    833416 free
KiB Swap:    2097148 total,   1795728 free
Timestamp of repository gentoo: Mon, 01 Jun 2015 13:30:01 +0000
sh bash 4.3_p39
ld GNU ld (Gentoo 2.25 p1.2) 2.25
app-shells/bash:          4.3_p39::gentoo
dev-lang/perl:            5.20.2-r1::gentoo
dev-lang/python:          2.7.10::gentoo, 3.3.5-r1::gentoo
dev-util/cmake:           3.2.2::gentoo
dev-util/pkgconfig:       0.28-r3::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.16.3::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.69-r1::gentoo
sys-devel/automake:       1.14.1::gentoo, 1.15::gentoo
sys-devel/binutils:       2.25-r1::gentoo
sys-devel/gcc:            4.9.2::gentoo
sys-devel/gcc-config:     1.8::gentoo
sys-devel/libtool:        2.4.6-r1::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.0::gentoo (virtual/os-headers)
sys-libs/glibc:           2.20-r2::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: ssh://portage@portage/usr/portage
    priority: -1000

RandomLAN
    location: /var/lib/layman/RandomLAN
    masters: gentoo
    priority: 50

jmbsvicetto
    location: /var/lib/layman/jmbsvicetto
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O3 -march=native -pipe -fno-devirtualize"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O3 -march=native -pipe -fno-devirtualize"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-backup unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://firebrand.random.lan/portage http://defiant.random.lan/portage http://sys.randomdan.homeip.net/"
LANG="en_GB.utf8"
LC_ALL="en_GB.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude=/lost+found"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="a52 aac accessibility acl acpi ads amd64 apache2 apm aspell authdaemond autoupdate bash-completion berkdb bzip2 c++0x cairo caps cli consolekit cracklib crypt ctype curl cxx daemon dbus device-mapper disk-partition diskio divx dlna dri dts dv dvb encode exif exiscan exiscan-acl extras fam fastbuild fastcgi ffmpeg filter firmware fontconfig freetype fuse gettext gif git glib graphviz gudev hardened hash hpn iconv icu id3 imagemagick imap imlib innodb inotify ipv6 ithreads jpeg jpeg2k json justify lame lastfm lcms ldap libnotify logrotate lvmroot lzma lzo maildir mediaserver mmx mmxext modperl modules motif mp3 mpeg mpeg2 mpeg4 mplayer mpm-prefork mysql mythtv ncurses network network-cron nls no-old-linux nocardbus nocd nojoystick nptl nptlonly nscd nsplugin nuv ocfs2 offensive ogg oggvorbis openssl pam pax_kernel pcre pdf pgmaster png policykit posix postgres python3 qt3support raid readline real realmedia remote session sharedext smp snmp soap sockets spamassassin sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 symlink syslog systemd taglib theora threads threadsafe thumbnail tidy truetype unicode upcall upnp urandom usb utp uuid v4l v4l2 vim-pager vim-syntax vim-with-x win32codecs winbind wmf wmp xattr xcomposite xml xmms xosd xsl xslt xtpax xulrunner xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="alias filter authz_core auth_basic authz_user authn_core unixd authz_host cgid mime_magic mime autoindex vhost_alias dav dir deflate log_config env rewrite cache socache_shmcb cache_disk status expires" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" DRACUT_MODULES="lvm syslog mdraid" DVB_CARDS="usb-dib0700" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_GB" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby20" USERLAND="GNU" VIDEO_CARDS="intel i915" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
Comment 1 Dan Goodliffe 2015-06-01 20:16:23 UTC
The jmbsvicetto overlay appears to be quite different, based on a debian tar.
If I rebuild that from source, it fails with a segmentation fault... works fine with an old build (from a quick-pkg) I have from ages ago... it's possibly not the best of references to make.
Comment 2 Andreas Kielkopf 2016-06-18 16:08:00 UTC
this also happens in manjaro Linux
Comment 3 Andreas K. Hüttel archtester gentoo-dev 2016-10-01 12:09:12 UTC
Please test www-apache/mod_perl-2.0.10_rc1 and report back!
Comment 4 Dan Goodliffe 2016-10-01 22:14:07 UTC
Looks like that works a treat :)
Comment 5 Andreas K. Hüttel archtester gentoo-dev 2016-10-01 22:26:41 UTC
(In reply to Dan Goodliffe from comment #4)
> Looks like that works a treat :)

Great. Please just for reference add your Perl and Apache versions here!
Comment 6 Dan Goodliffe 2016-10-01 22:54:33 UTC
defiant ~ # emerge -pqO apache perl
[ebuild   R   ] www-servers/apache-2.4.23-r1 
[ebuild   R   ] dev-lang/perl-5.24.0-r1 



Just in case, I've also got the following patch applied since July 2015 (and I can't for the life of me remember why, but I don't think it's relevant this)

defiant ~ # cat /etc/portage/patches/dev-lang/perl/revert-const-core-magic-vtables.patch 
reverted:
--- b/perl.h
+++ a/perl.h
@@ -5558,7 +5558,14 @@
 EXTCONST runops_proc_t PL_runops_dbg
   INIT(Perl_runops_debug);
 
+/* PERL_GLOBAL_STRUCT_PRIVATE wants to keep global data like the
+ * magic vtables const, but this is incompatible with SWIG which
+ * does want to modify the vtables. */
+#ifdef PERL_GLOBAL_STRUCT_PRIVATE
+#  define EXT_MGVTBL EXTCONST MGVTBL
+#else
+#  define EXT_MGVTBL EXT MGVTBL
+#endif
-#define EXT_MGVTBL EXTCONST MGVTBL
 
 #define PERL_MAGIC_READONLY_ACCEPTABLE 0x40
 #define PERL_MAGIC_VALUE_MAGIC 0x80
Comment 7 Andreas K. Hüttel archtester gentoo-dev 2017-04-30 11:34:19 UTC
2.0.8 and 2.0.9 are gone.