# This class is setup to override the default fetching for the target recipe. # When fetching it forces PREMIRROR only fetching so that no attempts are made # to fetch the Xilinx downloads that are restricted to authenticated users only. # # The purpose of this class is to allow for automatation with pre-downloaded # content or content that is available with curated/user defined pre-mirrors # and or pre-populated downloads/ directories. python do_fetch() { xilinx_restricted_url = "xilinx.com/member/forms/download" src_uri = (d.getVar('SRC_URI') or "").split() if len(src_uri) == 0: return for i in src_uri: if xilinx_restricted_url in i: # force the use of premirrors only, do not attempt download from xilinx.com d.setVar("BB_FETCH_PREMIRRORONLY", "1") break try: fetcher = bb.fetch2.Fetch(src_uri, d) fetcher.download() except bb.fetch2.NetworkAccess as e: if xilinx_restricted_url in e.url: # fatal on access to xilinx.com restricted downloads, print the url for manual download bb.fatal("The following download cannot be fetched automatically. " \ "Please manually download the file and place it in the 'downloads' directory (or on an available PREMIRROR).\n" \ " %s" % (e.url.split(";")[0])) else: bb.fatal(str(e)) except bb.fetch2.BBFetchException as e: bb.fatal(str(e)) }