def preProcess(self):
        self.pkgFilters = []
        recipe = self.recipe
        self.destdir = recipe.macros.destdir
        if self.exceptions:
            self.warn('PackageSpec does not honor exceptions')
            self.exceptions = None
        if self.inclusions:
            # would have an effect only with exceptions listed, so no warning...
            self.inclusions = None

        # userinfo and groupinfo are invariant filters, so they must come first
        for infoType in ('user', 'group'):
            infoDir = '%%(%sinfodir)s' % infoType % self.macros
            realDir = util.joinPaths(self.destdir, infoDir)
            if not os.path.isdir(realDir):
                continue
            for infoPkgName in os.listdir(realDir):
                pkgPath = util.joinPaths(infoDir, infoPkgName)
                self.pkgFilters.append( \
                        filter.Filter(pkgPath, self.macros,
                                      name = 'info-%s' % infoPkgName))
        # extras need to come before derived so that derived packages
        # can change the package to which a file is assigned
        for filteritem in itertools.chain(self.extraFilters,
                                          self.derivedFilters):
            if not isinstance(filteritem, (filter.Filter, filter.PathSet)):
                name = filteritem[0] % self.macros
                if not trove.troveNameIsValid(name):
                    self.error('%s is not a valid package name', name)

                args, kwargs = self.filterExpArgs(filteritem[1:], name=name)
                self.pkgFilters.append(filter.Filter(*args, **kwargs))
            else:
                self.pkgFilters.append(filteritem)

        # by default, everything that hasn't matched a pattern in the
        # main package filter goes in the package named recipe.name
        self.pkgFilters.append(filter.Filter('.*', self.macros, name=recipe.name))

        # OK, all the filters exist, build an autopackage object that
        # knows about them
        recipe.autopkg = buildpackage.AutoBuildPackage(
            self.pkgFilters, self.compFilters, recipe)
        self.autopkg = recipe.autopkg