[Pkg-octave-devel] new forge packages

Rafael Laboissiere rafael at debian.org
Fri May 9 21:50:48 UTC 2008


* Rafael Laboissiere <rafael at debian.org> [2008-05-09 23:42]:

> * Thomas Weber <thomas.weber.mail at gmail.com> [2008-05-09 22:46]:
> 
> > On 07/05/08 13:11 +0200, Rafael Laboissiere wrote:
> > > * Ólafur Jens Sigurðsson <ojsbug at gmail.com> [2008-05-07 12:28]:
> > > 
> > > > Hi, the following are new in the main repository of the forge, I will
> > > > work on getting them ready to be released in the next few days.
> > > > 
> > > > octave-ann octave-bioinfo octave-data octave-database octave-financial
> > > > octave-ftp octave-ga octave-missing octave-video.
> > > 
> > > Please, do not forget to file ITPs for them.
> > 
> > I will start updating the already released packages over the weekend.
> 
> Great, thanks.

You might be interested in the (sorry, Perl) script attached below.  I use
it for generating the SVN tag directory automatically.  After uploading the
package, I run it from the top-level diretory of the package (where it can
find the debian/changelog file).

The script accepts a --dry-run option that shows the commands that will be
run, without actually running them.
 
-- 
Rafael
-------------- next part --------------
#!/usr/bin/perl

use Getopt::Long;

(my $prog = $0) =~ s:.*/::;

my $pkgname;
my $version;
my $isnative;
my $dry_run = 0;

GetOptions ("dry-run"  => \$dry_run,
            "help" => \$help);

if ($help) {
  print "FIXME\n";
  exit 0;
}

die "Usage: $prog [build-dir]\n"
  if $#ARGV > 1;

my $buildir = $#ARGV == 0 ? $ARGV [0] : ".";

my $debdir = "$buildir/debian";

die "$prog:E: Directory $debdir does not exist"
  if not -d $debdir;

open (CHGLOG, "< $debdir/changelog")
  or die "$prog:E: Cannot open $debdir/changelog";

while (<CHGLOG>) {
  if (/^(\S+) \(([^)]+)\)/) {
    $pkgname = $1
      if not defined $pkgname;
    $version = $2;
    $isnative = not ($version =~ /-/);
    last;
  }
}

close CHGLOG;

my $commitdir = $isnative ? "." : "debian";

open (SVNINFO, "svn info $commitdir |")
  or die "$prog:E: Cannot get SVN info in directory $commitdir";

my $url;

while (<SVNINFO>) {
  if (/^URL: (.*)/) {
    $url = $1;
    last;
  }
}

close SVNINFO;

$isnative or $url =~ m {(.*)/debian$}
  or die qq {$prog:E: URL $url does not end with "/debian"};

my $trunkurl = $url;

$trunkurl =~ m {(.*)/trunk}
  or die qq {$prog:E: URL $url does not contain with "/trunk"};

my $baseurl = $1;

my $tagsurl = "$baseurl/tags";

sub run {
  my $cmd = shift;
  print "\n$cmd\n";
  system $cmd if not $dry_run;
}

system ("svn list $tagsurl 2>&1 > /dev/null") == 0
  or run qq {svn mkdir $tagsurl --message="Created tags dir"};

run qq {svn ci --message="Debian release ${pkgname}_$version" $commitdir};

run ("svn cp $trunkurl $tagsurl/$version"
     . qq { --message="Tag Debian release ${pkgname}_$version"});


More information about the Pkg-octave-devel mailing list