summaryrefslogtreecommitdiff
path: root/Master/tlpkg/etc/installed_avail_archs.diff
blob: 95fe5bb94605ff0cc2698c80dd981854ff7b7c44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
Index: install-tl
===================================================================
--- install-tl	(revision 10389)
+++ install-tl	(working copy)
@@ -921,7 +921,7 @@
       if ($vars{$_}) { push @archs, $1; }
     }
   }
-  $localtlpdb->option_available_architectures(@archs);
+  $localtlpdb->option_installed_architectures(@archs);
   $localtlpdb->save() unless $vars{'from_dvd'};
 }
 
Index: tlpkg/TeXLive/TLPDB.pm
===================================================================
--- tlpkg/TeXLive/TLPDB.pm	(revision 10391)
+++ tlpkg/TeXLive/TLPDB.pm	(working copy)
@@ -27,6 +27,7 @@
   $tlpdb->writeout(FILEHANDLE);
   $tlpdb->save;
   $tlpdb->available_architectures();
+  $tlpdb->installed_architectures();
   $tlpdb->add_tlpcontainer($pkg, $ziploc [, $archrefs [, $dest ]] );
   $tlpdb->add_tlpobj($tlpobj);
   $tlpdb->needed_by($pkg);
@@ -141,7 +142,7 @@
     if ($tlp->category =~ m/$MetaCategoriesRegexp/) {
       foreach my $d ($tlp->depends) {
         if ($d =~ m/^(.*)\.win32$/) {
-          if (member("win32", $self->available_architectures)) {
+          if (member("win32", $self->installed_architectures)) {
             if ($d eq $pkg) {
               push @ret, $p;
               last;
@@ -311,17 +312,16 @@
 
 =pod
 
-=item C<< $tlpdb->available_architectures >>
+=item C<< $tlpdb->installed_architectures >>
 
-The C<available_architectures> functions returns the list of available 
-architectures as set in the options section 
-(i.e., using option_available_architectures)
+The C<installed_architectures> function returns the list of installed
+architectures, as set as variable in 00texlive-installation.config.
 
 =cut
 
-sub available_architectures {
+sub installed_architectures {
   my $self = shift;
-  my @archs = $self->option_available_architectures;
+  my @archs = $self->option_installed_architectures;
   if (! @archs) {
     # fall back to the old method checking bin-tex\.*
     my @packs = $self->list_packages;
@@ -330,8 +330,30 @@
   return @archs;
 }
 
+
 =pod
 
+=item C<< $tlpdb->available_architectures >>
+
+The C<available_architectures> function returns the list of available 
+architectures as set in the 00texlive.config package.
+
+=cut
+
+sub available_architectures {
+  my $self = shift;
+  if (defined($self->{'tlps'}{'00texlive.config'})) {
+    foreach my $d ($self->{'tlps'}{'00texlive.config'}->depends) {
+      if ($d =~ m!^available_architectures/(.*)$!) {
+        return split ' ', "$1";
+      }
+    }
+  }
+  return;
+}
+
+=pod
+
 =item C<< $tlpdb->add_tlpcontainer($pkg, $ziploc [, $archrefs [, $dest ]] ) >>
 
 Installs the package C<$pkg> from the container files in C<$ziploc>. If
@@ -858,10 +880,10 @@
   return;
 }
 
-sub option_available_architectures {
+sub option_installed_architectures {
   my $self = shift;
-  if (@_) { $self->_set_option_value("available_architectures","@_"); }
-  my @archs = split ' ', $self->_option_value("available_architectures");
+  if (@_) { $self->_set_option_value("installed_architectures","@_"); }
+  my @archs = split ' ', $self->_option_value("installed_architectures");
   return @archs;
 }
 sub option_create_symlinks { 
Index: tlpkg/TeXLive/TLMedia.pm
===================================================================
--- tlpkg/TeXLive/TLMedia.pm	(revision 10391)
+++ tlpkg/TeXLive/TLMedia.pm	(working copy)
@@ -68,7 +68,7 @@
     }
   }
   my (@systems);
-  @systems = $tlpdb->available_architectures;
+  @systems = $tlpdb->installed_architectures;
   $self->{'media'} = $media;
   $self->{'location'} = $location;
   $self->{'tlpdb'} = $tlpdb;
@@ -210,7 +210,7 @@
         # we only want to try to install a .ARCH package if it actually contains
         # files
         my $foo = $1;
-        foreach my $a ($totlpdb->available_architectures) {
+        foreach my $a ($totlpdb->installed_architectures) {
           if (defined($fromtlpdb->get_package("$foo.$a")) &&
               !defined($totlpdb->get_package("$foo.$a"))) {
             merge_into(\%ret,
@@ -219,7 +219,7 @@
         }
       } elsif ($d =~ m/^(.*).win32$/) {
         # install only of win32 is under the available archs
-        if (TeXLive::TLUtils::member("win32",$totlpdb->available_architectures)) {
+        if (TeXLive::TLUtils::member("win32",$totlpdb->installed_architectures)) {
           merge_into(\%ret,
             $self->install_package($d, $totlpdb, $nodepends, $nopostinstall, $fallbackmedia));
         }
Index: tlpkg/bin/tlpsrc2tlpdb
===================================================================
--- tlpkg/bin/tlpsrc2tlpdb	(revision 10389)
+++ tlpkg/bin/tlpsrc2tlpdb	(working copy)
@@ -113,6 +113,10 @@
     if ($tlp->name eq "00texlive.config") {
       my @bar = $tlp->depends;
       push @bar, "revision/".$tltree->revision;
+      # add the list of available architectures to 00texlive.config which
+      # is the source of information at installation time
+      my @foo = $tltree->architectures;
+      push @bar, "available_architectures/@foo";
       $tlp->depends (@bar);
     }
     $tldb->add_tlpobj ($tlp);
@@ -123,7 +127,13 @@
   if ($opt_all) {
     $tldb->root ($opt_master);
     # do set the option_archs from the dirs in Master/bin
-    $tldb->option_available_architectures ($tltree->architectures);
+    # we have to set two times the list of architectures: Once the list
+    # of available architectures as saved in 00texlive.config, and once
+    # (for running directly from the svn checkout) the list of 
+    # installed packages in 00texlive-installation.config
+    # The former part in 00texlive.config is done above, the later part
+    # is done here:
+    $tldb->option_installed_architectures ($tltree->architectures);
     $tldb->save;
     info ("$0: wrote $src_count packages to ". $tldb->root . ".\n");
   } else {
Index: texmf/scripts/texlive/tlmgr.pl
===================================================================
--- texmf/scripts/texlive/tlmgr.pl	(revision 10391)
+++ texmf/scripts/texlive/tlmgr.pl	(working copy)
@@ -275,7 +275,7 @@
     # remove those bin dependencies .ARCH
     foreach my $d ($tlp->depends) {
       if ($d eq "$pkg.ARCH") {
-        foreach my $a ($localtlpdb->available_architectures) {
+        foreach my $a ($localtlpdb->installed_architectures) {
           if (defined($localtlpdb->get_package("$pkg.$a"))) {
             merge_into(\%ret,
                        &remove_package("$pkg.$a", $localtlpdb, $force));
@@ -884,7 +884,7 @@
     $tlmediasrc = TeXLive::TLMedia->new($location);
     die($loadmediasrcerror . $location) unless defined($tlmediasrc);
     my $mediatlpdb = $tlmediasrc->tlpdb;
-    my @already_installed_arch = $localtlpdb->available_architectures;
+    my @already_installed_arch = $localtlpdb->installed_architectures;
     print "Available architectures:\n";
     foreach my $a ($mediatlpdb->available_architectures) {
       if (member($a,@already_installed_arch)) {
@@ -900,7 +900,7 @@
     $tlmediasrc = TeXLive::TLMedia->new($location);
     die($loadmediasrcerror . $location) unless defined($tlmediasrc);
     my $mediatlpdb = $tlmediasrc->tlpdb;
-    my @already_installed_arch = $localtlpdb->available_architectures;
+    my @already_installed_arch = $localtlpdb->installed_architectures;
     my @available_arch = $mediatlpdb->available_architectures;
     my @todoarchs;
     foreach my $a (@ARGV) {
@@ -937,9 +937,9 @@
       merge_into (\%ret, $tlmediasrc->install_package("bin-tlpsv.win32", $localtlpdb, 1, 0));
     }
     # update the option_archs list of installed archs
-    my @larchs = $localtlpdb->option_available_architectures;
+    my @larchs = $localtlpdb->option_installed_architectures;
     push @larchs, @todoarchs;
-    $localtlpdb->option_available_architectures(@larchs);
+    $localtlpdb->option_installed_architectures(@larchs);
     $localtlpdb->save;
   } else {
     die "Unknown option for arch: $what";
Index: texmf/scripts/texlive/tlmgrgui/gui-arch.pl
===================================================================
--- texmf/scripts/texlive/tlmgrgui/gui-arch.pl	(revision 10391)
+++ texmf/scripts/texlive/tlmgrgui/gui-arch.pl	(working copy)
@@ -32,7 +32,7 @@
   } else {
     @archsavail = $tlmediatlpdb->available_architectures;
   }
-  @archsinstalled = $localtlpdb->available_architectures;
+  @archsinstalled = $localtlpdb->installed_architectures;
   foreach my $a (@archsavail) {
     $archs{$a} = 0;
     if (grep(/^$a$/,@archsinstalled)) {