-
Notifications
You must be signed in to change notification settings - Fork 5
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
Make OS package dependencies part of ocrd-tool.json #131
Comments
Good plan IMO. You have to get every MP on board though (or we need to support both ways). |
The idea sounds very good. I see some difficulties:
At the end dependency management becomes very complex. |
I don't see that with system dependencies (yet). We did have (and will have) conflicting requirements for Python packages, but this can always be dealt with by encapsulation in virtual environments. If system packages are needed in a specific version in certain OS, these could be specified in a way compatible with
They already have to describe system dependencies somehow. So far, the
Like packages not available via (standard) OS repos? I agree, but this (potential) problem already existed. I'd say provide a mechanism (download/clone and build from source) in the makefile along with
This is already covered by the proposal. (Adding more OSs can also be done by maintainers later-on.)
I agree this might be a problem: some OSs would rely on
Yes, that's another option which could help avoiding installation from source via makefile. We'd have to extend the above syntax, though: e.g. {
"version": "0.6.0",
"git_url": "https://github.com/OCR-D/ocrd_tesserocr",
"dockerhub": "ocrd/tesserocr",
"os_deps": {
"ubuntu_18_04": {
"repos": ["ppa:alex-p/tesseract-ocr"],
"packages": ["git", "python3", "python3-pip", "libtesseract-dev", "libleptonica-dev", "tesseract-ocr-eng", "tesseract-ocr"]
}
},
# [..] |
If
ocrd-tool.json
contained a list of system packages required, we'd had a uniform way to express system depencies, themake deps-ubuntu
target would be redundant and we could generate documentation from it.E.g. for
ocrd_tesserocr
:Can be queried, e.g. with jq:
sudo apt-get install -y $(jq -r '.os_deps.ubuntu_18_04[]' ~monorepo/ocrd_tesserocr/ocrd-tool.json)
We could get a list of all system packages by analyzing all the ocrd-tool.json files in our monorepo or stweil/ocrd_all to install required packages in one go.
What do you think?
The text was updated successfully, but these errors were encountered: