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 | } |