@@ -86,7 +86,7 @@ def add_tags_from_filename(self, filename):
8686 part = part .strip ()
8787 if part == "x86" :
8888 continue
89- if part == "amd64" or part == "x86_64" :
89+ if part == "amd64" or part == "x86_64" or part == "arm64" :
9090 self .add_tag ("64" )
9191 try :
9292 _ = int (part )
@@ -97,13 +97,46 @@ def add_tags_from_filename(self, filename):
9797 else :
9898 self .add_tag ("client" )
9999 self .add_tag ("agent" )
100+
101+ # sorry, debian packages work great on ubuntu
102+ # if we don't have a specific ubuntu package, note which debian is equivalent
103+ # only add "ubuntu" tag if we know we have an equivalent debian :)
104+ if "debian11" in self .tags :
105+ self .add_tag ("ubuntu20" )
106+ self .add_tag ("ubuntu" )
107+ if "debian10" in self .tags :
108+ self .add_tag ("ubuntu19" )
109+ self .add_tag ("ubuntu18" )
110+ self .add_tag ("ubuntu" )
111+ if "debian9" in self .tags :
112+ self .add_tag ("ubuntu17" )
113+ self .add_tag ("ubuntu16" )
114+ self .add_tag ("ubuntu" )
115+ if "debian8" in self .tags :
116+ self .add_tag ("ubuntu15" )
117+ self .add_tag ("ubuntu14" )
118+ self .add_tag ("ubuntu" )
119+ if "debian7" in self .tags :
120+ self .add_tag ("ubuntu13" )
121+ self .add_tag ("ubuntu12" )
122+ self .add_tag ("ubuntu11" )
123+ self .add_tag ("ubuntu" )
124+
100125 parts = filename .split ("." )
101126 if "x86_64" in parts :
102127 self .add_tag ("x86_64" )
103128 self .add_tag ("64" )
104129 if "amd64" in parts :
105130 self .add_tag ("amd64" )
106131 self .add_tag ("64" )
132+ if "arm64" in parts :
133+ self .add_tag ("aarch64" )
134+ self .add_tag ("64" )
135+ log .debug (
136+ "After looking at filename {}, tags for this package are {}" .format (
137+ filename , self .tags
138+ )
139+ )
107140
108141 def __str__ (self ):
109142 return self .filename + " ({})" .format (" " .join (self .tags ))
@@ -115,7 +148,7 @@ def __repr__(self):
115148def filter_artifacts (artifacts , tags , extension ):
116149 if extension :
117150 artifacts = [a for a in artifacts if a .extension == extension ]
118- log .debug ("Looking for tags: {}" .format (tags ))
151+ log .debug ("Looking for host tags: {}" .format (tags ))
119152 log .debug ("In artifacts: {}" .format (artifacts ))
120153 for tag in tags or []:
121154 tag = canonify (tag )
@@ -124,6 +157,9 @@ def filter_artifacts(artifacts, tags, extension):
124157 # since we are overwriting artifacts
125158 if len (new_artifacts ) > 0 :
126159 artifacts = new_artifacts
160+ log .debug (
161+ "Artifacts filtered on canonified tag {} are {}" .format (tag , new_artifacts )
162+ )
127163
128164 log .debug ("Found artifacts: {}" .format (artifacts ))
129165 return artifacts
@@ -135,12 +171,13 @@ def __init__(self, data):
135171 self .version = data ["version" ]
136172 self .url = data ["URL" ]
137173 self .lts = data ["lts_branch" ] if "lts_branch" in data else None
138- self .extended_data = None
174+ self .extended_data = data [ "data" ] if "data" in data else None
139175 self .artifacts = None
140176 self .default = False
141177
142178 def init_download (self ):
143- self .extended_data = get_json (self .url )
179+ if self .extended_data is None :
180+ self .extended_data = get_json (self .url )
144181 artifacts = self .extended_data ["artifacts" ]
145182 self .artifacts = []
146183 for header in artifacts :
@@ -150,7 +187,7 @@ def init_download(self):
150187 self .artifacts .append (artifact )
151188
152189 def find (self , tags , extension = None ):
153- if not self .extended_data :
190+ if self .extended_data is None :
154191 self .init_download ()
155192 return filter_artifacts (self .artifacts , tags , extension )
156193
0 commit comments