aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorFlorent Villard <warly@mandriva.com>2006-10-16 12:57:42 +0000
committerFlorent Villard <warly@mandriva.com>2006-10-16 12:57:42 +0000
commita06cd2f6bca0fd4bd35bf2f8cfbb0fa0109f515c (patch)
treed49b290c5a5729024f7789c03fbe881bfe263e4e /lib
parent0faf3c79256ed17b70f23474db9f3fc3156aaade (diff)
downloadmga-youri-submit-a06cd2f6bca0fd4bd35bf2f8cfbb0fa0109f515c.tar
mga-youri-submit-a06cd2f6bca0fd4bd35bf2f8cfbb0fa0109f515c.tar.gz
mga-youri-submit-a06cd2f6bca0fd4bd35bf2f8cfbb0fa0109f515c.tar.bz2
mga-youri-submit-a06cd2f6bca0fd4bd35bf2f8cfbb0fa0109f515c.tar.xz
mga-youri-submit-a06cd2f6bca0fd4bd35bf2f8cfbb0fa0109f515c.zip
merging dev with upstream
Diffstat (limited to 'lib')
-rw-r--r--lib/Youri/Submit/Action/Archive.pm10
-rw-r--r--lib/Youri/Submit/Action/Bugzilla.pm6
-rw-r--r--lib/Youri/Submit/Action/CVS.pm6
-rw-r--r--lib/Youri/Submit/Action/Clean.pm8
-rw-r--r--lib/Youri/Submit/Action/Install.pm14
-rw-r--r--lib/Youri/Submit/Action/Link.pm38
-rw-r--r--lib/Youri/Submit/Action/Mail.pm47
-rw-r--r--lib/Youri/Submit/Action/RSS.pm8
-rw-r--r--lib/Youri/Submit/Action/Sign.pm6
9 files changed, 85 insertions, 58 deletions
diff --git a/lib/Youri/Submit/Action/Archive.pm b/lib/Youri/Submit/Action/Archive.pm
index d16deeb..721eab9 100644
--- a/lib/Youri/Submit/Action/Archive.pm
+++ b/lib/Youri/Submit/Action/Archive.pm
@@ -1,9 +1,9 @@
# $Id$
-package Youri::Upload::Action::Archive;
+package Youri::Submit::Action::Archive;
=head1 NAME
-Youri::Upload::Action::Archive - Old revisions archiving
+Youri::Submit::Action::Archive - Old revisions archiving
=head1 DESCRIPTION
@@ -14,7 +14,7 @@ This action plugin ensures archiving of old package revisions.
use warnings;
use strict;
use Carp;
-use base qw/Youri::Upload::Action/;
+use base qw/Youri::Submit::Action/;
sub _init {
my $self = shift;
@@ -29,7 +29,7 @@ sub _init {
sub run {
my ($self, $package, $repository, $target, $define) = @_;
croak "Not a class method" unless ref $self;
-
+
my $section = $repository->_get_section($package, $target, $define);
my $main_section = $repository->_get_main_section($package, $target, $define);
print "section $section main_section $main_section\n" if $self->{_verbose};
@@ -59,7 +59,7 @@ sub run {
# install file to new location
system("install -m $self->{_perms} $file $dest");
}
- }
+ }
}
=head1 COPYRIGHT AND LICENSE
diff --git a/lib/Youri/Submit/Action/Bugzilla.pm b/lib/Youri/Submit/Action/Bugzilla.pm
index 17d6b1c..7c46eb1 100644
--- a/lib/Youri/Submit/Action/Bugzilla.pm
+++ b/lib/Youri/Submit/Action/Bugzilla.pm
@@ -1,9 +1,9 @@
# $Id$
-package Youri::Upload::Action::Bugzilla;
+package Youri::Submit::Action::Bugzilla;
=head1 NAME
-Youri::Upload::Action::Bugzilla - Bugzilla synchronisation
+Youri::Submit::Action::Bugzilla - Bugzilla synchronisation
=head1 DESCRIPTION
@@ -15,7 +15,7 @@ use warnings;
use strict;
use Carp;
use Youri::Bugzilla;
-use base qw/Youri::Upload::Action/;
+use base qw/Youri::Submit::Action/;
sub _init {
my $self = shift;
diff --git a/lib/Youri/Submit/Action/CVS.pm b/lib/Youri/Submit/Action/CVS.pm
index c0488ea..b9a3741 100644
--- a/lib/Youri/Submit/Action/CVS.pm
+++ b/lib/Youri/Submit/Action/CVS.pm
@@ -1,9 +1,9 @@
# $Id$
-package Youri::Upload::Action::CVS;
+package Youri::Submit::Action::CVS;
=head1 NAME
-Youri::Upload::Action::CVS - CVS versionning
+Youri::Submit::Action::CVS - CVS versionning
=head1 DESCRIPTION
@@ -16,7 +16,7 @@ use strict;
use Carp;
use Cwd;
use File::Temp qw/tempdir/;
-use base qw/Youri::Upload::Action/;
+use base qw/Youri::Submit::Action/;
sub _init {
my $self = shift;
diff --git a/lib/Youri/Submit/Action/Clean.pm b/lib/Youri/Submit/Action/Clean.pm
index 8564756..51bfe51 100644
--- a/lib/Youri/Submit/Action/Clean.pm
+++ b/lib/Youri/Submit/Action/Clean.pm
@@ -1,9 +1,9 @@
# $Id: /local/youri/soft/trunk/lib/Youri/Upload/Action/Backup.pm 867 2006-01-29T20:47:27.830648Z guillaume $
-package Youri::Upload::Action::Clean;
+package Youri::Submit::Action::Clean;
=head1 NAME
-Youri::Upload::Action::Clean - Old revisions cleanup
+Youri::Submit::Action::Clean - Old revisions cleanup
=head1 DESCRIPTION
@@ -14,7 +14,7 @@ This action plugin ensures cleanup of old package revisions.
use warnings;
use strict;
use Carp;
-use base qw/Youri::Upload::Action/;
+use base qw/Youri::Submit::Action/;
sub run {
my ($self, $package, $repository, $target, $define) = @_;
@@ -23,7 +23,7 @@ sub run {
foreach my $replaced_package (
$repository->get_replaced_packages($package, $target, $define)
) {
- my $file = $replaced_package->get_file();
+ my $file = $replaced_package->as_file();
print "deleting file $file\n" if $self->{_verbose};
unlink $file unless $self->{_test};
}
diff --git a/lib/Youri/Submit/Action/Install.pm b/lib/Youri/Submit/Action/Install.pm
index df65991..e665476 100644
--- a/lib/Youri/Submit/Action/Install.pm
+++ b/lib/Youri/Submit/Action/Install.pm
@@ -1,9 +1,9 @@
# $Id$
-package Youri::Upload::Action::Install;
+package Youri::Submit::Action::Install;
=head1 NAME
-Youri::Upload::Action::Install - Package installation
+Youri::Submit::Action::Install - Package installation
=head1 DESCRIPTION
@@ -14,7 +14,7 @@ This action plugin ensures installation of new package revisions.
use warnings;
use strict;
use Carp;
-use base qw/Youri::Upload::Action/;
+use base qw/Youri::Submit::Action/;
sub _init {
my $self = shift;
@@ -32,22 +32,22 @@ sub run {
my ($self, $package, $repository, $target, $define) = @_;
croak "Not a class method" unless ref $self;
- my $file = $package->get_file();
+ my $file = $package->as_file();
my $rpm = $package->get_file_name();
my $dest = $repository->get_install_dir($package, $target, $define);
# FIXME remove prefix this should be done by a function
$rpm =~ s/^\d{14}\.\w*\.\w+\.\d+_//;
$rpm =~ s/^\@\d+://;
- print "installing file $file to $dest/$rpm\n" if $self->{_verbose};
+ print "installing file $file to $dest\n" if $self->{_verbose};
unless ($self->{_test}) {
# create destination dir if needed
- system("install -d -m " . ($self->{_perms} + 111) . " $dest/")
+ system("install -d -m " . ($self->{_perms} + 111) . " $dest")
unless -d $dest;
# install file to new location
- system("install -m $self->{_perms} $file $dest/$rpm");
+ system("install -m $self->{_perms} $file $dest");
}
$package->{_file} = "$dest/$rpm";
print "deleting file $file\n" if $self->{_verbose};
diff --git a/lib/Youri/Submit/Action/Link.pm b/lib/Youri/Submit/Action/Link.pm
index eaadec1..b80d7e8 100644
--- a/lib/Youri/Submit/Action/Link.pm
+++ b/lib/Youri/Submit/Action/Link.pm
@@ -1,9 +1,9 @@
# $Id: /local/youri/soft/trunk/lib/Youri/Upload/Action/Sign.pm 1543 2006-03-21T20:22:54.334939Z guillaume $
-package Youri::Upload::Action::Link;
+package Youri::Submit::Action::Link;
=head1 NAME
-Youri::Upload::Action::Link - Noarch packages linking
+Youri::Submit::Action::Link - Noarch packages linking
=head1 DESCRIPTION
@@ -15,8 +15,9 @@ directories.
use warnings;
use strict;
use Carp;
+use Cwd;
use File::Spec;
-use base qw/Youri::Upload::Action/;
+use base qw/Youri::Submit::Action/;
sub _init {
my $self = shift;
@@ -35,20 +36,29 @@ sub run {
# only needed for noarch packages
return unless $package->get_arch() eq 'noarch';
- my $dest_dir = $repository->get_install_dir($package, $target, $define);
- my (undef, $parent_dir, $relative_dir) = File::Spec->splitpath($dest_dir);
+ my $default_dir = $repository->get_install_dir($package, $target, $define);
my $file = $package->get_file_name();
- foreach my $other_dir (grep { -d } <$parent_dir/*>) {
- next if $other_dir eq $dest_dir;
- chdir $other_dir;
- my $source_file = "../$relative_dir/$file";
- if ($self->{_symbolic}) {
- symlink $source_file, $file unless $self->{_test};
- } else {
- link $source_file, $file unless $self->{_test};
+ foreach my $arch ($repository->get_extra_arches()) {
+ # compute installation target, forcing arch
+ my $other_dir = $repository->get_install_dir(
+ $package,
+ $target,
+ $define,
+ { arch => $arch }
+ );
+
+ if (! $self->{_test}) {
+ my $current_dir = cwd();
+ cd $other_dir;
+ my $default_file = File::Spec->abs2rel($default_dir) . '/' . $file;
+ if ($self->{_symbolic}) {
+ symlink $default_file, $file;
+ } else {
+ link $default_file, $file;
+ }
+ cd $current_dir;
}
- chdir '..';
}
}
diff --git a/lib/Youri/Submit/Action/Mail.pm b/lib/Youri/Submit/Action/Mail.pm
index 7ef8380..5df20e6 100644
--- a/lib/Youri/Submit/Action/Mail.pm
+++ b/lib/Youri/Submit/Action/Mail.pm
@@ -1,9 +1,9 @@
# $Id$
-package Youri::Upload::Action::Mail;
+package Youri::Submit::Action::Mail;
=head1 NAME
-Youri::Upload::Action::Mail - Mail notification
+Youri::Submit::Action::Mail - Mail notification
=head1 DESCRIPTION
@@ -17,7 +17,7 @@ use MIME::Entity;
use Encode qw/from_to/;
use Carp;
use Youri::Package;
-use base qw/Youri::Upload::Action/;
+use base qw/Youri::Submit::Action/;
sub _init {
my $self = shift;
@@ -57,22 +57,12 @@ sub run {
return unless $package->is_source();
my $from = $package->get_packager();
- my $section = $repository->_get_section($package, $target, $define);
# force from adress if defined
$from =~ s/<.*>/<$self->{_from}>/ if $self->{_from};
- my $subject =
- ($self->{_prefix} ? '[' . $self->{_prefix} . '] ' : '' ) . "$target " . ($section ? "$section " : '') .
- $package->get_revision_name();
- my $information = $package->get_information();
- my $last_change = $package->get_last_change();
- my $content =
- $information . "\n" .
- $last_change->[Youri::Package::CHANGE_AUTHOR] . ":\n" .
- join(
- '', map { "- $_\n" } @{$last_change->[Youri::Package::CHANGE_TEXT]}
- );
+ my $subject = $self->get_subject($package, $repository, $target, $define);
+ my $content = $self->get_content($package, $repository, $target, $define);
# ensure proper codeset conversion
# for informations coming from package
@@ -105,6 +95,33 @@ sub run {
}
+sub get_subject {
+ my ($self, $package, $repository, $target, $define) = @_;
+ croak "Not a class method" unless ref $self;
+
+ my $section = $repository->_get_section($package, $target, $define);
+ return
+ ($self->{_prefix} ? '[' . $self->{_prefix} . '] ' : '' ) .
+ . "$target " . ($section ? "$section " : '' ) .
+ $package->as_formated_string('%{name}-%{version}-%{release}');
+}
+
+sub get_content {
+ my ($self, $package, $repository, $target, $define) = @_;
+ croak "Not a class method" unless ref $self;
+
+ my $information = $package->get_information();
+ my $last_change = $package->get_last_change();
+
+ return
+ $information . "\n" .
+ $last_change->[Youri::Package::CHANGE_AUTHOR] . ":\n" .
+ join(
+ '', map { "- $_\n" } @{$last_change->[Youri::Package::CHANGE_TEXT]}
+ );
+}
+
+
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2002-2006, YOURI project
diff --git a/lib/Youri/Submit/Action/RSS.pm b/lib/Youri/Submit/Action/RSS.pm
index b1f484f..9d32911 100644
--- a/lib/Youri/Submit/Action/RSS.pm
+++ b/lib/Youri/Submit/Action/RSS.pm
@@ -1,9 +1,9 @@
# $Id$
-package Youri::Upload::Action::RSS;
+package Youri::Submit::Action::RSS;
=head1 NAME
-Youri::Upload::Action::RSS - RSS notification
+Youri::Submit::Action::RSS - RSS notification
=head1 DESCRIPTION
@@ -16,7 +16,7 @@ use strict;
use XML::RSS;
use Encode qw/from_to/;
use Carp;
-use base qw/Youri::Upload::Action/;
+use base qw/Youri::Submit::Action/;
sub _init {
my $self = shift;
@@ -48,7 +48,7 @@ sub run {
return unless $package->is_source();
- my $subject = $package->get_revision_name();
+ my $subject = $package->as_formated_string('%{name}-%{version}-%{release}');
my $content = $package->get_information();
$content =~ s/$/<br\/>/mg;
diff --git a/lib/Youri/Submit/Action/Sign.pm b/lib/Youri/Submit/Action/Sign.pm
index 4a92fa5..7303f14 100644
--- a/lib/Youri/Submit/Action/Sign.pm
+++ b/lib/Youri/Submit/Action/Sign.pm
@@ -1,9 +1,9 @@
# $Id$
-package Youri::Upload::Action::Sign;
+package Youri::Submit::Action::Sign;
=head1 NAME
-Youri::Upload::Action::Sign - GPG signature
+Youri::Submit::Action::Sign - GPG signature
=head1 DESCRIPTION
@@ -14,7 +14,7 @@ This action plugin ensures GPG signature of packages.
use warnings;
use strict;
use Carp;
-use base qw/Youri::Upload::Action/;
+use base qw/Youri::Submit::Action/;
sub _init {
my $self = shift;