From patchwork Wed Jul 18 18:14:04 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1/1] bitbake wget fetcher: add parameter: downloadfilename Date: Wed, 18 Jul 2012 18:14:04 -0000 From: Nitin A Kamble X-Patchwork-Id: 32663 Message-Id: <26a85a65e78c3cdcd366b9314847ad866faf44ff.1342635153.git.nitin.a.kamble@intel.com> To: Openembedded-core@lists.openembedded.org From: Nitin A Kamble this allows wget fetcher to store the downloaded file in a specified custom filename in ${DL_DIR} Exmaple: SRC_URI = "https://edc.intel.com/Download.aspx?id=6190;downloadfilename=LIN_IEMGD_1_14_GOLD_2443.tgz" This fixes bug: [YOCTO #2570] Signed-off-by: Nitin A Kamble --- bitbake/lib/bb/fetch2/__init__.py | 4 ++++ bitbake/lib/bb/fetch2/wget.py | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletions(-) diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index fa963be..4cb1546 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py @@ -762,6 +762,10 @@ class FetchData(object): if hasattr(self.method, "urldata_init"): self.method.urldata_init(self, d) + if "downloadfilename" in self.parm: + # if user sets downloadfilename, use it instead. + self.basename = self.parm["downloadfilename"] + if "localpath" in self.parm: # if user sets localpath for file, use it instead. self.localpath = self.parm["localpath"] diff --git a/bitbake/lib/bb/fetch2/wget.py b/bitbake/lib/bb/fetch2/wget.py index b784afb..9affa0d 100644 --- a/bitbake/lib/bb/fetch2/wget.py +++ b/bitbake/lib/bb/fetch2/wget.py @@ -50,7 +50,11 @@ class Wget(FetchMethod): def urldata_init(self, ud, d): - ud.basename = os.path.basename(ud.path) + if 'downloadfilename' in ud.parm: + ud.basename = ud.parm['downloadfilename'] + else: + ud.basename = os.path.basename(ud.path) + ud.localfile = data.expand(urllib.unquote(ud.basename), d) def download(self, uri, ud, d, checkonly = False): @@ -58,6 +62,9 @@ class Wget(FetchMethod): basecmd = d.getVar("FETCHCMD_wget", True) or "/usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate" + if 'downloadfilename' in ud.parm: + basecmd += " -O ${DL_DIR}/" + ud.localfile + if checkonly: fetchcmd = d.getVar("CHECKCOMMAND_wget", True) or d.expand(basecmd + " -c -P ${DL_DIR} '${URI}'") elif os.path.exists(ud.localpath):