| Brad Bishop | 286d45c | 2018-10-02 15:21:57 -0400 | [diff] [blame] | 1 | # This class is setup to override the default fetching for the target recipe. | 
 | 2 | # When fetching it forces PREMIRROR only fetching so that no attempts are made | 
 | 3 | # to fetch the Xilinx downloads that are restricted to authenticated users only. | 
 | 4 | # | 
 | 5 | # The purpose of this class is to allow for automatation with pre-downloaded | 
 | 6 | # content or content that is available with curated/user defined pre-mirrors | 
 | 7 | # and or pre-populated downloads/ directories. | 
 | 8 |  | 
 | 9 | python do_fetch() { | 
 | 10 |     xilinx_restricted_url = "xilinx.com/member/forms/download" | 
 | 11 |  | 
 | 12 |     src_uri = (d.getVar('SRC_URI') or "").split() | 
 | 13 |     if len(src_uri) == 0: | 
 | 14 |         return | 
 | 15 |  | 
 | 16 |     for i in src_uri: | 
 | 17 |         if xilinx_restricted_url in i: | 
 | 18 |             # force the use of premirrors only, do not attempt download from xilinx.com | 
 | 19 |             d.setVar("BB_FETCH_PREMIRRORONLY", "1") | 
 | 20 |             break | 
 | 21 |  | 
 | 22 |     try: | 
 | 23 |         fetcher = bb.fetch2.Fetch(src_uri, d) | 
 | 24 |         fetcher.download() | 
 | 25 |     except bb.fetch2.NetworkAccess as e: | 
 | 26 |         if xilinx_restricted_url in e.url: | 
 | 27 |             # fatal on access to xilinx.com restricted downloads, print the url for manual download | 
 | 28 |             bb.fatal("The following download cannot be fetched automatically. " \ | 
 | 29 |                 "Please manually download the file and place it in the 'downloads' directory (or on an available PREMIRROR).\n" \ | 
 | 30 |                 "  %s" % (e.url.split(";")[0])) | 
 | 31 |         else: | 
 | 32 |             bb.fatal(str(e)) | 
 | 33 |     except bb.fetch2.BBFetchException as e: | 
 | 34 |         bb.fatal(str(e)) | 
 | 35 | } |