Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 522698 - >=www-apache/mod_perl-2.0.7 - dev-lang/perl[ithreads] is no longer optional - Failed requirements: Perl built with ithreads (build perl with -Duseithreads)
Summary: >=www-apache/mod_perl-2.0.7 - dev-lang/perl[ithreads] is no longer optional -...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Christian Ruppert (idl0r)
URL:
Whiteboard:
Keywords:
: 550070 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-09-13 08:49 UTC by Jeroen Roovers (RETIRED)
Modified: 2016-10-25 13:44 UTC (History)
5 users (show)

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


Attachments
nothreads-ebuild.patch (no_threads.patch,1.23 KB, patch)
2016-03-09 14:24 UTC, Kent Fredric (IRC: kent\n) (RETIRED)
Details | Diff
no-threads build.log (build.log,106.23 KB, text/x-log)
2016-03-09 14:26 UTC, Kent Fredric (IRC: kent\n) (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jeroen Roovers (RETIRED) gentoo-dev 2014-09-13 08:49:20 UTC
>>> Emerging (2 of 2) www-apache/mod_perl-2.0.8::gentoo
 * mod_perl-2.0.8.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ...                                                                [ ok ]
>>> Unpacking source...
>>> Unpacking mod_perl-2.0.8.tar.gz to /dev/shm/portage/www-apache/mod_perl-2.0.8/work
>>> Source unpacked in /dev/shm/portage/www-apache/mod_perl-2.0.8/work
>>> Preparing source in /dev/shm/portage/www-apache/mod_perl-2.0.8/work/mod_perl-2.0.8 ...
 * Applying mod_perl-2.0.1-sneak-tmpdir.patch ...                                                                            [ ok ]
 * Applying mod_perl-2.0.8-bundled-Apache-Test.patch ...                                                                     [ ok ]
>>> Source prepared.
>>> Configuring source in /dev/shm/portage/www-apache/mod_perl-2.0.8/work/mod_perl-2.0.8 ...
Reading Makefile.PL args from @ARGV
   MP_USE_DSO = 1
   MP_APXS = /usr/sbin/apxs2
   MP_TRACE = 0
   MP_DEBUG = 0
no conflicting prior mod_perl version found - good.
Configuring Apache/2.2.27 mod_perl/2.0.8 Perl/v5.18.2
[  error] Using Perl 5.018002 w/o ithreads and 'worker' mpm httpd.
[  error] Failed requirements:
[  error]   - Perl built with ithreads (build perl with -Duseithreads)
 
 * ERROR: www-apache/mod_perl-2.0.8::gentoo failed (configure phase):
 *   (no error message)

Sat 13 Sep 10:43:50 CEST 2014
emerge --info dev-lang/perl www-servers/apache www-apache/mod_perl
Portage 2.2.10 (default/linux/hppa/13.0, gcc-4.7.3, glibc-2.19-r1, 3.14.15-gentoo-JeR parisc64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.14.15-gentoo-JeR-parisc64-PA8800_-Mako-with-gentoo-2.2
KiB Mem:     8231888 total,   6738216 free
KiB Swap:    2101676 total,   2101676 free
Timestamp of tree: Sat, 13 Sep 2014 03:15:01 +0000
ld GNU ld (GNU Binutils) 2.24
distcc 3.1 hppa2.0-unknown-linux-gnu [enabled]
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.7, 3.2.5-r6, 3.3.5-r1, 3.4.1
dev-util/ccache:          3.1.9-r3
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.11.6, 1.12.6, 1.13.4
sys-devel/binutils:       2.22-r1, 2.23.1, 2.23.2, 2.24-r3
sys-devel/gcc:            4.6.3, 4.6.4, 4.7.2-r1, 4.7.3-r1, 4.8.1-r1, 4.8.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.16 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo JeR
ACCEPT_KEYWORDS="hppa"
ACCEPT_LICENSE="*"
CBUILD="hppa2.0-unknown-linux-gnu"
CFLAGS="-mschedule=8000 -march=2.0 -ggdb -Wall -O2 -pipe -Wno-comment"
CHOST="hppa2.0-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib/distcc/bin /usr/lib/python2.7/site-packages/buildbot/status/web /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /var/bind /var/spool/torque /var/www/localhost/htdocs/wordpress/wp-config.php"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-mschedule=8000 -march=2.0 -ggdb -Wall -O2 -pipe"
DISTDIR="/world/distfiles"
EMERGE_DEFAULT_OPTS="--quiet-build=n"
FCFLAGS=""
FEATURES="assume-digests binpkg-logs buildpkg cgroup config-protect-if-modified distcc distlocks ebuild-locks fixlafiles merge-sync metadata-transfer news notitles parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict test test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-mschedule=8000 -march=2.0 -ggdb -Wall -O2 -pipe"
GENTOO_MIRRORS="http://de-mirror.org/gentoo/ http://gentoo.mneisen.org/ http://mirror.netcologne.de/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://ftp.halifax.rwth-aachen.de/gentoo/ http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://mirror.leaseweb.com/gentoo/ http://gentoo.tiscali.nl/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo"
LANG="C"
LC_ALL="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
MAKEOPTS="-j6"
PKGDIR="/keeps/gentoo/packages/karsten"
PORTAGE_CONFIGROOT="/"
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="/dev/shm"
PORTDIR="/world/gentoo/portage"
PORTDIR_OVERLAY="/keeps/gentoo/local"
SYNC="rsync://rsync.nl.gentoo.org/gentoo-portage"
USE="256-color X acl alsa amr anacron apng audit bash-completion berkdb bfio bittorrent bzip2 cairo canberra cli consolekit coverage cracklib crossdev crypt cups custom-cflags cxx dane dbus declarative dirac directfb distinct-l dlz doc dot dri emacs exceptions exif expat fbcon filecaps firefox firmware foomaticdb fortran frontend-optional gbm gdbm geoip geoloc glep gles1 gles2 gost gpm graphite gsm gstreamer gtk gudev guile hddtemp hppa hwdb iconv idn imlib inotify ipv6 jadetex javascript jingle jit jpeg jpeg2k json kdrive kmod ladspa lasi launch-frontend libcaca libcanberra libevent libopts libsoxr libusb libwww lua lzma lzo mad mng mod modplug modules mp3 multislot multitarget munge nagios ncurses netlink nfs nls nptl objc objc++ objc-gc offensive openexr opengl openmp openrc openvg opus osmesa oss pam pcre php pic pkcs11 png pnm policykit python qt qt3support qt4 readline realtime regression-test rtmp samba schroedinger session smi socks5 speex spell spidermonkey sqlite ssl tcl tcpd test tga theora threads tiff tk tokyocabinet truetype unicode unwind v4l vim-syntax vorbis vpx wayland wcwidth x264 xa xattr xcb xft xhtml xkb xml2 xvfb xvid zlib" ALSA_CARDS="ad1889 usb-audio" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" 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" CURL_SSL="nss" DRACUT_MODULES="nfs syslog" 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" INPUT_DEVICES="evdev joystick keyboard mouse acecad aiptek calcomp citron digitaledge dmc dynapro elo2300 elographics fpit hyperpen jamstudio magellan microtouch mutouch palmax penmount spaceorb summa tek4957 tslib ur98 void" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en nl he" OFFICE_IMPLEMENTATION="libreoffice" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3 python3_4" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="stifb dummy" 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"
USE_PYTHON="2.7 3.3"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

dev-lang/perl-5.18.2-r1 was built with the following:
USE="berkdb doc gdbm -debug -ithreads"


www-servers/apache-2.2.27-r4 was built with the following:
USE="debug doc ssl threads -ldap (-selinux) -static -suexec" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias -asis -auth_digest -authn_dbd -cern_meta -charset_lite -dbd -dumpio -ident -imagemap -log_forensic -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_ftp -proxy_http -proxy_scgi -reqtimeout -substitute -version" APACHE2_MPMS="-event -itk -peruser -prefork -worker"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--no-as-needed"


Makefile.PL seems to say that "certain mpms require perl 5.8.0+ w/ithreads".
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2014-09-13 08:52:32 UTC
(In reply to Jeroen Roovers from comment #0)
> Makefile.PL seems to say that "certain mpms require perl 5.8.0+ w/ithreads".

Lines 504-5 in <mod_perl-2.0.{7,8}/Makefile.PL>.
Comment 2 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-05-22 11:54:45 UTC
The list of thread-requiring mpm's is here:

https://metacpan.org/source/Apache2::Build#L278

> APACHE2_MPMS="-event -itk -peruser -prefork -worker"

Bingo =).
Comment 3 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-05-22 14:30:35 UTC
*** Bug 550070 has been marked as a duplicate of this bug. ***
Comment 4 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2016-03-09 14:23:37 UTC
It looks like you can get around the Makefile.PL requirement, and this ebuild patch certainly gets that part working ( not sure if the DEPEND stuff is right here ).

I basically add an IUSE="ithreads" and use that to decide what to do.

The downside is the resulting build fails with compile errors:

---
modperl_env.c: In function ‘modperl_env_init’:
modperl_env.c:657:10: error: ‘my_perl’ undeclared (first use in this function)
     if (!my_perl)

modperl_env.c: In function ‘modperl_env_unload’:
modperl_env.c:688:10: error: ‘my_perl’ undeclared (first use in this function)
     if (!my_perl)
          ^
Makefile:114: recipe for target 'modperl_env.lo' failed

modperl_perl.c: In function ‘modperl_perl_destruct’:
modperl_perl.c:184:5: error: too many arguments to function ‘modperl_env_unload’
     modperl_env_unload(perl);
     ^
      ^
Makefile:114: recipe for target 'modperl_perl.lo' failed
make[1]: *** [modperl_perl.lo] Error 1

But attaching the ebuild patch for others to play with and see if anyone knows how to get around the compile error.
Comment 5 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2016-03-09 14:24:06 UTC
Created attachment 427824 [details, diff]
nothreads-ebuild.patch
Comment 6 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2016-03-09 14:26:13 UTC
Created attachment 427826 [details]
no-threads build.log

For interested parties.
Comment 7 Vieri 2016-08-24 09:16:08 UTC
I hit this issue too. So I guess this is an upstream bug. Has it been reported upstream?
Comment 8 Andreas K. Hüttel archtester gentoo-dev 2016-08-24 09:23:39 UTC
Our mod_perl packaging is *very* broken and shows problems that dont exist upstream. So this likely doesnt make sense. 

Now if I find an extra year of time somewhere... :/
Comment 9 Andreas K. Hüttel archtester gentoo-dev 2016-10-01 12:08:48 UTC
Please test www-apache/mod_perl-2.0.10_rc1 and report back!

That ebuild contains the precise requirements on threads as stated by upstream. 
As long as you use no threading MPM in apache, you should be able to work with a perl without interpreter threads.
Comment 10 Sergiy Borodych 2016-10-04 14:49:14 UTC
Nice!
Work for me.


# emerge -pv www-servers/apache dev-lang/perl www-apache/mod_perl
...
[ebuild   R    ] dev-lang/perl-5.20.2:0/5.20::gentoo  USE="berkdb gdbm -debug -doc -ithreads" 13,410 KiB
[ebuild   R    ] www-servers/apache-2.2.31:2::gentoo  USE="ssl -debug -doc -ldap (-libressl) (-selinux) -static -suexec -threads" APACHE2_MODULES="alias auth_basic authn_default authz_default authz_host cache deflate dir env expires filter headers include info log_config logio mem_cache mime rewrite status vhost_alias -actions -asis -auth_digest -authn_alias -authn_anon -authn_dbd -authn_dbm -authn_file -authz_dbm -authz_groupfile -authz_owner -authz_user -autoindex -cern_meta -cgi -cgid -charset_lite -dav -dav_fs -dav_lock -dbd -disk_cache -dumpio -ext_filter -file_cache -ident -imagemap -log_forensic -mime_magic -negotiation -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_ftp -proxy_http -proxy_scgi -reqtimeout -setenvif -speling -substitute -unique_id -userdir -usertrack -version" APACHE2_MPMS="prefork -event -itk -peruser -worker" 0 KiB
[ebuild   R   ~] www-apache/mod_perl-2.0.10_rc1:1::gentoo  USE="-debug {-test}" APACHE2_MPMS="prefork -event -worker" 0 KiB
Comment 11 Sergiy Borodych 2016-10-05 09:47:20 UTC
But for apache-2.4 there is an issue.

Configuring Apache/2.4.23 mod_perl/2.0.10-rc1 Perl/v5.20.2
[  error] Using Perl 5.020002 w/o ithreads and httpd-2.4.
[  error] Failed requirements:
[  error]   - Perl built with ithreads (build perl with -Duseithreads)
Comment 12 Andreas K. Hüttel archtester gentoo-dev 2016-10-05 15:52:12 UTC
(In reply to Sergiy Borodych from comment #11)
> But for apache-2.4 there is an issue.
> 
> Configuring Apache/2.4.23 mod_perl/2.0.10-rc1 Perl/v5.20.2
> [  error] Using Perl 5.020002 w/o ithreads and httpd-2.4.
> [  error] Failed requirements:
> [  error]   - Perl built with ithreads (build perl with -Duseithreads)

What's your useflags for Apache 2.4 ? (Especially also which MPMs?)
Comment 13 Sergiy Borodych 2016-10-06 07:28:46 UTC
Currently I have downgraded to 2.2, but this is my output if unmask 2.4

[binary     U  ] app-admin/apache-tools-2.4.23::gentoo [2.2.31::gentoo] USE="ssl (-libressl)" 0 KiB
[ebuild     U  ] www-servers/apache-2.4.23:2::gentoo [2.2.31:2::gentoo] USE="ssl -debug -doc -ldap (-libressl) (-selinux) -static -suexec -threads" APACHE2_MODULES="alias auth_basic authn_core%* authz_core%* authz_host cache deflate dir env expires filter headers include info log_config logio mime rewrite socache_shmcb%* status unixd%* vhost_alias -access_compat% -actions -asis -auth_digest -authn_alias -authn_anon -authn_dbd -authn_dbm -authn_file -authz_dbd% -authz_dbm -authz_groupfile -authz_owner -authz_user -autoindex -cache_disk% -cern_meta -cgi -cgid -charset_lite -dav -dav_fs -dav_lock -dbd -dumpio -ext_filter -file_cache -http2% -ident -imagemap -lbmethod_bybusyness% -lbmethod_byrequests% -lbmethod_bytraffic% -lbmethod_heartbeat% -log_forensic -macro% -mime_magic -negotiation -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_fcgi% -proxy_ftp -proxy_html% -proxy_http -proxy_scgi -proxy_wstunnel% -ratelimit% -remoteip% -reqtimeout -setenvif -slotmem_shm% -speling -substitute -unique_id -userdir -usertrack -version (-authn_default%*) (-authz_default%*) (-disk_cache%) (-mem_cache%*)" APACHE2_MPMS="prefork -event -worker (-itk%) (-peruser%)" 0 KiB
Comment 14 Sergiy Borodych 2016-10-07 07:23:53 UTC
Ok, I've updated perl to 5.22 (after resolving all my conflicts, yeah!)
and trying again but still no luck with apache 2.4 :(

Configuring Apache/2.4.23 mod_perl/2.0.10-rc1 Perl/v5.22.2
[  error] Using Perl 5.022002 w/o ithreads and httpd-2.4.
[  error] Failed requirements:
[  error]   - Perl built with ithreads (build perl with -Duseithreads)
Comment 15 Andreas K. Hüttel archtester gentoo-dev 2016-10-21 23:29:24 UTC
(In reply to Sergiy Borodych from comment #14)
> Ok, I've updated perl to 5.22 (after resolving all my conflicts, yeah!)
> and trying again but still no luck with apache 2.4 :(
> 
> Configuring Apache/2.4.23 mod_perl/2.0.10-rc1 Perl/v5.22.2
> [  error] Using Perl 5.022002 w/o ithreads and httpd-2.4.
> [  error] Failed requirements:
> [  error]   - Perl built with ithreads (build perl with -Duseithreads)

OK I found the reason. Try -r1, it now only has one relevant useflag "ithreads", which needs the same setting as in dev-lang/perl ...

Should work out of the box now.
Comment 16 Sergiy Borodych 2016-10-25 13:44:20 UTC
Yes, it is. Thank you!

[Tue Oct 25 16:42:46.808267 2016] [mpm_prefork:notice] [pid 22362] AH00163: Apache/2.4.23 (Unix) mod_perl/2.0.10-rc1 Perl/v5.22.2 configured -- resuming normal operations
[Tue Oct 25 16:42:46.808307 2016] [core:notice] [pid 22362] AH00094: Command line: '/usr/sbin/apache2 -D DEFAULT_VHOST -D PERL -D STATUS -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf'