Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallel build terminates with unexpected message when wget and curl are missing #157

Open
stweil opened this issue Aug 20, 2020 · 6 comments
Labels
enhancement New feature or request

Comments

@stweil
Copy link
Collaborator

stweil commented Aug 20, 2020

Running make all -j4 on a fresh clone of ocrd_all terminated with these build messages:

configure.ac:382: installing 'config/compile'
configure.ac:86: installing 'config/config.guess'
configure.ac:86: installing 'config/config.sub'
configure.ac:27: installing 'config/install-sh'
configure.ac:27: installing 'config/missing'
Makefile.am: installing 'config/depcomp'
parallel-tests: installing 'config/test-driver'

All done.
To build the software now, do something like:

$ ./configure [--enable-debug] [...other options]

The error was caused because neither curl nor wget was installed. The related error message was hidden somewhere in the middle of the build protocol:

Makefile:641: *** found no cmdline downloader (wget/curl).  Stop.
make: *** Waiting for unfinished jobs....
@bertsky
Copy link
Collaborator

bertsky commented Aug 20, 2020

And I guess you did not run deps-ubuntu first?

I don't see the issue. This dependency has existed for quite long, and non-Ubuntu users are instructed to install these by hand in the README. And that running with -j can scatter your error messages isn't news either...

@stweil
Copy link
Collaborator Author

stweil commented Aug 20, 2020

Robert, you and I know how to do this right, and usually we are also able to find the reason for problems and fix them.

But I expect more from ocrd_all than support for experts. I think it should also work for users with less experience who also may make errors, and it should help those users to find the root cause of a problem.

That's why I test such scenarios, and here ocrd_all failed to fulfill my expectations.

Even if nobody fixes this issue it makes sense to document it, because then users can at least find it and get hints how to solve it.

@kba
Copy link
Member

kba commented Aug 20, 2020

How about a make check target to detect such problems before running make all? We could document this in the README.md and give precise error and remediation messages?

@stweil
Copy link
Collaborator Author

stweil commented Aug 20, 2020

That could be a solution, and we could even make all depend on that target. Then all preconditions would be checked (which I expect takes less than a second) before starting the large build (and failing somewhere on the way).

I am not sure whether check is not reserved for checking the result of a build, so maybe a different target name would be better, something like pre-checkor check-preconditions.

@bertsky
Copy link
Collaborator

bertsky commented Aug 20, 2020

But I expect more from ocrd_all than support for experts.

We have documented the dependencies, we have provided an automatic solution for our target platform, and documented everything again in the setup guide.

What you are asking for is an automatic solution for an unsupported platform. Why should we offer that to non-experts?

Even if nobody fixes this issue it makes sense to document it, because then users can at least find it and get hints how to solve it.

I couldn't disagree more. Either this is an issue, then it must be fixed. Otherwise it should be closed to not bloat the space with real open problems. Users must read the actual documentation, not work through bug trackers.

For the problem of supporting other platforms, there's already #56. And for possible configurations on half-supported platforms, we are already discussing #147.

How about a make check target to detect such problems before running make all?

That would reduplicate everything that make deps-ubuntu or make all tries to do. Why bind manual effort to introduce and manage a redundant level of knowledge?

@stweil
Copy link
Collaborator Author

stweil commented Aug 20, 2020

I now think that make check could be used for pre checks and post checks.

Running it before any build would check the preconditions and tell users, that a final check requires make all.
Running it after make all would check the build results.

@stweil stweil added the enhancement New feature or request label Aug 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants