diff --git a/ognibuild/buildsystem.py b/ognibuild/buildsystem.py index 62ccfd9..adb0da9 100644 --- a/ognibuild/buildsystem.py +++ b/ognibuild/buildsystem.py @@ -1468,14 +1468,10 @@ class PerlBuildTiny(BuildSystem): self.setup(session, fixers) with DistCatcher([session.external_path('.')]) as dc: if self.minilla: - lines = run_with_build_fixers(session, ["minil", "dist"], fixers) # minil seems to return 0 even if it didn't produce a tarball :( - if not dc.find_files(): - match, error = find_build_failure_description(lines) - if error: - raise DetailedFailure(0, ["minil", "dist"], error) - else: - raise UnidentifiedError(0, ["minil", "dist"], lines, match) + run_with_build_fixers( + session, ["minil", "dist"], fixers, + check_success=lambda retcode, lines: bool(dc.find_files())) else: try: run_with_build_fixers(session, ["./Build", "dist"], fixers) diff --git a/ognibuild/fix_build.py b/ognibuild/fix_build.py index 90d67a2..4863375 100644 --- a/ognibuild/fix_build.py +++ b/ognibuild/fix_build.py @@ -44,14 +44,17 @@ class BuildFixer(object): return self._fix(problem, phase) -def run_detecting_problems(session: Session, args: List[str], **kwargs): +def run_detecting_problems(session: Session, args: List[str], check_success=None, **kwargs): + if check_success is None: + def check_success(retcode, contents): + return (retcode == 0) try: retcode, contents = run_with_tee(session, args, **kwargs) except FileNotFoundError: error = MissingCommand(args[0]) retcode = 1 else: - if retcode == 0: + if check_success(retcode, contents): return contents lines = "".join(contents).splitlines(False) match, error = find_build_failure_description(lines)