From b633b75223b178c24022d7a78a52a4ced7e7a6c9 Mon Sep 17 00:00:00 2001 From: Florent Villard Date: Wed, 14 Feb 2007 12:54:25 +0000 Subject: add support for sparc64 stored in sparcv9 --- lib/Youri/Repository/Mandriva_upload.pm | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/Youri/Repository/Mandriva_upload.pm b/lib/Youri/Repository/Mandriva_upload.pm index 73f7e96..64c111a 100644 --- a/lib/Youri/Repository/Mandriva_upload.pm +++ b/lib/Youri/Repository/Mandriva_upload.pm @@ -29,6 +29,7 @@ memoize('_get_section', '_get_media_config'); my %translate_arch = ( i386 => 'i586', + sparc64 => 'sparcv9', ); sub _init { @@ -83,7 +84,7 @@ sub set_arch_changed { my ($self, $target, $arch) = @_; if ($arch eq 'noarch') { $self->{_arch_changed}{$_} = 1 foreach @{$self->{_arch}{$target}} - } elsif ($arch eq 'noarch') { + } elsif ($arch eq 'src') { $self->{_arch_changed} = $self->{_src} } else { $self->{_arch_changed}{$arch} = 1 @@ -159,6 +160,13 @@ sub get_install_path { return $self->_get_path($package, $target, $user_context, $app_context); } + +sub get_distribution_paths { + my ($self, $package, $target) = @_; + + return $self->_get_distribution_paths($package, $target); +} + sub get_archive_path { my ($self, $package, $target, $user_context, $app_context) = @_; @@ -177,6 +185,7 @@ sub _get_path { my $section = $self->_get_section($package, $target, $user_context, $app_context); my $arch = $package->get_arch(); + $arch = $translate_arch{$arch} || $arch; if ($arch eq 'noarch') { $arch = $self->{_noarch} } elsif ($arch eq 'src') { @@ -185,9 +194,24 @@ sub _get_path { "$target/$arch/media/$section" } +sub _get_distribution_paths { + my ($self, $package, $target) = @_; + + my $arch = $package->get_arch(); + $arch = $translate_arch{$arch} || $arch; + if ($arch eq 'noarch') { + map { "$target/$_" } $self->get_extra_arches; + } elsif ($arch eq 'src') { + die "no way to get distribution path using a $arch package"; + } else { + "$target/$arch"; + } +} + sub get_arch { my ($self, $package, $target, $user_context, $app_context) = @_; my $arch = $package->get_arch(); + $arch = $translate_arch{$arch} || $arch; if ($arch eq 'noarch') { $arch = $self->{_noarch} } -- cgit v1.2.1