Bug 1122993

Summary: perl-homedir.csh causes login error with CSH if PERL_HOMEDIR=0 is set
Product: Red Hat Enterprise Linux 7 Reporter: Thomas Buchner <thomas.buchner>
Component: perl-local-libAssignee: perl-maint-list
Status: CLOSED ERRATA QA Contact: Martin Kyral <mkyral>
Severity: medium Docs Contact: Lenka Špačková <lkuprova>
Priority: medium    
Version: 7.0CC: anrussel, cww, fdanapfe, ichute, isenfeld, jorton, jplesnik, lmiksik, mkyral, ovasik, ppisar, psabata, rbinkhor
Target Milestone: rcKeywords: FastFix, Patch, Triaged
Target Release: 7.1   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: perl-local-lib-1.008010-4.el7 Doc Type: Release Note
Doc Text:
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.
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 18:14:01 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1018952, 1289025, 1298243, 1305230, 1380363    
Attachments:
Description Flags
Potential patch for /etc/profile.d/perl-homedir.csh
none
Fix
none
Fix none

Description Thomas Buchner 2014-07-24 14:32:11 UTC
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).

Comment 2 Petr Pisar 2014-07-25 07:08:49 UTC
Indeed. The configuration files have to be parsed to be useful for csh profile script. Thank you for the report and the patch.

Comment 3 Petr Pisar 2014-07-25 07:25:58 UTC
Created attachment 920863 [details]
Fix

Comment 4 Petr Pisar 2014-07-25 07:34:49 UTC
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).

Comment 5 Petr Pisar 2014-07-25 07:51:35 UTC
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.

Comment 6 Petr Pisar 2014-07-28 08:31:08 UTC
Created attachment 921723 [details]
Fix

This sed(1) resides in /bin/sed, not in /usr/bin/sed. The wrong path would break dependency solver.

Comment 20 errata-xmlrpc 2017-08-01 18:14:01 UTC
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