Bug 141418

Summary: RPM installation ordering predictibility (tsort)
Product: Red Hat Enterprise Linux 3 Reporter: Johnray Fuller <jrfuller>
Component: rpmAssignee: Paul Nasrat <nobody+pnasrat>
Status: CLOSED WONTFIX QA Contact: Mike McLean <mikem>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0CC: nobody+pnasrat
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-01-20 19:31:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Johnray Fuller 2004-11-30 23:59:55 UTC
Description of problem:

The client wants to install A -> B -> C but has no control over B.
Unfortunately, A needs to be installed before B for B to install
correctly (B is a vendor-supplied binary-only RPM).

With a "requires: A B" in package C, I got the following installation
order using RPM command in the shell (note the order of A and B in the
command):

# rpm -ivh A-1-1.i386.rpm B-1-1.i386.rpm C-1-2.i386.rpm
Preparing...               
########################################### [100%]
   1:B                     
########################################### [ 33%]
   2:A                     
########################################### [ 67%]
   3:C                     
########################################### [100%]

# rpm -ivh C-1-1.i386.rpm A-1-1.i386.rpm B-1-1.i386.rpm
Preparing...               
########################################### [100%]
   1:B                     
########################################### [ 33%]
   2:A                     
########################################### [ 67%]
   3:C                     
########################################### [100%]


When I altered the order of packages A and B on the command line (B
before A), the installation order changes to what they are expecting:

# rpm -ivh C-1-1.i386.rpm B-1-1.i386.rpm A-1-1.i386.rpm Preparing... 
           ########################################### [100%]
   1:A                     
########################################### [ 33%]
   2:B                     
########################################### [ 67%]
   3:C                     
########################################### [100%]

# rpm -ivh B-1-1.i386.rpm A-1-1.i386.rpm C-1-1.i386.rpm
Preparing...               
########################################### [100%]
   1:A                     
########################################### [ 33%]
   2:B                     
########################################### [ 67%]
   3:C                     
########################################### [100%]


With a "requires: A B" in package C, I got the following installation
order using up2date (which is what they use for deployment):

# up2date C

Fetching Obsoletes list for channel: jrfuller-rhel-i386-as-3...

Fetching rpm headers...
########################################

Name                                    Version        Rel
----------------------------------------------------------
C                                       1              1  i386


Testing package set / solving RPM inter-dependencies...
########################################
C-1-1.i386.rpm:             ########################## Done.
A-1-1.i386.rpm:             ########################## Done.
B-1-1.i386.rpm:             ########################## Done.
Preparing              ########################################### [100%]

Installing...
   1:B                     
########################################### [100%]
   2:A                     
########################################### [100%]
   3:C                     
########################################### [100%]
The following packages were added to your selection to satisfy
dependencies:

Name                                    Version        Release
--------------------------------------------------------------
A                                       1              1
B                                       1              1

ANALYSIS:

Up2date is likely passing the order of RPMs alphabetically. RPM then
unwinds the dependency tree and reverse sorts the RPMs. I have not
tested this hypothesis thoroughly, however. 

----

Question:

Assuming that B is a vendor supplied binary-only RPM that cannot be
changed, is their any way to affect the sort order so A gets installed
before B through the A and/or C spec files (as B is untouchable in the
client's situtation)? sure if it will help here:

I was passed this URL by the client, but am not sure it is
particularly helpful as Prereq == Requires:

http://www-eleves-isia.cma.fr/Doc/rpm-4.2.2/tsort

Thanks in advance for any help here.

J

Comment 1 Jeff Johnson 2004-12-01 00:52:03 UTC
OK, B needs "Requires: A", but cannot be changed.

One way to figger is to add a package D that has
    Requires: A B
and change C to do
    Requires: A D
rather than
    Requires: A B
that might install in ABDC order, and D is harmless.

There is also a (undocumented) --anaconda CLI option
that will "best effort" preserve exactly the order of
the package arguments. By "best effort", I mean that
packages will only be reordered to resolve existing
and necessary dependencies, the original argument order
will be preserved as closely as possible while also
satisfying dependency closure.

It's very hard to say why B is being ordered before A
without real world details (like rpm -Uvv A*.rpm B*.rpm C*.rpm
from whatever A/B/C actually are).

Comment 2 Johnray Fuller 2004-12-01 17:21:14 UTC
DANG! I tried a package D, but had package A depend on it!

I was very close :-)


Here is the -ivv spewage for rpm -i A B C:

# rpm -ivv A-1-1.i386.rpm B-1-1.i386.rpm C-1-1.i386.rpm D:
============== A-1-1.i386.rpm
D: Expected size:         2004 = lead(96)+sigs(180)+pad(4)+data(1724)
D:   Actual size:         2004
D: A-1-1.i386.rpm: MD5 digest: OK (d3a0250f6ce2739f8af0c80daa1c4e04)
D:      added binary package [0]
D: ============== B-1-1.i386.rpm
D: Expected size:         2006 = lead(96)+sigs(180)+pad(4)+data(1726)
D:   Actual size:         2006
D: B-1-1.i386.rpm: MD5 digest: OK (2d4040f7fb2a686fc778709418059afa)
D:      added binary package [1]
D: ============== C-1-1.i386.rpm
D: Expected size:         2017 = lead(96)+sigs(180)+pad(4)+data(1737)
D:   Actual size:         2017
D: C-1-1.i386.rpm: MD5 digest: OK (ad242ce567dc303181fa8e203cb444a3)
D:      added binary package [2]
D: found 0 source and 3 binary packages
D: opening  db environment /var/lib/rpm/Packages joinenv
D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: ========== +++ A-1-1 i386/linux 0x0
D: opening  db index       /var/lib/rpm/Depends create mode=0x0
D: opening  db index       /var/lib/rpm/Basenames rdonly mode=0x0
D: opening  db index       /var/lib/rpm/Pubkeys rdonly mode=0x0
D:  read h#     890 Header sanity check: OK
D: ========== DSA pubkey id 219180cddb42a60e
D:  read h#       4 Header V3 DSA signature: OK, key ID db42a60e
D:  Requires: /bin/sh                                       YES (db files)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES
(rpmlib provides)
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES
(rpmlib provides)
D: opening  db index       /var/lib/rpm/Conflictname rdonly mode=0x0
D: ========== +++ B-1-1 i386/linux 0x0
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES (cached)
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES (cached)
D: ========== +++ C-1-1 i386/linux 0x0
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: A                                             YES (added
provide)
D:  Requires: B                                             YES (added
provide)
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES (cached)
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES (cached)
D: closed   db index       /var/lib/rpm/Pubkeys
D: closed   db index       /var/lib/rpm/Depends
D: closed   db index       /var/lib/rpm/Conflictname
D: closed   db index       /var/lib/rpm/Basenames
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm/Packages
D: ========== recording tsort relations
D:  Requires: A                                             YES (added
provide)
D: ignore package name relation(s) [0]  libtermcap -> bash
D: ignore package name relation(s) [1]  modutils -> vixie-cron
D: ignore package name relation(s) [2]  ypbind -> yp-tools
D: ignore package name relation(s) [3]  ghostscript-fonts -> ghostscript
D: ignore package name relation(s) [4]  libgnomeprint15 -> gnome-print
D: ignore package name relation(s) [5]  nautilus -> nautilus-mozilla
D: ignore package name relation(s) [6]  tcl -> postgresql-tcl
D: ignore package name relation(s) [7]  arts -> kdelibs-sound
D: ignore package name relation(s) [8]  pango-gtkbeta-devel ->
pango-gtkbeta
D: ignore package name relation(s) [9]  XFree86 -> Mesa
D: ignore package name relation(s) [10] compat-glibc -> db2
D: ignore package name relation(s) [11] compat-glibc -> db1
D: ignore package name relation(s) [12] pam -> initscripts
D: ignore package name relation(s) [13] initscripts -> sysklogd
D:  Requires: B                                             YES (added
provide)
D: ========== tsorting packages (order, #predecessors, #succesors,
tree, depth)
D:     0    0    1    1    0 +B-1-1
D:     1    0    1    0    0 +A-1-1
D: ========== successors only (4154 bytes)
D:     2    2    0    0    1   +C-1-1
D: installing binary packages
D: opening  db environment /var/lib/rpm/Packages joinenv
D: opening  db index       /var/lib/rpm/Packages create mode=0x42
D: mounted filesystems:
D:     i    dev bsize       bavail       iavail mount point
D:     0 0x0305  4096       385318       735330 /
D:     1 0x0002  1024            0           -1 /proc
D:     2 0x0007  1024            0           -1 /dev/pts
D:     3 0x0008  1024            0           -1 /proc/bus/usb
D:     4 0x0302  1024       100878        37792 /boot
D:     5 0x0009  4096        63921        63920 /dev/shm
D:     6 0x0307  4096       257861       993524 /work
D:     7 0x0307  4096       257861       993524 /home
D:     8 0x0306  4096      1063329       824991 /work/RHEL-21
D:     9 0x0303  1024       117905        39793 /work/RHEL-21/boot
D:    10 0x0301  4096        36852      1244875 /backup
D:    11 0x0307  4096       257861       993524 /foo
D:    12 0x0307  4096       257861       993524 /foo2
D:    13 0x0307  4096       257861       993524 /var/spool/up2date
D: sanity checking 3 elements
D: opening  db index       /var/lib/rpm/Name create mode=0x42
D: computing 6 file fingerprints
Preparing packages for installation...
D: computing file dispositions
D: opening  db index       /var/lib/rpm/Basenames create mode=0x42
D: ========== +++ B-1-1 i386-linux 0x0
D: Expected size:         2006 = lead(96)+sigs(180)+pad(4)+data(1726)
D:   Actual size:         2006
D:   install: B-1-1 has 2 files, test = 0
B-1-1
D: ========== Directories not explicitly included in package:
D:          0 /tmp/
D: ==========
D: fini      040755  2 (   0,   0)         0 /tmp/B
D: fini      100755  1 (   0,   0)         0 /tmp/B/B.txt;41adfd0b
GZDIO:       1 reads,      368 total bytes in 0.000087 secs
D:   +++ h#    1609 Header SHA1 digest: OK
(c50f6ae0972751d729e8e1d8e037330ecfbf5590)
D: adding "B" to Name index.
D: adding 2 entries to Basenames index.
D: opening  db index       /var/lib/rpm/Group create mode=0x42
D: adding "System Environment" to Group index.
D: opening  db index       /var/lib/rpm/Requirename create mode=0x42
D: adding 5 entries to Requirename index.
D: opening  db index       /var/lib/rpm/Providename create mode=0x42
D: adding "B" to Providename index.
D: opening  db index       /var/lib/rpm/Dirnames create mode=0x42
D: adding 2 entries to Dirnames index.
D: opening  db index       /var/lib/rpm/Requireversion create mode=0x42
D: adding 5 entries to Requireversion index.
D: opening  db index       /var/lib/rpm/Provideversion create mode=0x42
D: adding "1-1" to Provideversion index.
D: opening  db index       /var/lib/rpm/Installtid create mode=0x42
D: adding 1 entries to Installtid index.
D: opening  db index       /var/lib/rpm/Sigmd5 create mode=0x42
D: adding 1 entries to Sigmd5 index.
D: opening  db index       /var/lib/rpm/Sha1header create mode=0x42
D: adding "c50f6ae0972751d729e8e1d8e037330ecfbf5590" to Sha1header index.
D: opening  db index       /var/lib/rpm/Filemd5s create mode=0x42
D: adding 2 entries to Filemd5s index.
D:   install: %post(B-1-1) synchronous scriptlet start
D:   install: %post(B-1-1)      execv(/bin/sh) pid 6595
D:   install: waitpid(6595) rc 6595 status 0 secs 0.052
D: opening  db index       /var/lib/rpm/Triggername create mode=0x42
D: ========== +++ A-1-1 i386-linux 0x0
D: Expected size:         2004 = lead(96)+sigs(180)+pad(4)+data(1724)
D:   Actual size:         2004
D:   install: A-1-1 has 2 files, test = 0
A-1-1
D: ========== Directories not explicitly included in package:
D:          0 /tmp/
D: ==========
D: fini      040755  2 (   0,   0)         0 /tmp/A
D: fini      100755  1 (   0,   0)         0 /tmp/A/A.txt;41adfd0b
GZDIO:       1 reads,      368 total bytes in 0.000024 secs
D:   +++ h#    1610 Header SHA1 digest: OK
(aceaa0fa0c406c97efcf5d2c62754de6d8411642)
D: adding "A" to Name index.
D: adding 2 entries to Basenames index.
D: adding "System Environment" to Group index.
D: adding 5 entries to Requirename index.
D: adding "A" to Providename index.
D: adding 2 entries to Dirnames index.
D: adding 5 entries to Requireversion index.
D: adding "1-1" to Provideversion index.
D: adding 1 entries to Installtid index.
D: adding 1 entries to Sigmd5 index.
D: adding "aceaa0fa0c406c97efcf5d2c62754de6d8411642" to Sha1header index.
D: adding 2 entries to Filemd5s index.
D:   install: %post(A-1-1) synchronous scriptlet start
D:   install: %post(A-1-1)      execv(/bin/sh) pid 6596
D:   install: waitpid(6596) rc 6596 status 0 secs 0.001
D: ========== +++ C-1-1 i386-linux 0x0
D: Expected size:         2017 = lead(96)+sigs(180)+pad(4)+data(1737)
D:   Actual size:         2017
D:   install: C-1-1 has 2 files, test = 0
C-1-1
D: ========== Directories not explicitly included in package:
D:          0 /tmp/
D: ==========
D: fini      040755  2 (   0,   0)         0 /tmp/C
D: fini      100755  1 (   0,   0)         0 /tmp/C/C.txt;41adfd0b
GZDIO:       1 reads,      368 total bytes in 0.000021 secs
D:   +++ h#    1611 Header SHA1 digest: OK
(edb6dd4040a92eaab7cb10f97406702102011875)
D: adding "C" to Name index.
D: adding 2 entries to Basenames index.
D: adding "System Environment" to Group index.
D: adding 7 entries to Requirename index.
D: adding "C" to Providename index.
D: adding 2 entries to Dirnames index.
D: adding 7 entries to Requireversion index.
D: adding "1-1" to Provideversion index.
D: adding 1 entries to Installtid index.
D: adding 1 entries to Sigmd5 index.
D: adding "edb6dd4040a92eaab7cb10f97406702102011875" to Sha1header index.
D: adding 2 entries to Filemd5s index.
D:   install: %post(C-1-1) asynchronous scriptlet start
D:   install: %post(C-1-1)      execv(/bin/sh) pid 6597
D:   install: waitpid(6597) rc 6597 status 0 secs 0.039
D: closed   db index       /var/lib/rpm/Filemd5s
D: closed   db index       /var/lib/rpm/Sha1header
D: closed   db index       /var/lib/rpm/Sigmd5
D: closed   db index       /var/lib/rpm/Installtid
D: closed   db index       /var/lib/rpm/Provideversion
D: closed   db index       /var/lib/rpm/Requireversion
D: closed   db index       /var/lib/rpm/Dirnames
D: closed   db index       /var/lib/rpm/Triggername
D: closed   db index       /var/lib/rpm/Providename
D: closed   db index       /var/lib/rpm/Requirename
D: closed   db index       /var/lib/rpm/Group
D: closed   db index       /var/lib/rpm/Basenames
D: closed   db index       /var/lib/rpm/Name
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm/Packages


Comment 3 Johnray Fuller 2004-12-01 17:25:19 UTC
# rpm -ivv B-1-1.i386.rpm A-1-1.i386.rpm C-1-1.i386.rpm
D: ============== B-1-1.i386.rpm
D: Expected size:         2006 = lead(96)+sigs(180)+pad(4)+data(1726)
D:   Actual size:         2006
D: B-1-1.i386.rpm: MD5 digest: OK (2d4040f7fb2a686fc778709418059afa)
D:      added binary package [0]
D: ============== A-1-1.i386.rpm
D: Expected size:         2004 = lead(96)+sigs(180)+pad(4)+data(1724)
D:   Actual size:         2004
D: A-1-1.i386.rpm: MD5 digest: OK (d3a0250f6ce2739f8af0c80daa1c4e04)
D:      added binary package [1]
D: ============== C-1-1.i386.rpm
D: Expected size:         2017 = lead(96)+sigs(180)+pad(4)+data(1737)
D:   Actual size:         2017
D: C-1-1.i386.rpm: MD5 digest: OK (ad242ce567dc303181fa8e203cb444a3)
D:      added binary package [2]
D: found 0 source and 3 binary packages
D: opening  db environment /var/lib/rpm/Packages joinenv
D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: ========== +++ B-1-1 i386/linux 0x0
D: opening  db index       /var/lib/rpm/Depends create mode=0x0
D: opening  db index       /var/lib/rpm/Basenames rdonly mode=0x0
D: opening  db index       /var/lib/rpm/Pubkeys rdonly mode=0x0
D:  read h#     890 Header sanity check: OK
D: ========== DSA pubkey id 219180cddb42a60e
D:  read h#       4 Header V3 DSA signature: OK, key ID db42a60e
D:  Requires: /bin/sh                                       YES (db files)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES
(rpmlib provides)
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES
(rpmlib provides)
D: opening  db index       /var/lib/rpm/Conflictname rdonly mode=0x0
D: ========== +++ A-1-1 i386/linux 0x0
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES (cached)
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES (cached)
D: ========== +++ C-1-1 i386/linux 0x0
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: /bin/sh                                       YES (cached)
D:  Requires: A                                             YES (added
provide)
D:  Requires: B                                             YES (added
provide)
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES (cached)
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES (cached)
D: closed   db index       /var/lib/rpm/Pubkeys
D: closed   db index       /var/lib/rpm/Depends
D: closed   db index       /var/lib/rpm/Conflictname
D: closed   db index       /var/lib/rpm/Basenames
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm/Packages
D: ========== recording tsort relations
D:  Requires: A                                             YES (added
provide)
D: ignore package name relation(s) [0]  libtermcap -> bash
D: ignore package name relation(s) [1]  modutils -> vixie-cron
D: ignore package name relation(s) [2]  ypbind -> yp-tools
D: ignore package name relation(s) [3]  ghostscript-fonts -> ghostscript
D: ignore package name relation(s) [4]  libgnomeprint15 -> gnome-print
D: ignore package name relation(s) [5]  nautilus -> nautilus-mozilla
D: ignore package name relation(s) [6]  tcl -> postgresql-tcl
D: ignore package name relation(s) [7]  arts -> kdelibs-sound
D: ignore package name relation(s) [8]  pango-gtkbeta-devel ->
pango-gtkbeta
D: ignore package name relation(s) [9]  XFree86 -> Mesa
D: ignore package name relation(s) [10] compat-glibc -> db2
D: ignore package name relation(s) [11] compat-glibc -> db1
D: ignore package name relation(s) [12] pam -> initscripts
D: ignore package name relation(s) [13] initscripts -> sysklogd
D:  Requires: B                                             YES (added
provide)
D: ========== tsorting packages (order, #predecessors, #succesors,
tree, depth)
D:     0    0    1    1    0 +A-1-1
D:     1    0    1    0    0 +B-1-1
D: ========== successors only (4154 bytes)
D:     2    2    0    0    1   +C-1-1
D: installing binary packages
D: opening  db environment /var/lib/rpm/Packages joinenv
D: opening  db index       /var/lib/rpm/Packages create mode=0x42
D: mounted filesystems:
D:     i    dev bsize       bavail       iavail mount point
D:     0 0x0305  4096       385315       735330 /
D:     1 0x0002  1024            0           -1 /proc
D:     2 0x0007  1024            0           -1 /dev/pts
D:     3 0x0008  1024            0           -1 /proc/bus/usb
D:     4 0x0302  1024       100878        37792 /boot
D:     5 0x0009  4096        63921        63920 /dev/shm
D:     6 0x0307  4096       257859       993524 /work
D:     7 0x0307  4096       257859       993524 /home
D:     8 0x0306  4096      1063329       824991 /work/RHEL-21
D:     9 0x0303  1024       117905        39793 /work/RHEL-21/boot
D:    10 0x0301  4096        36852      1244875 /backup
D:    11 0x0307  4096       257859       993524 /foo
D:    12 0x0307  4096       257859       993524 /foo2
D:    13 0x0307  4096       257859       993524 /var/spool/up2date
D: sanity checking 3 elements
D: opening  db index       /var/lib/rpm/Name create mode=0x42
D: computing 6 file fingerprints
Preparing packages for installation...
D: computing file dispositions
D: opening  db index       /var/lib/rpm/Basenames create mode=0x42
D: ========== +++ A-1-1 i386-linux 0x0
D: Expected size:         2004 = lead(96)+sigs(180)+pad(4)+data(1724)
D:   Actual size:         2004
D:   install: A-1-1 has 2 files, test = 0
A-1-1
D: ========== Directories not explicitly included in package:
D:          0 /tmp/
D: ==========
D: fini      040755  2 (   0,   0)         0 /tmp/A
D: fini      100755  1 (   0,   0)         0 /tmp/A/A.txt;41adfe58
GZDIO:       1 reads,      368 total bytes in 0.000081 secs
D:   +++ h#    1612 Header SHA1 digest: OK
(aceaa0fa0c406c97efcf5d2c62754de6d8411642)
D: adding "A" to Name index.
D: adding 2 entries to Basenames index.
D: opening  db index       /var/lib/rpm/Group create mode=0x42
D: adding "System Environment" to Group index.
D: opening  db index       /var/lib/rpm/Requirename create mode=0x42
D: adding 5 entries to Requirename index.
D: opening  db index       /var/lib/rpm/Providename create mode=0x42
D: adding "A" to Providename index.
D: opening  db index       /var/lib/rpm/Dirnames create mode=0x42
D: adding 2 entries to Dirnames index.
D: opening  db index       /var/lib/rpm/Requireversion create mode=0x42
D: adding 5 entries to Requireversion index.
D: opening  db index       /var/lib/rpm/Provideversion create mode=0x42
D: adding "1-1" to Provideversion index.
D: opening  db index       /var/lib/rpm/Installtid create mode=0x42
D: adding 1 entries to Installtid index.
D: opening  db index       /var/lib/rpm/Sigmd5 create mode=0x42
D: adding 1 entries to Sigmd5 index.
D: opening  db index       /var/lib/rpm/Sha1header create mode=0x42
D: adding "aceaa0fa0c406c97efcf5d2c62754de6d8411642" to Sha1header index.
D: opening  db index       /var/lib/rpm/Filemd5s create mode=0x42
D: adding 2 entries to Filemd5s index.
D:   install: %post(A-1-1) synchronous scriptlet start
D:   install: %post(A-1-1)      execv(/bin/sh) pid 6617
D:   install: waitpid(6617) rc 6617 status 0 secs 0.001
D: opening  db index       /var/lib/rpm/Triggername create mode=0x42
D: ========== +++ B-1-1 i386-linux 0x0
D: Expected size:         2006 = lead(96)+sigs(180)+pad(4)+data(1726)
D:   Actual size:         2006
D:   install: B-1-1 has 2 files, test = 0
B-1-1
D: ========== Directories not explicitly included in package:
D:          0 /tmp/
D: ==========
D: fini      040755  2 (   0,   0)         0 /tmp/B
D: fini      100755  1 (   0,   0)         0 /tmp/B/B.txt;41adfe58
GZDIO:       1 reads,      368 total bytes in 0.000022 secs
D:   +++ h#    1613 Header SHA1 digest: OK
(c50f6ae0972751d729e8e1d8e037330ecfbf5590)
D: adding "B" to Name index.
D: adding 2 entries to Basenames index.
D: adding "System Environment" to Group index.
D: adding 5 entries to Requirename index.
D: adding "B" to Providename index.
D: adding 2 entries to Dirnames index.
D: adding 5 entries to Requireversion index.
D: adding "1-1" to Provideversion index.
D: adding 1 entries to Installtid index.
D: adding 1 entries to Sigmd5 index.
D: adding "c50f6ae0972751d729e8e1d8e037330ecfbf5590" to Sha1header index.
D: adding 2 entries to Filemd5s index.
D:   install: %post(B-1-1) synchronous scriptlet start
D:   install: %post(B-1-1)      execv(/bin/sh) pid 6618
D:   install: waitpid(6618) rc 6618 status 0 secs 0.001
D: ========== +++ C-1-1 i386-linux 0x0
D: Expected size:         2017 = lead(96)+sigs(180)+pad(4)+data(1737)
D:   Actual size:         2017
D:   install: C-1-1 has 2 files, test = 0
C-1-1
D: ========== Directories not explicitly included in package:
D:          0 /tmp/
D: ==========
D: fini      040755  2 (   0,   0)         0 /tmp/C
D: fini      100755  1 (   0,   0)         0 /tmp/C/C.txt;41adfe58
GZDIO:       1 reads,      368 total bytes in 0.000021 secs
D:   +++ h#    1614 Header SHA1 digest: OK
(edb6dd4040a92eaab7cb10f97406702102011875)
D: adding "C" to Name index.
D: adding 2 entries to Basenames index.
D: adding "System Environment" to Group index.
D: adding 7 entries to Requirename index.
D: adding "C" to Providename index.
D: adding 2 entries to Dirnames index.
D: adding 7 entries to Requireversion index.
D: adding "1-1" to Provideversion index.
D: adding 1 entries to Installtid index.
D: adding 1 entries to Sigmd5 index.
D: adding "edb6dd4040a92eaab7cb10f97406702102011875" to Sha1header index.
D: adding 2 entries to Filemd5s index.
D:   install: %post(C-1-1) asynchronous scriptlet start
D:   install: %post(C-1-1)      execv(/bin/sh) pid 6619
D:   install: waitpid(6619) rc 6619 status 0 secs 0.001
D: closed   db index       /var/lib/rpm/Filemd5s
D: closed   db index       /var/lib/rpm/Sha1header
D: closed   db index       /var/lib/rpm/Sigmd5
D: closed   db index       /var/lib/rpm/Installtid
D: closed   db index       /var/lib/rpm/Provideversion
D: closed   db index       /var/lib/rpm/Requireversion
D: closed   db index       /var/lib/rpm/Dirnames
D: closed   db index       /var/lib/rpm/Triggername
D: closed   db index       /var/lib/rpm/Providename
D: closed   db index       /var/lib/rpm/Requirename
D: closed   db index       /var/lib/rpm/Group
D: closed   db index       /var/lib/rpm/Basenames
D: closed   db index       /var/lib/rpm/Name
D: closed   db index       /var/lib/rpm/Packages
D: closed   db environment /var/lib/rpm/Packages


Comment 5 Jeff Johnson 2006-01-20 19:31:49 UTC
Partial ordering is intrinsically unpredictable.