The *perl-homedir* profile scripts now support *csh*
Previously, the *perl-homedir* profile scripts were unable to handle the *C shell* (csh) syntax. Consequently, when the the _perl-homedir_ package was installed and the `/etc/sysconfig/perl-homedir` file contained the `PERL_HOMEDIR=0` line, executing the profile scripts resulted in the following error:
PERL_HOMEDIR=0: Command not found.
This update adds support for the *csh* syntax, and the described problem no longer occurs.
Created attachment 920563[details]
Potential patch for /etc/profile.d/perl-homedir.csh
Description of problem:
If the file /etc/sysconfig/perl-homedir contains the line PERL_HOMEDIR=0, users with CSH as login shell will an error during login: "PERL_HOMEDIR=0: Command not found." and the directory gets created anyways.
Version-Release number of selected component (if applicable):
perl-homedir-1.008010-3.el7.noarch
How reproducible:
always
Steps to Reproduce:
1. Put the line PERL_HOMEDIR=0 into /etc/sysconfig/perl-homedir
2. useradd -s /bin/csh test
3. su - test
Actual results:
PERL_HOMEDIR=0: Command not found.
Attempting to create directory /home/emroot/perl5
[test@host]$
Expected results:
No error message and the directory ~/perl5 will not get created.
Additional info:
The file /etc/sysconfig/perl-homedir is in BASH syntax and works perfectly for users with BASH as login shell. The CSH script /etc/profile.d/perl-homedir.csh simply sources the file and thus runs into an error due to syntax mismatch. An eval line is needed instead of a simple source (patch for working solution attached).
How to test:
(1) Install perl-homedir and tcsh packages.
(2) Create /etc/sysconfig/perl-homedir with "PERL_HOMEDIR=0" content and run a tcsh as log-in shell:
Before:
"PERL_HOMEDIR=0: Command not found." error message is printed and the
PERL_HOMEDIR variable is set to 1 in the shell.
After:
No error message is printed and the PERL_HOMEDIR variable is set to 0.
(3) Remove the /etc/sysconfig/perl-homedir, create ~/.perl-homedir with "PERL_HOMEDIR=0" content and run a tcsh as log-in shell. The results should be the same as in (2).
Thomas, could you please report this issue to the Red Hat support. Doing so increases chance that this fix will be approved as it will be recognized as a customer-facing problem.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHBA-2017:1921
Created attachment 920563 [details] Potential patch for /etc/profile.d/perl-homedir.csh Description of problem: If the file /etc/sysconfig/perl-homedir contains the line PERL_HOMEDIR=0, users with CSH as login shell will an error during login: "PERL_HOMEDIR=0: Command not found." and the directory gets created anyways. Version-Release number of selected component (if applicable): perl-homedir-1.008010-3.el7.noarch How reproducible: always Steps to Reproduce: 1. Put the line PERL_HOMEDIR=0 into /etc/sysconfig/perl-homedir 2. useradd -s /bin/csh test 3. su - test Actual results: PERL_HOMEDIR=0: Command not found. Attempting to create directory /home/emroot/perl5 [test@host]$ Expected results: No error message and the directory ~/perl5 will not get created. Additional info: The file /etc/sysconfig/perl-homedir is in BASH syntax and works perfectly for users with BASH as login shell. The CSH script /etc/profile.d/perl-homedir.csh simply sources the file and thus runs into an error due to syntax mismatch. An eval line is needed instead of a simple source (patch for working solution attached).