aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Youri/Upload
diff options
context:
space:
mode:
authorMandrake <mandrake@mandriva.com>2006-08-13 13:02:50 +0000
committerMandrake <mandrake@mandriva.com>2006-08-13 13:02:50 +0000
commit1e5c08f05ee87f14894fdf4d5fed4ba41826c665 (patch)
tree6b80a691c24b30c6654eac01cb9dded7f28ff219 /lib/Youri/Upload
parent34b9a191444dee5cad79b9258d1d14d2387e2279 (diff)
downloadmga-youri-core-1e5c08f05ee87f14894fdf4d5fed4ba41826c665.tar
mga-youri-core-1e5c08f05ee87f14894fdf4d5fed4ba41826c665.tar.gz
mga-youri-core-1e5c08f05ee87f14894fdf4d5fed4ba41826c665.tar.bz2
mga-youri-core-1e5c08f05ee87f14894fdf4d5fed4ba41826c665.tar.xz
mga-youri-core-1e5c08f05ee87f14894fdf4d5fed4ba41826c665.zip
Delete file when installed; include section in the mail subject; move debug package to debug; add function to find main section, only compare package which main section is different (packages can be duplicate in main/release and main/testing
Diffstat (limited to 'lib/Youri/Upload')
-rw-r--r--lib/Youri/Upload/Action/Archive.pm15
-rw-r--r--lib/Youri/Upload/Action/Install.pm12
-rw-r--r--lib/Youri/Upload/Action/Mail.pm3
-rw-r--r--lib/Youri/Upload/Check/SVN.pm7
-rw-r--r--lib/Youri/Upload/Reject/Clean.pm10
-rw-r--r--lib/Youri/Upload/Reject/Install.pm6
6 files changed, 40 insertions, 13 deletions
diff --git a/lib/Youri/Upload/Action/Archive.pm b/lib/Youri/Upload/Action/Archive.pm
index b13aa51..3626d88 100644
--- a/lib/Youri/Upload/Action/Archive.pm
+++ b/lib/Youri/Upload/Action/Archive.pm
@@ -29,11 +29,24 @@ 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};
+ my $arch = $package->get_arch();
+ $arch = $self->{_noarch} if $arch eq 'noarch';
+ my $path = $arch eq 'src' ? "$target/SRPMS/" : "$target/$arch/media";
+ $path = "$repository->{_install_root}/$path";
+ $path =~ s,/+,/,g;
+ $self->{_verbose} = 1;
foreach my $replaced_package (
$repository->get_replaced_packages($package, $target, $define)
) {
my $file = $replaced_package->get_file();
+ my ($rep_section, $rep_main_section) = $file =~ m,$path(([^/]+)/.*)/[^/]+.rpm,;
+ # We do accept duplicate version for other submedia of the same main media section
+ print "file $file section $rep_section main_section $rep_main_section ($path)\n" if $self->{_verbose};
+ next if $rep_main_section eq $main_section && $rep_section ne $section;
my $dest = $repository->get_archive_dir($package, $target, $define);
print "archiving file $file to $dest\n" if $self->{_verbose};
diff --git a/lib/Youri/Upload/Action/Install.pm b/lib/Youri/Upload/Action/Install.pm
index 45d7823..cf9891e 100644
--- a/lib/Youri/Upload/Action/Install.pm
+++ b/lib/Youri/Upload/Action/Install.pm
@@ -33,18 +33,24 @@ sub run {
croak "Not a class method" unless ref $self;
my $file = $package->get_file();
+ my $rpm = $package->get_file_name();
my $dest = $repository->get_install_dir($package, $target, $define);
- print "installing file $file to $dest\n" if $self->{_verbose};
+ # FIXME remove prefix this should be done by a function
+ $rpm =~ s/^\d{14}\.\w+\.\w+\.\d+_//;
+ print "installing file $file to $dest/$rpm\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");
+ system("install -m $self->{_perms} $file $dest/$rpm");
}
+ $package->{_file} = "$dest/$rpm";
+ print "deleting file $file\n" if $self->{_verbose};
+ unlink $file unless $self->{_test};
}
=head1 COPYRIGHT AND LICENSE
diff --git a/lib/Youri/Upload/Action/Mail.pm b/lib/Youri/Upload/Action/Mail.pm
index 74ce9d6..92aa87e 100644
--- a/lib/Youri/Upload/Action/Mail.pm
+++ b/lib/Youri/Upload/Action/Mail.pm
@@ -57,12 +57,13 @@ 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} . '] ' : '' ) .
+ ($self->{_prefix} ? '[' . $self->{_prefix} . '] ' : '' ) . ($section ? "$section " : '') .
$package->get_revision_name();
my $information = $package->get_information();
my $last_change = $package->get_last_change();
diff --git a/lib/Youri/Upload/Check/SVN.pm b/lib/Youri/Upload/Check/SVN.pm
index 6e7d57a..f824f4a 100644
--- a/lib/Youri/Upload/Check/SVN.pm
+++ b/lib/Youri/Upload/Check/SVN.pm
@@ -30,6 +30,13 @@ sub run {
my ($self, $package, $repository, $target, $define) = @_;
croak "Not a class method" unless ref $self;
+ my $section = $repository->_get_section($package, $target, $define);
+ if ($section =~ /\/(testing|backport)$/) {
+ # FIXME, right now ignore packages in SVN for testing and backports
+ # we need to find a clean way to handle them
+ return 1
+ }
+
$package->is_source or return 1;
my $file = $package->get_file_name;
my $srpm_name = $package->get_canonical_name;
diff --git a/lib/Youri/Upload/Reject/Clean.pm b/lib/Youri/Upload/Reject/Clean.pm
index 7902472..ed2b99d 100644
--- a/lib/Youri/Upload/Reject/Clean.pm
+++ b/lib/Youri/Upload/Reject/Clean.pm
@@ -20,13 +20,9 @@ sub run {
my ($self, $package, $errors, $repository, $target, $define) = @_;
croak "Not a class method" unless ref $self;
- foreach my $replaced_package (
- $repository->get_replaced_packages($package, $target, $define)
- ) {
- my $file = $replaced_package->get_file();
- print "deleting file $file\n" if $self->{_verbose};
- unlink $file unless $self->{_test};
- }
+ my $file = $package->get_file();
+ print "deleting file $file\n" if $self->{_verbose};
+ unlink $file unless $self->{_test};
}
=head1 COPYRIGHT AND LICENSE
diff --git a/lib/Youri/Upload/Reject/Install.pm b/lib/Youri/Upload/Reject/Install.pm
index ae778ce..d35fe9d 100644
--- a/lib/Youri/Upload/Reject/Install.pm
+++ b/lib/Youri/Upload/Reject/Install.pm
@@ -24,6 +24,7 @@ sub _init {
);
$self->{_perms} = $options{perms};
+ $self->{_verbose} = $options{verbose};
}
sub run {
@@ -36,7 +37,7 @@ sub run {
# FIXME remove prefix this should be done by a function
$rpm =~ s/^\d{14}\.\w+\.\w+\.\d+_//;
- print "installing file $file to $dest/$rpm\n" ;#if $self->{_verbose};
+ print "installing file $file to $dest/$rpm\n" if $self->{_verbose};
unless ($self->{_test}) {
# create destination dir if needed
@@ -46,6 +47,9 @@ sub run {
# install file to new location
system("install -m $self->{_perms} $file $dest/$rpm");
}
+ $package->{_file} = "$dest/$rpm";
+ print "deleting file $file\n" if $self->{_verbose};
+ unlink $file unless $self->{_test};
}
=head1 COPYRIGHT AND LICENSE