On Tue, Jun 12, 2007, Jeff Johnson wrote:

> [...]

Ok, based on Jeff's feedback and clarifications, here is the updated
status table:

---------- ---------- ----------- --- --- -------- -------- ------------- 
--------- --- ----------------------
Library    Mandatory? Local-Copy? SL  JBJ Def.->   Int/Ext  Versioning    
Autoconf? VB  Local-Mod?
---------- ---------- ----------- --- --- -------- -------- ------------- 
--------- --- ----------------------
zlib       yes        yes         +   +   with     internal 1.2.2.4+      yes   
    no  yes: Autoconf, ISO C, splint, padding for rsync,
bzip2      no         yes -> no   +   -   without  external 1.0.1|1.0.4   yes   
    yes no
elfutils   no         yes -> no   +   -   without  external 0.78+|0.9x    yes   
    yes yes: Autoconf, ISO C, splint
beecrypt   yes        yes -> no   +   -   with     external 4.0.0|4.1.2   yes   
    no  yes: Autoconf, ISO C, splint
neon       yes        yes -> no   +   -   with     external 0.26.0|0.26.3 yes   
    no  yes: Autoconf
file       yes        yes -> no   +   +   with     internal 4.20+         yes   
    no  yes: Autoconf, ISO C, splint, small upstream security fixes
keyutils   no         no          -   +   without  external -             yes   
    -   -
popt       yes        yes ;-)     +   +   with     internal 1.10.x ;-)    yes   
    -   -
db         yes -> no  yes         +   +   with     internal 4.5.20        yes   
    yes no:  pthread mutex fixes
sqlite     no         yes -> no   -   -   without  external 3.2.2|3.3.17  yes   
    no  no:  Autoconf
perl       no         no          -   +   without  external -             yes   
    -   -
python     no         no          -   +   without  external -             yes   
    -   -
lua        no         yes         -   +   without  external -             yes   
    -   -
syck       no         no          -   +   without  external -             yes   
    -   -
dmalloc    no         no          -   +   without  external -             yes   
    -   -
pthread    no         no          -   +   without  external               yes   
    -   -
selinux    no         no          -   +   without  external               yes   
    -   -
efence     no         no          -   +   without  external -             yes   
    -   -
expat      no         yes -> no   +   -   -        external 1.95.7|2.0.1  no    
    yes yes: Autoconf, ISO C, splint
librsync   no         yes -> no   +   -   -        external 0.9.7         no    
    yes yes: Autoconf, ISO C, splint
libtasn1   no         yes -> no   -   -   -        external 0.2.10|0.3.9  no    
    yes yes: Autoconf, ISO C, splint
lsbpkgchk  no         yes         +   -   -        -
Perl-RPM   no         yes         +   -   -        -
xmlspec    no         yes         +   -   -        -
xar        no         yes         -   -   -        -
perl       no         yes         -   -   -        -
perl-RPM2  no         yes         -   -   -        -
yaml       no         yes         -   -   -        -
tcl        no         yes         -   -   -        -
---------- ---------- ----------- --- --- -------- -------- ------------- 
--------- --- ----------------------

The prepared "HEAD Source Tree Pruning" procedure now looks like this:

  1. Server-Side: move third-party subdirs to top-level by just removing
     symbolic links:
     $ cd /v/rpm/cvs/rpm
     $ rm -f zlib bzip2 elfutils beecrypt neon file popt db expat \
             librsync lsbpkgchk Perl-RPM perl-RPM2 xmlspec

  2. Server-Side: move third-party subdirs to top-level physically
     $ cd /v/rpm/cvs/rpm
     $ mv sqlite libtasn1 lua xar yaml ../

  3. Server-Side: fix CVS textual database
     (/v/rpm/cvs/CVSROOT/history)

  4. Server-Side: fix CVSTrac RDMS database
     (/v/rpm/sw/var/cvstrac/rpm.db)

  5. Client-Side: move ancient RPM-specific subdirs to Attic
     for subdir in tcl perl; do
         find $subdir -type f -print | grep -v CVS >/tmp/files; \
         cat /tmp/files | xargs rm -f; \
         cat /tmp/files | xargs cvs rm; \
         cvs ci -m "remove ancient pieces ($subdir)" $subdir; \
     done

  5. Client-Side: provide development script for checking out external
     pieces ("zlib", "db", "popt") via "./devtool checkout")
     cvs ci -m "provide development helper script" devtool devtool.conf

I've checked this procedure twice and especially no data will be
actually lost. All data is just rearranged for cleanup reasons.

Notice that this way we achieve especially two cleanups in parallel:
the CVS on the server side finally gets rid of the nasty symbolic links
and HEAD for RPM 5.0 becomes rather clean again with respect to the
third-party libraries (for again bein able to link arbitrary third-party
libs see our suggestion for a RPM_CHECK_LIB Autoconf macro). Only "db",
"popt" and "zlib" remain as third-party libs. "db" and "zlib" because of
local modifications. "popt" for the well known reason. And all three are
checked out to the RPM source tree explicitly from their CVS top-level
module.

More feedback?
                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to