On 05/03/2013 09:54:42 PM, Bruce Dubbs wrote:
> I'm going to write a program to automatically identify out of date
> packages for LFS.  Has anyone already done such a beast?
> 
> As I review the packages, it seems that the only constant is
> inconsistency.  Trying to parse versions is quite package specific.
> Packages may have versions with a single number (systemd, kbd, less),
> two numbers (vim, psmisc, etc), three numbers (most), and even four
> numbers (shadow).  In one case, the version has a letter (tzdata).

For my aboriginal linux project

   http://landley.net/aboriginal/about.html

I have the following horrible regex:

# Given a filename.tar.ext, return the version number.

getversion()
{
   echo "$1" | sed -e  
's/.*-\(\([0-9\.]\)*\([_-]rc\)*\(-pre\)*\([0-9][a-zA-Z]\)*\)*\(\.tar\..z2*\)$/'"$2"'\1/'
}

> Some packages change the version scheme depending on release
> (util-linux-2.22.1 vs util-linux-2.23, gcc, linux kernel, etc. )
> 
> In addition, some directories that contain the packages vary with
> version (e.g. v2.23/util-linux...,  check/0.9.10/...,  gmp-5.1.1/...,
> 1.0.6/bzip...,  mpfr-3.1.2/... ).  Some sites don't allow a directory  
> of
> the parent location so other means of determining the most recent
> version are needed (e.g. bzip2).

I do a variant of:

   mkdir tmpdir
   cd tmpdir
   tar xvjf /path/to/tarball
   mv * ~/newlocation/packagename

It's in the extract_package function of:

    
http://landley.net/hg/aboriginal/file/1599/sources/download_functions.sh#l71

> Writing a script to do all this is not particularly hard, but just  
> long
> and tedious.  There are some common elements in most of the packages
> from ftp.gnu.org.
> 
> Has anyone else looked at this?

I've done it, and debugged it over a period of several years. :)

My automatic "build linux from scratch under the resulting system"  
package is still on 6.8 (I've been busy with other things), and I had  
to adjust four package names in order for the automated machinery to be  
able to extract the tarballs out of the big tarball:

    
http://landley.net/hg/control-images/file/34/images/lfs-bootstrap/download.sh#l32

Basically the limitation is that my regex thinks that the filename ends  
with "-" (not necessarily the _first_ -, but there's gotta be one  
between name and version), and some things (like squashfs tools) don't  
do that. When i'm downloading an individual tarball I can put a rewrite  
rule in the download request, ala:

   http://landley.net/hg/aboriginal/file/1599/download.sh#l109

I've been meaning to fix that up and switch to 7.3, but... day job and  
so much else to do...

Rob
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to