Bug 1028147

Summary: firefox package cannot be upgraded or reinstalled
Product: Red Hat Enterprise Linux 7 Reporter: Stephen Tweedie <sct>
Component: firefoxAssignee: Martin Stransky <stransky>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.0   
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: firefox-24.1.0-3.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-12 10:11:54 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:

Description Stephen Tweedie 2013-11-07 18:48:15 UTC
Description of problem:
firefox-24 can be installed only once; any update or reinstall after that will fail with a rpm cpio unpacking error.

Version-Release number of selected component (if applicable):
firefox-24.1.0-2.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
With firefox not installed:
1. yum install firefox
2. yum reinstall firefox

Actual results:
Yum command output:
--------------------------------
Running transaction
  Installing : firefox-24.1.0-2.el7.x86_64                                                    1/1 
Error unpacking rpm package firefox-24.1.0-2.el7.x86_64
error: unpacking of archive failed on file /usr/lib64/firefox/browser/defaults/preferences: cpio: rename
  Verifying  : firefox-24.1.0-2.el7.x86_64                                                    1/1 

Failed:
  firefox.x86_64 0:24.1.0-2.el7
-------------------------------- 

If firefox-24 is updated, the bulk of the files of firefox do get installed but rpmdb is left with the older version, leading to unfixable broken dependencies in rpmdn.

Expected results:
Should install.

Additional info:
The problem is the symlink /usr/lib64/firefox/browser/defaults/preferences
# ls -l /usr/lib64/firefox/browser/defaults/
total 0
lrwxrwxrwx. 1 root root 39 Nov  7 18:42 preferences -> /usr/lib64/firefox/defaults/preferences

After a reinstall, this becomes a directory, which for many years has been a fatal transition for rpm:

# ls -l /usr/lib64/firefox/browser/defaults/
total 4
drwxr-xr-x. 2 root root 4096 Nov  7 18:43 preferences
lrwxrwxrwx. 1 root root   39 Nov  7 18:43 preferences;527bdf56 -> /usr/lib64/firefox/defaults/preferences

If these entries are removed, then firefox will again reinstall perfectly, but only once, at which point the symlink is again a directory and subsequent reinstalls will again fail.

Notably, in f19 firefox, /usr/lib64/firefox/browser/defaults/preferences/ is already a directory, not a symlink, and it does not have this issue.


There is a related, closed f19 bug at bz#976420.

Comment 1 Stephen Tweedie 2013-11-07 20:40:42 UTC
Bug needs fixed before rc; rpm doesn't handle changes between symlink and directory well, so updating to the fix is still going to be problematic to existing users.

Requesting rc blocker.

Comment 2 Martin Stransky 2013-11-08 09:24:11 UTC
Can be reproduced locally with "rpm -ihv package_name --replacepkgs"

Comment 3 Martin Stransky 2013-11-08 10:00:51 UTC
It should be fixed by  firefox-24.1.0-3.el7.

Comment 5 Stephen Tweedie 2013-11-08 11:43:23 UTC
(In reply to Martin Stransky from comment #3)
> It should be fixed by  firefox-24.1.0-3.el7.

Confirmed, works for me.  After a 

# rm -rf /usr/lib64/firefox/browser/defaults/preferences*

I can update to and reinstall the new build without trouble.  Thanks!

Comment 6 Martin Stransky 2013-11-12 10:11:54 UTC
Fixed in firefox-24.1.0-3.el7