Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 345761

Summary: dev-lang/wml-2.0.11-r4 does not work with dev-lang/perl-5.12.2-r2
Product: Gentoo Linux Reporter: Christoph Lange <langec>
Component: New packagesAssignee: Hans de Graaff <graaff>
Status: RESOLVED WONTFIX    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Christoph Lange 2010-11-16 14:21:23 UTC
After upgrading from Perl 5.8 to 5.12, WML no longer works.  The following problem occurs when running it, e.g. executing a file with a #!/usr/bin/wml header:

$ ./file.wml
Can't locate File/PathConvert.pm in @INC (@INC contains: /usr/lib64/wml/perl/lib/x86_64-linux /usr/lib64/wml/perl/lib /home/clange/lib/perl/lib64/perl5/site_perl/5.8.8/x86_64-linux /home/clange/lib/perl/lib64/perl5/site_perl/5.8.8 /home/clange/svn/kwarc.info/stex/trunk/bin /usr/local/lib64/perl5/site_perl/5.8.8/x86_64-linux /usr/local/lib64/perl5/site_perl/5.8.8 /usr/lib64/perl5/vendor_perl/5.8.8 /usr/lib64/perl/lib /usr/lib64/perl/lib/x86_64-linux /etc/perl /usr/lib64/perl5/site_perl/5.12.2/x86_64-linux /usr/lib64/perl5/site_perl/5.12.2 /usr/lib64/perl5/vendor_perl/5.12.2/x86_64-linux /usr/lib64/perl5/vendor_perl/5.12.2 /usr/lib64/perl5/5.12.2/x86_64-linux /usr/lib64/perl5/5.12.2 /usr/lib64/perl5/site_perl /usr/lib64/perl5/vendor_perl /usr/local/lib/site_perl .) at /usr/bin/wml line 52.
BEGIN failed--compilation aborted at /usr/bin/wml line 52.

(Please ignore the 5.8.8 components in the path, this is because I haven't rebooted since the Perl 5.12 upgrade.)

Reproducible: Always

Steps to Reproduce:
1. have the given packages installed
2. run WML


Expected Results:  
Not sure whether any result should be _expected_ at all.  IIUC the problem is that File/PathConvert is no longer maintained.  WML has a bundled version, which the ebuild doesn't install.  I tried to install it myself (simply extracted it from the WML tarball), but apparently it doesn't work with Perl 5.12:

 object version 2.30 does not match $::VERSION %_ at /usr/lib64/perl5/5.12.2/x86_64-linux/DynaLoader.pm line 223.
Compilation failed in require at /usr/bin/wml line 54.
BEGIN failed--compilation aborted at /usr/bin/wml line 54.

I don't know how to interpret this error message, but I guess it's related to incompatible Perl versions.

Unfortunately, upstream is no longer maintaining WML.  Therefore, maybe, the ebuild should get a !>=dev-lang/perl-5.12 block, and eventually be removed :-(
Comment 1 Christoph Lange 2010-11-16 14:24:06 UTC
Note: I didn't test with the (stable) previous version wml-2.0.11-r3, but I assume it would rather be worse than better.
Comment 2 Christoph Lange 2010-11-17 10:45:23 UTC
(In reply to comment #1)
> Note: I didn't test with the (stable) previous version wml-2.0.11-r3, but I
> assume it would rather be worse than better.
This one does not even compile.  Here is the Perl-related output:

===> wml_backend/p3_eperl (all)
make[2]: Entering directory `/var/tmp/paludis/dev-lang-wml-2.0.11-r3/work/wml-2.0.11/wml_backend/p3_eperl'
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_main.c
/usr/bin/perl eperl_perl5_sm.pl >eperl_perl5_sm.h
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_parse.c
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_pp.c
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_sys.c
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_http.c
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_getopt.c
eperl_main.c: In function 'give_readme':
eperl_main.c:153: warning: format not a string literal and no format arguments
eperl_main.c: In function 'give_license':
eperl_main.c:158: warning: format not a string literal and no format arguments
eperl_main.c: In function 'give_img_logo':
eperl_main.c:166: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
eperl_main.c: In function 'give_img_powered':
eperl_main.c:174: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
eperl_main.c: In function 'main':
eperl_main.c:870: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result
eperl_main.c:968: warning: ignoring return value of 'getcwd', declared with attribute warn_unused_result
eperl_main.c:974: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result
eperl_main.c:982: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result
eperl_main.c:1002: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
eperl_main.c:1012: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
eperl_main.c:1112: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result
eperl_main.c:1118: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
eperl_main.c:1123: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_debug.c
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_config.c
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_version.c
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_readme.c
eperl_http.c: In function 'HTTP_openURLasFP':
eperl_http.c:327: warning: ignoring return value of 'write', declared with attribute warn_unused_result
eperl_sys.c: In function 'abspath':
eperl_sys.c:438: warning: ignoring return value of 'getcwd', declared with attribute warn_unused_result
eperl_sys.c:441: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result
eperl_sys.c:442: warning: ignoring return value of 'getcwd', declared with attribute warn_unused_result
eperl_sys.c:444: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_license.c
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_logo.c
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_powered.c
set -e; \
        V=`./etc/shtool version -lc -d long eperl_version.c`; \
        pod2man --section=1 \
                --center="Ralf S. Engelschall" \
                --release="EN" \
            eperl.pod |\
        sed -e "s|\@V\@|$V|g" -e "s|\@prefix\@|/usr|" >eperl.1
x86_64-pc-linux-gnu-gcc -march=nocona -O2 -pipe -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.12.2/x86_64-linux/CORE -I. -c eperl_perl5.c

Error:
  * In program cave perform install --hooks --managed-output --output-exclusivity with-others =dev-lang/wml-2.0.11-r3:0::gentoo --destination installed --replacing =dev-lang/wml-2.0.11-r3:0::installed --x-of-y 1 of 1:
  * When installing 'dev-lang/wml-2.0.11-r3:0::gentoo' replacing { 'dev-lang/wml-2.0.11-r3:0::installed' }:
  * When running an ebuild command on 'dev-lang/wml-2.0.11-r3:0::gentoo':
  * Install failed for 'dev-lang/wml-2.0.11-r3:0::gentoo' (paludis::ActionFailedError)

x86_64-pc-linux-gnu-gcc -Wl,-E -Wl,-O1 -Wl,--as-needed -fstack-protector -L/usr/lib64/perl5/5.12.2/x86_64-linux/CORE  -o eperl eperl_main.o eperl_perl5.o eperl_parse.o eperl_pp.o eperl_sys.o eperl_http.o eperl_getopt.o eperl_debug.o eperl_config.o eperl_version.o eperl_readme.o eperl_license.o eperl_logo.o eperl_powered.o /usr/lib64/perl5/5.12.2/x86_64-linux/auto/DynaLoader/DynaLoader.a -lperl -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
make[2]: Leaving directory `/var/tmp/paludis/dev-lang-wml-2.0.11-r3/work/wml-2.0.11/wml_backend/p3_eperl'
make[1]: Leaving directory `/var/tmp/paludis/dev-lang-wml-2.0.11-r3/work/wml-2.0.11/wml_backend'
eperl_perl5.c: In function 'Perl5_Run':
eperl_perl5.c:215: warning: format not a string literal and no format arguments
eperl_perl5.c:242: warning: ignoring return value of 'getcwd', declared with attribute warn_unused_result
eperl_perl5.c:249: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result
x86_64-pc-linux-gnu-gcc: /usr/lib64/perl5/5.12.2/x86_64-linux/auto/DynaLoader/DynaLoader.a: No such file or directory
make[2]: *** [eperl] Error 1
make[1]: *** [all] Error 1
make: *** [all] Error 1
/usr/libexec/paludis/utils/emake: emake returned error 2

!!! ERROR in dev-lang/wml-2.0.11-r3::gentoo:
!!! In src_compile at line 4375
!!! emake failed

!!! Call stack:
!!!    * src_compile (/var/tmp/paludis/dev-lang-wml-2.0.11-r3/temp/loadsaveenv:4375)
!!!    * ebuild_f_compile (/usr/libexec/paludis/0/src_compile.bash:51)
!!!    * ebuild_main (/usr/libexec/paludis/ebuild.bash:647)
!!!    * main (/usr/libexec/paludis/ebuild.bash:675)

diefunc: making ebuild PID 15704 exit with error
die trap: exiting with error.

Failed install to / for dev-lang/wml-2.0.11-r3:0::gentoo replacing 2.0.11-r3:0::installed

Comment 3 Hans de Graaff gentoo-dev Security 2010-11-17 19:01:05 UTC
I had a quick look and it seems that the problem is that the wml_common parts are no longer getting installed:

===> wml_common/filepathconvert (install)
make[2]: Entering directory `/var/tmp/portage/dev-lang/wml-2.0.11-r6/work/wml-2.0.11/wml_common/filepathconvert'
chmod: missing operand after `755'
Try `chmod --help' for more information.
make[2]: *** [/.exists] Error 1
make[2]: Leaving directory `/var/tmp/portage/dev-lang/wml-2.0.11-r6/work/wml-2.0.11/wml_common/filepathconvert'
<=== wml_common/filepathconvert

The make system doesn't abort on this error so it's not immediately obvious that this is the issue.

Unfortunately I couldn't easily reproduce this or determine a fix for it. To be honest, and given the amount of patching we already do, I think that masking and then removing dev-lang/wml is probably the best thing to do. If people want to contribute patches then I'm happy to keep it around, but I won't invest my time. Bonus points for fixing the reported QA issues with wml :-/
Comment 4 Hans de Graaff gentoo-dev Security 2010-12-06 20:09:56 UTC
# Hans de Graaff <graaff@gentoo.org> (6 Dec 2010)
# No longer builds with perl 5.12. Various open bugs and QA issues.
# Not maintained upstream since 2006.
# Masked for removal on 2011-02-06
dev-lang/wml