https://bugzilla.redhat.com/show_bug.cgi?id=1033018

            Bug ID: 1033018
           Summary: syntax error in /etc/profile.d/perl-homedir.csh
                    (perl-local-lib/perl-homedir)
           Product: Fedora
           Version: rawhide
         Component: perl-local-lib
          Severity: low
          Priority: high
          Assignee: iarn...@gmail.com
          Reporter: ppi...@redhat.com
        QA Contact: extras...@fedoraproject.org
                CC: iarn...@gmail.com, jkach...@redhat.com,
                    mmasl...@redhat.com,
                    perl-devel@lists.fedoraproject.org, ppi...@redhat.com,
                    wgome...@redhat.com
   External Bug ID: CPAN 85667



+++ This bug was initially created as a clone of Bug #1032195 +++

Syntax error in /etc/profile.d/perl-homedir.csh

---Steps to Reproduce---
* Install perl-homedir
* Create a user with csh as login shell
* login with that user


The file /etc/profile.d/perl-homedir.csh, contained in perl-homedir,
contains a syntax error.
The command "eval `perl -Mlocal::lib`" fails with "Bad : modifier in $ (/).".
The processing of any login scripts stops at that error, resulting in an
incomplete environment for the user.

Fyi ...
.... looks like this is caused by missing {}:

 ls3814:db2lin 8> perl -Mlocal::lib
setenv PERL_LOCAL_LIB_ROOT "$PERL_LOCAL_LIB_ROOT:/db2/db2lin/perl5";
setenv PERL_MB_OPT "--install_base /db2/db2lin/perl5";
setenv PERL_MM_OPT "INSTALL_BASE=/db2/db2lin/perl5";
setenv PERL5LIB "/db2/db2lin/perl5/lib/perl5:$PERL5LIB";
setenv PATH "/db2/db2lin/perl5/bin:$PATH";

 ls3814:db2lin 9> setenv PERL_LOCAL_LIB_ROOT
"$PERL_LOCAL_LIB_ROOT:/db2/db2lin/perl5";
Bad : modifier in $ (/).

 ls3814:db2lin 10> setenv PERL_LOCAL_LIB_ROOT
"${PERL_LOCAL_LIB_ROOT}:/db2/db2lin/perl5" ; 
# no error

[...]
--- Additional comment from Petr Pisar on 2013-11-20 14:22:15 GMT ---

Thank your for this bug report and a suggestion how to fix. Unfortunately, this
is not enough.

If PERL_LOCAL_LIB_ROOT is not set, then tcsh will bail out with undefined
variable and the variable will not get set:


[test@rhel-7-0 ~]$ echo ${?PERL_LOCAL_LIB_ROOT}
0
[test@rhel-7-0 ~]$ setenv PERL_LOCAL_LIB_ROOT
"${PERL_LOCAL_LIB_ROOT}:/home/test/perl5" ;
PERL_LOCAL_LIB_ROOT: Undefined variable.
[test@rhel-7-0 ~]$ echo $?
1
[test@rhel-7-0 ~]$ echo ${?PERL_LOCAL_LIB_ROOT}                                
0

This is a know issue to the upstream
<https://rt.cpan.org/Public/Bug/Display.html?id=85667> with no ratified
solution yet.

--- Additional comment from Petr Pisar on 2013-11-21 10:50:37 GMT ---

Due to CSH limits on subcommand substitution and parsing if-then-else
statemens, appending to a variable FOO can be achieved this way:

test 1 == ${?FOO} && setenv FOO "a:${FOO}" || setenv FOO "a";

----

All Fedoras are affected.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug 
https://bugzilla.redhat.com/token.cgi?t=jn9WnmhloX&a=cc_unsubscribe
--
Fedora Extras Perl SIG
http://www.fedoraproject.org/wiki/Extras/SIGs/Perl
perl-devel mailing list
perl-devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/perl-devel

Reply via email to