[Pkg-lustre-svn-commit] updated: [df28a24] Fix version_tag.pl

Patrick Winnertz winnie at debian.org
Wed Aug 12 13:22:30 UTC 2009


The following commit has been merged in the master branch:
commit df28a242f4b994cca6ae3752a37ccc8e808bf561
Author: Patrick Winnertz <winnie at debian.org>
Date:   Wed Aug 12 14:03:04 2009 +0200

    Fix version_tag.pl
    
    Signed-off-by: Patrick Winnertz <winnie at debian.org>

diff --git a/debian/patches/00list b/debian/patches/00list
index efc8500..8dbd7a0 100644
--- a/debian/patches/00list
+++ b/debian/patches/00list
@@ -25,3 +25,4 @@ use_bash_instead_of_sh.dpatch
 lustre-snmp-missing-include.dpatch
 libcfs_wrong_includepath.dpatch
 lnet-missing-prototypes.dpatch
+version_tag-pl-path.dpatch
diff --git a/debian/patches/version_tag-pl-path.dpatch b/debian/patches/version_tag-pl-path.dpatch
new file mode 100755
index 0000000..fffc2a8
--- /dev/null
+++ b/debian/patches/version_tag-pl-path.dpatch
@@ -0,0 +1,219 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## autogen.dpatch by Patrick Winnertz <winnie at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: change path to version_tag.pl
+
+ at DPATCH@
+diff -urNad lustre~/lustre/autoconf/lustre-core.m4 lustre/lustre/autoconf/lustre-core.m4
+--- lustre~/lustre/autoconf/lustre-core.m4	2009-08-12 14:10:26.000000000 +0200
++++ lustre/lustre/autoconf/lustre-core.m4	2009-08-12 14:10:27.000000000 +0200
+@@ -2452,6 +2452,7 @@
+ lustre/tests/Makefile
+ lustre/tests/mpi/Makefile
+ lustre/utils/Makefile
++lustre/scripts/version_tag.pl
+ ])
+ case $lb_target_os in
+         darwin)
+diff -urNad lustre~/lustre/scripts/version_tag.pl.in lustre/lustre/scripts/version_tag.pl.in
+--- lustre~/lustre/scripts/version_tag.pl.in	1970-01-01 01:00:00.000000000 +0100
++++ lustre/lustre/scripts/version_tag.pl.in	2009-08-12 14:10:57.000000000 +0200
+@@ -0,0 +1,197 @@
++#!/usr/bin/perl
++# -*- Mode: perl; indent-tabs-mode: nil; cperl-indent-level: 4 -*-
++
++use strict;
++use diagnostics;
++use IO::File;
++use Time::Local;
++
++my $pristine = 1;
++my $kernver;
++
++# Use the CVS tag first otherwise use the portals version
++sub get_tag()
++{
++    my $tag;
++    my $line;
++
++    my $tagfile = new IO::File;
++    if (!$tagfile->open("lustre/CVS/Tag")) {
++        my $verfile = new IO::File;
++        if (!$verfile->open("config.h")) {
++          return "UNKNOWN";
++        }
++        while(defined($line = <$verfile>)) {
++            $line =~ /\#define VERSION "(.*)"/;
++            if ($1) {
++                $tag = $1;
++                last;
++            }
++        }
++        $verfile->close();
++        return $tag
++    } else {
++        my $tmp = <$tagfile>;
++        $tagfile->close();
++
++        $tmp =~ m/T(.*)/;
++        return $1;
++    }
++}
++
++sub get_latest_mtime()
++{
++    my %months=("Jan" => 0, "Feb" => 1, "Mar" => 2, "Apr" => 3, "May" => 4,
++                "Jun" => 5, "Jul" => 6, "Aug" => 7, "Sep" => 8, "Oct" => 9,
++                "Nov" => 10, "Dec" => 11);
++
++    my $last_mtime = 0;
++    my @entries = `find . -name Entries`;
++    my $entry_file;
++    foreach $entry_file (@entries) {
++        chomp($entry_file);
++        my $entry = new IO::File;
++        if (!$entry->open($entry_file)) {
++            die "unable to open $entry_file: $!\n";
++        }
++        my $line;
++        while (defined($line = <$entry>)) {
++            chomp($line);
++            #print "line: $line\n";
++            my ($junk, $file, $version, $date) = split(/\//, $line);
++
++            #print "junk: $junk\nfile: $file\nver: $version\ndate: $date\n";
++            #print "last_mtime: " . localtime($last_mtime) . "\n";
++
++            if ($junk eq "D" ||
++                $file eq "lustre.spec.in" ||
++                $file !~ m/\.(c|h|am|in)$/) {
++                next;
++            }
++
++            my $cur_dir = $entry_file;
++            $cur_dir =~ s/\/CVS\/Entries$//;
++            my @statbuf = stat("$cur_dir/$file");
++            my $mtime = $statbuf[9];
++            if (!defined($mtime)) {
++                next;
++            }
++            my $local_date = gmtime($mtime);
++            if ($local_date ne $date &&
++                $file ne "lustre.spec.in") {
++                #print "$file : " . localtime($mtime) . "\n";
++                $pristine = 0;
++            }
++
++            if ($mtime > $last_mtime) {
++                $last_mtime = $mtime;
++            }
++
++            if ($date) {
++                my @t = split(/ +/, $date);
++                if (int(@t) != 5) {
++                    #print "skipping: $date\n";
++                    next;
++                }
++                my ($hours, $min, $sec) = split(/:/, $t[3]);
++                my ($mon, $mday, $year) = ($t[1], $t[2], $t[4]);
++                my $secs = 0;
++                $mon = $months{$mon};
++                $secs = timelocal($sec, $min, $hours, $mday, $mon, $year);
++                if ($secs > $last_mtime) {
++                    $last_mtime = $secs;
++                }
++            }
++        }
++        $entry->close();
++    }
++    return $last_mtime;
++}
++
++sub get_linuxdir()
++{
++    my $config = new IO::File;
++    my ($line, $dir);
++    if (!$config->open("Makefile")) {
++        die "Run ./configure first\n";
++    }
++    while (defined($line = <$config>)) {
++        chomp($line);
++        if ($line =~ /LINUX :?= (.*)/) {
++            $dir = $1;
++            last;
++        }
++    }
++    $config->close();
++    my $ver = new IO::File;
++    if (!$ver->open("$dir/include/linux/version.h")) {
++        die "Run make dep on $dir\n";
++    }
++    while(defined($line = <$ver>)) {
++        $line =~ /\#define UTS_RELEASE "(.*)"/;
++        if ($1) {
++            $kernver = $1;
++            last;
++        }
++    }
++    $ver->close();
++    chomp($kernver);
++    $dir =~ s/\//\./g;
++    return $dir;
++}
++
++sub generate_ver($$$)
++{
++    my $tag = shift;
++    my $mtime = shift;
++    my $linuxdir = shift;
++
++    #print "localtime: " . localtime($mtime) . "\n";
++
++    my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
++      localtime($mtime);
++    $year += 1900;
++    $mon++;
++    my $show_last = sprintf("%04d%02d%02d%02d%02d%02d", $year, $mon, $mday,
++                            $hour, $min, $sec);
++
++    print "#define BUILD_VERSION \"";
++
++    my $lustre_vers = $ENV{LUSTRE_VERS};
++
++    if ($lustre_vers) {
++        print "$tag-$lustre_vers\"\n";
++    } elsif ($pristine) {
++        print "$tag-$show_last-PRISTINE-$linuxdir-$kernver\"\n";
++    } else {
++        print "$tag-$show_last-CHANGED-$linuxdir-$kernver\"\n";
++    }
++}
++chomp(my $cwd = `pwd`);
++
++# ARGV[0] = srcdir
++# ARGV[1] = builddir
++
++# for get_latest_mtime and get_tag you need to be in srcdir
++
++if ($ARGV[0]) {
++    chdir($ARGV[0]);
++}
++my $tag = get_tag();
++my $mtime = get_latest_mtime();
++
++# for get_linuxdir you need to be in builddir
++
++#if ($ARGV[1]) {
++#   chdir($cwd);
++#   chdir($ARGV[1]);
++#}
++#my $linuxdir = get_linuxdir();
++
++my $linuxdir = '@LINUX@';
++$linuxdir =~ s/\//\./g;
++$kernver = '@LINUXRELEASE@';
++
++generate_ver($tag, $mtime, $linuxdir);
++
++exit(0);

-- 
Lustre Debian Packaging 



More information about the Pkg-lustre-svn-commit mailing list