'Initialize object for creating unpack, patch, build tasks
* Unpacking assumed to have no dependencies.
* Patching assumed to depend only on the unpacking.
* Build depends on packing / patching and on given dependencies
Parameters
name : str
package name
commit : str
identifier for commit to unarchive
build_cmd : str or callable
command to build after extracting
depends : str or sequence, optional
depends for build
after : str or sequence, optional
names to set build to follow after (task name depends)
patcher : None or str or callable, optional
If str, a file containing a ``-p1`` patch for the sources.  If
callable, then a rule to apply for patching. If None, don\'t patch
out_sdir : None or str, optional
subdirectory in `build_src_sdir` in which to unpack. If None, use
`name`
git_sdir : str or None, optional
directory containing git repository.  Defaults to `name`
build_src_sdir : str, optional
subdirectory in build directory into which to unpack'

def __init__(self, name, commit, build_cmd, depends=(), after=(), patcher=None, out_sdir=None, git_sdir=None, build_src_sdir='src'):

    self.name = name
    self.commit = commit
    self.build_cmd = build_cmd
    self.patcher = patcher
    if (git_sdir is None):
        git_sdir = name
    self.git_sdir = git_sdir
    self.depends = seq_to_list(depends)
    self.after = seq_to_list(after)
    self.build_src_sdir = build_src_sdir
    self.out_sdir = (name if (out_sdir is None) else out_sdir)
    self._register_instance()
