[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Rawhide Rpm 4.2.0-65 on Redhat 8.0, 4

On Sun, Feb 02, 2003 at 09:14:23AM -0500, Ted Kaczmarek wrote:
> Has anyone tried rpm 4.2.0-65 on RH 8 yet?

I have.

> If so any opinions?

rpm-4.2 is mostly "cooked" at this point.

There are a couple of areas that are going to be painful.

1) rpm-4.2 uses db-4.1.24

   db-4.1.24 is backwards compatible, but has bumped the versions for
   the on-disk format. Translated into rpm terms, that means that you can
   freely switch between rpm-4.2, rpm-4.1, and rpm-4.0.4 until you do
   a --rebuilddb with rpm-4.2. Pushing db-4.1.24 back to rpm-4.1 and
   rpm-4.0.4 is already in CVS.

2) db-4.1.24 is compiled with --enable-posixmutexes using nptl.

   The latest glibc/kernel supply NPTL, New PThreads for Linux iirc.
   The implementation, at least on i686, is stable and reliable imho.

   rpm-4.2 uses a small part of NPTL to share locks implemented using
   futex(2). Translated to rpm terms, that means that stale lock hangs
   are gone no matter how rpm exits.

   What's going to be painful is that rpm locking now depends on
   which kernel is booted and which glibc is installed. In order
   to support this ac/dc behavior, rpm checks for the necessary
   functionality, and sets DB_PRIVATE (i.e. only a single process
   will access the database) if NPTL is not available.

3) rpmbuild in 4.2 generates depdendencies internally, not using
   the previous find-requires/find-provides mechanism.

   Expect a few differences for Elf libraries that
	a) don't have the executable bit set.
	b) have symlinks to a a library without a proper DT_SONAME.

   The plumbing for perl dependencies is a little different, so there
   are some differences in what is generated even though the code
   that generates dependencies hasn't changed at all.

   OTOH, packages built with rpm-4.2 now have a file class (think:
   file(1) output) available through --fileclass, a file color
   (1=Elf32, 2=Elf64, 0=other) display with --filecolor, and the
   dependencies of each file can be displayed using --fileprovide
   or --filerequire. There are no legacy issues with the implementation.

So, if you want to try rpm-4.2 from Raw Hide, I'd suggest

0) Save a copy of your database
  	cd /var/lib
	tar czvf rpmdb.tar.gz rpm/Packages

1) Upgrade to (at least) glibc-2.3.1-38 and kernel-2.4.20-2.26 so that
   NPTL is functional.

2) Upgrade to rpm-4.2-0.65 or later.


73 de Jeff

Jeff Johnson	ARS N3NPQ
jbj@redhat.com (jbj@jbj.org)
Chapel Hill, NC

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []