I had used the "-M" option. I will try with "-Mxx". -----Original Message----- From: Dmytriyenko, Denys Sent: Thursday, February 19, 2015 9:59 PM To: Stiffler, Jacob Cc: meta-ti@yoctoproject.org Subject: Re: [meta-ti] [PATCH v2 1/2] ti-eula-unpack: Add support for general binary installers.
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-stiff...@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 -- _______________________________________________ meta-ti mailing list meta-ti@yoctoproject.org https://lists.yoctoproject.org/listinfo/meta-ti