talexb has asked for the wisdom of the Perl Monks concerning the following question:

Trying to build / install modules on a new FC8 system, and I am currently stumped trying to build Class::MethodMaker

[root@box ~]# cpan2rpm --version 2.08 --no-sign Class::MethodMaker -- cpan2rpm - Ver: 2.028 -- Upgrade check Fetch: HTTP -- module: Class::MethodMaker -- Using cached URL: http://search.cpan.org//CPAN/authors/id/F/FL/FLUFFY/ +Class-MethodMaker-2.08.tar.gz Tarball found - not fetching Metadata retrieval Tarball extraction: [/usr/src/redhat/SOURCES/Class-MethodMaker-2.08.ta +r.gz] Generating spec file [...] Checking prerequisites... Looks good Creating new 'Build' script for 'Class-MethodMaker' version '2.08' + /usr/bin/perl Build /usr/bin/perl generate.PL lib/Class/MethodMaker/array.pm lib/Class/Met +hodMaker/hash.pm lib/Class/MethodMaker/scalar.pm ./cmmg.pl components/array.m > lib/Class/MethodMaker/array.pm sh: ./cmmg.pl: Permission denied ./cmmg.pl components/array.m > lib/Class/MethodMaker/array.pm failed: +32256 Use of uninitialized value in concatenation (.) or string at /usr/lib/ +perl5/site_perl/5.8.8/Module/Build/Base.pm line 2237. Use of uninitialized value in concatenation (.) or string at /usr/lib/ +perl5/site_perl/5.8.8/Module/Build/Base.pm line 2368. Use of uninitialized value in concatenation (.) or string at /usr/lib/ +perl5/site_perl/5.8.8/Module/Build/Base.pm line 2374. Copying MethodMaker.xs -> lib/Class/MethodMaker.xs lib/Class/MethodMaker.xs -> lib/Class/MethodMaker.c /usr/bin/perl -I/usr/lib/perl5/5.8.8/i386-linux-thread-multi -I/usr/li +b/perl5/5.8.8 /usr/lib/perl5/5.8.8/ExtUtils/xsubpp -noprototypes -typ +emap /usr/lib/perl5/5.8.8/ExtUtils/typemap lib/Class/MethodMaker.xs gcc -I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE -DXS_VERSION=" +2.08" -DVERSION="2.08" -fPIC -c -D_REENTRANT -D_GNU_SOURCE -fno-stric +t-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include - +D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g +-pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector -- +param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronou +s-unwind-tables -o lib/Class/MethodMaker.o lib/Class/MethodMaker.c ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/Class/MethodMaker/M +ethodMaker.bs') gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -f +stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=gen +eric -fasynchronous-unwind-tables -L/usr/local/lib -o blib/arch/auto/ +Class/MethodMaker/MethodMaker.so lib/Class/MethodMaker.o Use of uninitialized value in concatenation (.) or string at /usr/lib/ +perl5/site_perl/5.8.8/Module/Build/Base.pm line 2237. Use of uninitialized value in concatenation (.) or string at /usr/lib/ +perl5/site_perl/5.8.8/Module/Build/Base.pm line 2368. Use of uninitialized value in concatenation (.) or string at /usr/lib/ +perl5/site_perl/5.8.8/Module/Build/Base.pm line 2374. Warning: AutoSplit had to create top-level blib/lib/auto unexpectedly. AutoSplit: Can't open lib/Class/MethodMaker/hash.pm: No such file or d +irectory error: Bad exit status from /var/tmp/rpm-tmp.7736 (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.7736 (%build) RPM build failed [1] at /usr/bin/cpan2rpm line 1049. -- Done --

It seems to be running into some kind of rights problem. I'm not sure how to diagnose / solve this problem. The part that fails appears to be ..

./cmmg.pl components/array.m > lib/Class/MethodMaker/array.pm sh: ./cmmg.pl: Permission denied

Thoughts? Am I expected to run this from a specific directory?

Update: I've worked around this .. thanks for reading, and if you have any suggestions, feel free to respond. Thanks!

Alex / talexb / Toronto

"Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

Replies are listed 'Best First'.
Re: cpan2rpm / Class::MethodMaker / build errors
by rreck (Initiate) on Jan 16, 2008 at 16:52 UTC
    Since it appears you are doing this as root, I guess that is not the problem.

    sh: ./cmmg.pl: Permission denied

    looks to me like cmmg.pl needs execute permission. Maybe find it and chmod +x cmmg.pl

      Yes .. except that cmmg.pl was created by the installation process, and should have been created with the proper attributes.

      Alex / talexb / Toronto

      "Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds