On Sat, 2002-04-13 at 09:06, Brad Fritz wrote:
> 
> On 13 Apr 2002 08:33:44 PDT Mike Noyes wrote:
> 
> > Anyone,
> > Is there a way to get tar to return the date of the most recent file in
> > a tarball?
> > 
> > Example:
> > $ tar tvzf leaf/devel/ddouthitt/packages/cal.lrp
> > -rwxr-xr-x root/root      9648 2001-12-17 06:42:08 usr/bin/cal
> > -rw-r--r-- root/root        32 2001-12-17 06:42:21
> > var/lib/lrpkg/cal.list
> > 
> > Desired output: 2001-12-17
> 
> If you can't get tar to tell you directly,
> 
>   tar tvfz $TARBALL_FILE \
>     | awk '{print $4}' \
>     | sort -n \
>     | tail -n 1
> 
> might work for you.

Brad,
Thanks. This works fairly well. I still get errors from tar, but I don't
see any way to force it to ignore them.

Examples:
$ ./package-date.sh > test.txt
tar: Archive contains future timestamp 2003-03-05 03:02:00
tar: Archive contains future timestamp 2003-03-03 15:12:22
tar: Archive contains future timestamp 2003-03-05 03:02:16
tar: Archive contains future timestamp 2003-03-03 13:47:49
tar: Archive contains future timestamp 2003-03-05 03:00:48
tar: Archive contains future timestamp 2003-03-05 03:00:30
tar: Archive contains future timestamp 2003-03-03 14:03:05
tar: Archive contains future timestamp 2003-03-03 14:03:02
tar: Archive contains future timestamp 2003-03-03 14:03:02
tar: Archive contains future timestamp 2003-03-03 14:03:05
tar: Archive contains future timestamp 2003-03-05 03:00:30
tar: Archive contains future timestamp 2003-03-05 03:00:48
tar: Archive contains future timestamp 2003-03-05 03:02:16
tar: Archive contains future timestamp 2003-03-05 03:02:00
gzip: stdin has more than one entry--rest ignored
tar: Child returned status 2
tar: Error exit delayed from previous errors
tar: Archive contains future timestamp 2021-02-15 20:53:31
tar: Archive contains future timestamp 2021-02-16 03:57:58

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
tar: Archive contains future timestamp 2021-03-01 21:58:48
tar: Archive contains future timestamp 2021-03-01 21:58:48
tar: Child died with signal 11
tar: Error exit delayed from previous errors


The current shell script is:

#! /bin/bash
find leaf/ -iname "*.lrp" |
while read file ; do
  echo `basename "$file"` $'\t' \
  `tar tvzf "$file" | awk '{print $4}' | sort -n | tail -n 1` $'\t' \
  "$file";
done |
sort

This provides a nice tab delimited text file, and gives me a commit
order. 
http://leaf.sourceforge.net/pub/packages/test.txt

Now all I have to do is get the program name and version. Then determine
the libc version with ldd.

Jeff provided this snippet for checking the libc version with ldd.

  md ${package} 
  cd ${package} 
  gunzip ${packagelrppath} 
  ldd `ls bin/* sbin/* usr/bin usr/sbin usr/local/bin usr/local/sbin` \ 
    | grep -v ':$' | sort | uniq 
  cd .. 
  rm -R ${package}

I'll have to take a look at each package to determine program name and
version.

var/lib/lrpkg/package.help
var/lib/lrpkg/package.version

Any suggestions for accomplishing these tasks are appreciated.

Thanks again for the help. :-)


-- 
Mike Noyes <[EMAIL PROTECTED]>
http://sourceforge.net/users/mhnoyes/
http://leaf-project.org/


_______________________________________________
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel

Reply via email to