summaryrefslogtreecommitdiffstats
path: root/lib/MGA
diff options
context:
space:
mode:
authorMartin Whitaker <mageia@martin-whitaker.me.uk>2018-01-03 10:55:08 +0000
committerMartin Whitaker <mageia@martin-whitaker.me.uk>2018-01-03 10:55:08 +0000
commit3481fae53f31389b1abe13b7b5b895d78e11abdb (patch)
tree98f85078efce6f3c3871c7d433b596888711c62e /lib/MGA
parent91adee2992220d8ffc6c49b630c78afe7d43c779 (diff)
downloaddrakiso-3481fae53f31389b1abe13b7b5b895d78e11abdb.tar
drakiso-3481fae53f31389b1abe13b7b5b895d78e11abdb.tar.gz
drakiso-3481fae53f31389b1abe13b7b5b895d78e11abdb.tar.bz2
drakiso-3481fae53f31389b1abe13b7b5b895d78e11abdb.tar.xz
drakiso-3481fae53f31389b1abe13b7b5b895d78e11abdb.zip
drakclassic: Support arch specific packages in package lists.
Diffstat (limited to 'lib/MGA')
-rw-r--r--lib/MGA/DrakISO/BuildMedia.pm14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/MGA/DrakISO/BuildMedia.pm b/lib/MGA/DrakISO/BuildMedia.pm
index 06376b5..9ed9026 100644
--- a/lib/MGA/DrakISO/BuildMedia.pm
+++ b/lib/MGA/DrakISO/BuildMedia.pm
@@ -371,6 +371,8 @@ sub add_dependencies_to_selected_packages {
sub get_known_conflicts {
my ($build) = @_;
+ my $arch = $build->{settings}{arch};
+
my $file = $build->{known_conflicts};
-f $file or return;
@@ -378,6 +380,11 @@ sub get_known_conflicts {
foreach my $line (cat_($file)) {
my ($data, $comment) = split('#', $line);
next if !$data; # skip pure comment lines
+ my ($head, $tail) = split(':', $data, 2);
+ if ($head && $tail) {
+ next if $head !~ /\s*$arch\s*/;
+ $data = $tail;
+ }
my @packages = split(' ', $data);
foreach my $pkg (@packages) {
$known_conflicts{$pkg} = 1;
@@ -656,11 +663,18 @@ sub remove_from_selected_packages {
sub update_package_selection {
my ($build, $file, $action, $class, $o_warn) = @_;
+ my $arch = $build->{settings}{arch};
+
-f $file or die "ERROR: cannot open package list file '$file'\n";
foreach my $line (cat_($file)) {
chomp($line);
my ($data, $comment) = split('#', $line);
next if !$data; # skip pure comment lines
+ my ($head, $tail) = split(':', $data, 2);
+ if ($head && $tail) {
+ next if $head !~ /\s*$arch\s*/;
+ $data = $tail;
+ }
my @packages = split(' ', $data);
foreach my $pkg (@packages) {
my @alternatives = split('\|', $pkg);