Bug 64017 - RPM 4.0.4-7 update breaks pkgorder and requires constant cd swapping
Summary: RPM 4.0.4-7 update breaks pkgorder and requires constant cd swapping
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: anaconda (Show other bugs)
(Show other bugs)
Version: 7.2
Hardware: i386 Linux
Target Milestone: ---
Assignee: Jeremy Katz
QA Contact: Brock Organ
Depends On:
TreeView+ depends on / blocked
Reported: 2002-04-23 20:29 UTC by Need Real Name
Modified: 2007-04-18 16:42 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2002-04-30 18:55:50 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

Description Need Real Name 2002-04-23 20:29:05 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9) Gecko/20020412

Description of problem:
I can build CDs with updates up to 20020310, but adding the updates from
20020315 causes lots of cd swapping during install.

Including the rpm update for 4.0.4-7 (20020315) causes pkgorder to generate an
invalid order file (I think).  This causes anaconda to install about half of the
packages and then get to mutt, ask for the 2nd cd, install mutt, ask for the 1st
cd again, install raidtools and anacron packages, go back to the 2nd cd for
minicom, etc.  This swapping continues throughout the install.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Add update packages through 20020315 or later
2. Rebuild CDs
3. Try install with freshly build ISOs

Actual Results:  Asked for 2nd cd to install mutt, and promptly asked for the
1st cd again.

Expected Results:  It should install all the packages it needs on CD1, ask for
CD2 to finish out the install process.

Additional info:

The build environment is RH72+updates+extra packages.
Have also tried RH72

Comment 1 Jeremy Katz 2002-04-23 22:21:11 UTC
You'll also need to rebuild anaconda to use rpm 4.0.4 or continue to use 4.0.3
on the machine that you run pkgorder on.  rpm changed to using chainsaw ordering
instead of presentation, so you don't get the same order unless you use the same
librpm both places.

Comment 2 Need Real Name 2002-04-24 18:15:55 UTC
I was able to sucessfully build working iso's by downgradeing my build
envrionment  to rpm 4.0.3 and removing the rpm 4.0.4 upgrade from the build tree.

I am still having problems with 4.0.4 though.  Here is what I did:
1. Upgrade build environment to rpm 4.0.4
2. Rebuild anaconda from srpm and --rebuild (so they should link aginst 4.0.4)
3. Install the newly created anaconda and anaconda-runtime packages.
4. Put new anaconda* pkgs in build tree.
5. Put rpm 4.0.4 update back in build tree.
6. Rebuild CDs

I still get the swapping problem at the same place.

Did I not compleate step 2 correctly?
Do I have to modify anaconda?  
  If so, can you please point me in the right direction?


Comment 3 Need Real Name 2002-04-29 19:29:28 UTC
I tried your suggestions above in two build environments.  They are exactly the
same other than one has rpm 4.0.3 installed and the other has rpm 4.0.4
installed.  I did it in both environments simultaneously to ensure I would not
make a mistake that would cause 4.0.4 to break.

Here is the process I used:
. Create 2 identical build environments (be403 and be404)
. Downgrade one to rpm 4.0.3  (be403)
  . This inclues swapping out the following:
    popt-1.6.4-7x.i386.rpm for popt-1.6.3-1.03.i386.rpm
    rpm-4.0.4-7x.i386.rpm for rpm-4.0.3-1.03.i386.rpm
    rpm-build-4.0.4-7x.i386.rpm for rpm-build-4.0.3-1.03.i386.rpm
    rpm-devel-4.0.4-7x.i386.rpm for rpm-devel-4.0.3-1.03.i386.rpm
    rpm-perl-4.0.4-7x.i386.rpm for rpm-perl-4.0.3-1.03.i386.rpm
    rpm-python-4.0.4-7x.i386.rpm for rpm-python-4.0.3-1.03.i386.rpm
    kdeadmin, gnorpm, rpmfind, and rpm2html were not installed
. Put rpm 4.0.3 in the build tree for be403
. Uninstall anaconda and anaconda-runtime from each environment
. Rebuild anaconda in each environment
. Install the newly built anaconda packages in their respective environments
. Put the new anaconda packages in their respective build trees
. build both distros and creat ISOs

The ISOs built in the 4.0.3 environment worked just fine, where the ISOs built
in the 4.0.4 environment have the cd swapping bug.

I also tooked at a diff between anaconda-7.2-7 and anaconda-7.2.93 to see if if
I could find anything that may need to be upgraded in anaconda itself, but I
didn't see anything that looked like it would fix this problem.

Thanks for your help,

Comment 4 Jeremy Katz 2002-04-29 20:12:18 UTC
By rebuilding anaconda, I don't mean the package.  I mean you need to rebuild
the stage2 images used by anaconda during the install via buildinstall. 
Otherwise, the new librpm isn't being used by the rpmmodule during the install.

Comment 5 Need Real Name 2002-04-29 20:50:00 UTC
I am rebuilding the images with buildinstall.  This is done in the last step of
my previous post.

Here is an overview version of my build script.  For this overview assume
$PYTHONPATH is set to "/usr/lib/anaconda" and the build tree is in /cd/i386

genhdlist /cd/i386

pkgorder /cd/i386 i386 > pkgorderfile

buildinstall --comp /cd/i386/RedHat/base/comps /cd/i386
  # In the past I have also tried using the --pkgorder flag here, 
  # but it did not fix the problem then.  I did not use it on this last test.

splitdistro --fileorder pkgorderfile /cd i386

genhdlist --withnumbers /cd/i386-disc1 /cd/i386-disc2

Several other people on the anaconda-devel list seem to have seen this same bug.  

Could this problem be caused by a comps file that does not have everything in it?

Thanks for the quick response.

Comment 6 Jeremy Katz 2002-04-30 19:18:25 UTC
There are a variety of issues here and none of them are really anything that can
be "fixed".

There's the issue of a new ordering method being used by RPM which causes
changes to the dependency tree.  There's the issue of new dependency loops
causing the dependency tree to be out of whack.

This is a large part of why we can't support this rebuilding install trees with
all errata that people seem to like to do so much.  There are just too many
variables of things that have to be carefully worked around.  If you put rpm
4.0.3 in, everything will be happier, but the dependency loops in some of the
released errata may still come out to cause problems.

Comment 7 Need Real Name 2002-04-30 21:07:15 UTC
I just found what was causing the CD shuffel.  On the last genhdlist, the one
that generates the lists on the CDs, I had not had a --fileorder <pkgorderfile>
argument.  It is intresting that that flag was not necessary under rpm 4.0.3,
but the build breaks under rpm 4.0.4.

This was pointed out to me by Johns Summerfield (see anaconda-devel list).

Thanks for your help.

Note You need to log in before you can comment on or make changes to this bug.