From: Denys Dmytriyenko <denys@ti.com>
To: Jacob Stiffler <j-stiffler@ti.com>
Cc: meta-ti@yoctoproject.org
Subject: Re: [PATCH v2 1/2] ti-eula-unpack: Add support for general binary installers.
Date: Thu, 19 Feb 2015 21:58:37 -0500 [thread overview]
Message-ID: <20150220025837.GH31287@edge> (raw)
In-Reply-To: <1423150109-9436-1-git-send-email-j-stiffler@ti.com>
Jake,
Can you generate this patch with -M or -Mxx where xx is the percentage of
similarities between the 2 files? I'm suspecting it will be much easier to
review the patch...
--
Denys
On Thu, Feb 05, 2015 at 10:28:28AM -0500, Jacob Stiffler wrote:
> * ti-unpack.inc has been created to allow support for general binary
> installers by creating a variable which is used to pass arbitrary
> arguments to the executable.
> * ti-eula-unpack.inc sets the default arguments to retain support for
> recipes which still use this feature.
>
> Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
> ---
> recipes-ti/includes/ti-eula-unpack.inc | 67 +-------------------------
> recipes-ti/includes/ti-unpack.inc | 83 ++++++++++++++++++++++++++++++++
> 2 files changed, 85 insertions(+), 65 deletions(-)
> create mode 100644 recipes-ti/includes/ti-unpack.inc
>
> diff --git a/recipes-ti/includes/ti-eula-unpack.inc b/recipes-ti/includes/ti-eula-unpack.inc
> index aee88f1..912cd18 100644
> --- a/recipes-ti/includes/ti-eula-unpack.inc
> +++ b/recipes-ti/includes/ti-eula-unpack.inc
> @@ -9,70 +9,7 @@
> # TI_BIN_UNPK_WDEXT - This variable extends workdir path, if user wants to put
> # the output in some internal directory
>
> -python do_unpack () {
> - bb.build.exec_func('base_do_unpack', d)
> - bb.build.exec_func('ti_bin_do_unpack', d)
> -}
> +require ../includes/ti-unpack.inc
>
> -TI_BIN_UNPK_WDEXT ?= ""
> -python ti_bin_do_unpack() {
> -
> - import os
> -
> - # InstallJammer requires 32bit version of glibc
> - lib32path = '/lib'
> - if os.path.exists('/lib64') and (os.path.islink('/lib64') or os.path.islink('/lib') or os.path.exists('/lib32')):
> - lib32path = '/lib32'
> - if not os.path.exists('%s/libc.so.6' % lib32path):
> - bb.warn("TI installer requires 32bit glibc libraries for proper operation\nrun 'yum install glibc.i686' on Fedora or 'apt-get install ia32-libs' on Ubuntu/Debian")
> -
> - localdata = bb.data.createCopy(d)
> - bb.data.update_data(localdata)
> -
> - binfile = bb.data.getVar('BINFILE', localdata)
> - binfile = bb.data.expand(binfile, localdata)
> -
> - # Change to the working directory
> - save_cwd = os.getcwd()
> - workdir = bb.data.getVar('WORKDIR', localdata)
> - workdir = bb.data.expand(workdir, localdata)
> - os.chdir(workdir)
> -
> - # Get unpack commands
> - cmd_string = bb.data.getVar('TI_BIN_UNPK_CMDS', localdata)
> - cmd_list = cmd_string.split( ":" )
> -
> - # Make the InstallJammer binary executable so we can run it
> - os.chmod(binfile, 0755)
> -
> - # Run the InstallJammer binary and accept the EULA
> - filename = "HOME=%s ./%s --mode console" % (workdir, binfile)
> -
> - # Test executable by printing installer version or help screen (--version currently broken for some installers)
> - # - this is currently broken in some IJ installers - comment out for now
> - #if os.system(filename + " --version") != 0:
> - # print "ERROR: ti-eula-unpack: failed to execute binary installer"
> - # raise bb.build.FuncFailed()
> -
> - f = os.popen(filename,'w')
> - for cmd in cmd_list:
> - if cmd == "workdir":
> - wdext = bb.data.getVar('TI_BIN_UNPK_WDEXT', localdata)
> - wdext = bb.data.expand(wdext, localdata)
> - cmd = workdir+wdext
> - f.write(cmd+'\n');
> - f.close()
> -
> - # Expand the tarball that was created if required
> - tarfile = bb.data.getVar('TARFILE', localdata)
> - if bool(tarfile) == True:
> - tarfile = bb.data.expand(tarfile, localdata)
> - tcmd = 'tar x --no-same-owner -f %s -C %s' % (tarfile, workdir)
> - if os.system(tcmd) != 0:
> - print "ERROR: ti-eula-unpack: failed to extract tarfile"
> - raise bb.build.FuncFailed()
> -
> - # Return to the previous directory
> - os.chdir(save_cwd)
> -}
> +TI_BIN_UNPK_ARGS = "--mode console"
>
> diff --git a/recipes-ti/includes/ti-unpack.inc b/recipes-ti/includes/ti-unpack.inc
> new file mode 100644
> index 0000000..c19c78c
> --- /dev/null
> +++ b/recipes-ti/includes/ti-unpack.inc
> @@ -0,0 +1,83 @@
> +# This file defines function used for unpacking the .bin file downloaded over
> +# the http.
> +# BINFILE - name of the install jammer .bin file
> +# TARFILE - name of the tar file inside the install jammer
> +# TI_BIN_UNPK_ARGS - contains the arguments to be passed to the bin file.
> +# TI_BIN_UNPK_CMDS - contains list of commands separated with colon to be
> +# passed while unpacking the bin file. The keyword
> +# workdir expands to WORKDIR and commands are appendded
> +# with '\n'. Eg. TI_BIN_UNPK_CMDS="Y:Y: qY:workdir"
> +# TI_BIN_UNPK_WDEXT - This variable extends workdir path, if user wants to put
> +# the output in some internal directory
> +
> +python do_unpack () {
> + bb.build.exec_func('base_do_unpack', d)
> + bb.build.exec_func('ti_bin_do_unpack', d)
> +}
> +
> +TI_BIN_UNPK_WDEXT ?= ""
> +python ti_bin_do_unpack() {
> +
> + import os
> +
> + # InstallJammer requires 32bit version of glibc
> + lib32path = '/lib'
> + if os.path.exists('/lib64') and (os.path.islink('/lib64') or os.path.islink('/lib') or os.path.exists('/lib32')):
> + lib32path = '/lib32'
> + if not os.path.exists('%s/libc.so.6' % lib32path):
> + bb.warn("TI installer requires 32bit glibc libraries for proper operation\nrun 'yum install glibc.i686' on Fedora or 'apt-get install ia32-libs' on Ubuntu/Debian")
> +
> + localdata = bb.data.createCopy(d)
> + bb.data.update_data(localdata)
> +
> + binfile = bb.data.getVar('BINFILE', localdata)
> + binfile = bb.data.expand(binfile, localdata)
> +
> + # Change to the working directory
> + save_cwd = os.getcwd()
> + workdir = bb.data.getVar('WORKDIR', localdata)
> + workdir = bb.data.expand(workdir, localdata)
> + os.chdir(workdir)
> +
> + # Get unpack args
> + arg_string = bb.data.getVar('TI_BIN_UNPK_ARGS', localdata)
> + arg_string = bb.data.expand(arg_string, localdata)
> +
> + # Get unpack commands
> + cmd_string = bb.data.getVar('TI_BIN_UNPK_CMDS', localdata)
> + cmd_list = cmd_string.split( ":" )
> +
> + # Make the InstallJammer binary executable so we can run it
> + os.chmod(binfile, 0755)
> +
> + # Run the InstallJammer binary and accept the EULA
> + filename = "HOME=%s ./%s %s" % (workdir, binfile, arg_string)
> +
> + # Test executable by printing installer version or help screen (--version currently broken for some installers)
> + # - this is currently broken in some IJ installers - comment out for now
> + #if os.system(filename + " --version") != 0:
> + # print "ERROR: ti-eula-unpack: failed to execute binary installer"
> + # raise bb.build.FuncFailed()
> +
> + f = os.popen(filename,'w')
> + for cmd in cmd_list:
> + if cmd == "workdir":
> + wdext = bb.data.getVar('TI_BIN_UNPK_WDEXT', localdata)
> + wdext = bb.data.expand(wdext, localdata)
> + cmd = workdir+wdext
> + f.write(cmd+'\n');
> + f.close()
> +
> + # Expand the tarball that was created if required
> + tarfile = bb.data.getVar('TARFILE', localdata)
> + if bool(tarfile) == True:
> + tarfile = bb.data.expand(tarfile, localdata)
> + tcmd = 'tar x --no-same-owner -f %s -C %s' % (tarfile, workdir)
> + if os.system(tcmd) != 0:
> + print "ERROR: ti-eula-unpack: failed to extract tarfile"
> + raise bb.build.FuncFailed()
> +
> + # Return to the previous directory
> + os.chdir(save_cwd)
> +}
> +
> --
> 1.7.9.5
>
> --
> _______________________________________________
> meta-ti mailing list
> meta-ti@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-ti
next prev parent reply other threads:[~2015-02-20 2:58 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-05 15:28 [PATCH v2 1/2] ti-eula-unpack: Add support for general binary installers Jacob Stiffler
2015-02-05 15:28 ` [PATCH v2 2/2] ti-cgt6x: Add verion 8.0.0 Jacob Stiffler
2015-02-20 17:25 ` Denys Dmytriyenko
2015-02-23 15:42 ` Stiffler, Jacob
2015-02-23 21:14 ` Denys Dmytriyenko
2015-02-24 13:26 ` Stiffler, Jacob
2015-02-24 20:33 ` Denys Dmytriyenko
2015-02-20 2:58 ` Denys Dmytriyenko [this message]
2015-02-20 15:14 ` [PATCH v2 1/2] ti-eula-unpack: Add support for general binary installers Stiffler, Jacob
2015-02-20 15:24 ` Stiffler, Jacob
2015-02-20 17:00 ` Denys Dmytriyenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150220025837.GH31287@edge \
--to=denys@ti.com \
--cc=j-stiffler@ti.com \
--cc=meta-ti@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.