The default include strategy is to add a star (*) wild card after all sub-packages (but not the main package).
        This strategy is compatible with py2app and bbfreeze.

        Example (From SaltStack 2014.7):

            salt
            salt.fileserver.*
            salt.modules.*
            etc...

        :param include_packages: List of package references to recurse for subpackages

def build_includes(cls, include_packages):
        """
        The default include strategy is to add a star (*) wild card after all sub-packages (but not the main package).
        This strategy is compatible with py2app and bbfreeze.

        Example (From SaltStack 2014.7):

            salt
            salt.fileserver.*
            salt.modules.*
            etc...

        :param include_packages: List of package references to recurse for subpackages
        """
        includes, package_root_paths = cls._split_packages(include_packages)
        for package_path, package_name in six.iteritems(package_root_paths):
            if re.search(r'__init__.py.*$', package_path):
                # Looks like a package.  Walk the directory and see if there are more.
                package_files = set([os.path.dirname(package_path)])
                for root, dirs, files in os.walk(os.path.dirname(package_path)):
                    if '__init__.py' in files:
                        package_files.add(root)

                if len(package_files) > 1:
                    common_prefix = os.path.commonprefix(package_files)
                    common_dir = os.path.dirname(common_prefix)
                    package_tails = set([f[len(common_dir) + len(os.sep):] for f in package_files])
                    package_names = set([tail.replace(os.sep, '.') for tail in package_tails])
                    package_names_with_star = set([pkg + '.*' if pkg != package_name else pkg for pkg in package_names])
                    includes |= package_names_with_star

                else:
                    # No sub-packages.  Just add the package name by itself.
                    includes.add(package_name)
            else:
                # Not a package.  Just add the module.
                includes.add(package_name)

        return includes