-
Notifications
You must be signed in to change notification settings - Fork 7
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
extend manifest.toml [resources.apt] section to allow _interactive_ installation of dependencies #2377
Comments
Another question (that might need its own new issue): If more than one app does pull in a dependency like couchdb in the example how do we decide on the global configuration of the database? On apps-developer someone already mentioned that the situation might be similar with mongodb: not included in core, but probably needed by more than one app in the future (or already). |
Looked through the yunohost-apps org to find the apps using couchdb and opened an issue on them. |
Another example with OnlyOffice:
In this instance, we need to have the port, database, and JWT variables set before running the debconf.
However, we need to address some kind of resource priority to establish the variables before running any scripts from the other resources, and to make sure we do not generate circular dependencies in the manifest. |
Good point. You're right. For flohmarkt_ynh couchdb installation I'd need to generate a password and cookie first, also. Maybe we just should accept it to be o.k. to define an additional repository in manifest.toml and a dependency for a package from that repository and allow some helper function to install the package in the scripts from an already defined repository (without criticising that from linter). The 'install package from in manifest.toml defined repository' function should only offer to install packages that are also defined as a dependency in manifest.toml and error out if the dependency is missing in manifest.toml. I didn't dive this deep to find whether the following problem is solved already:
|
As @chri2 requested some comments, this is what I can say. Sound great to have yunohost handles installing dependencies like couchdb without needing to make a package for it. So both of them add some files in As far as I know, those are the only issues to take into consideration for dato_ynh and couchdb_ynh. |
Had just this thought: Wouldn't it be possible to automatically install a dpkg without configuring (leaving it unconfigured or using any defaults the package proposes) and leave it to the scripts to configure it later? |
When using in
manifest.toml
something like …everything will be setup as wished if
couchdb
doesn't need an interactive configuration during installation.Formerly (v1 package format I guess) this would have been done like e.g. here in
scripts/install
:The CI package_check comments this with
! Using helper ynh_install_extra_app_dependencies is deprecated when using packaging v2 ... It is replaced by: the apt source
.To get around this I'd like to see manifest.toml extended to support something like this:
Extending the configuration in this will will not alter the format of manifest.toml and keep things backward compatible.
It will offer the option to put instead of a packet name string like
"other_package"
an array into the array of packages.If an array instead of a string is found while parsing manifest.toml a new piece of code can called that in this case would not call
ynh_install_app_dependencies
and let the maintainer of the app take care of that insidescripts/install
.Another example for an array being used in the list could be something like
to actually include all the settings a new or extended
ynh_install_app_dependencies
helper should use to install the package usingDEBIAN_FRONTEND=noninteractive
.I'd love to see some discussion, alternative approaches, improvements discussed to finally end up with a let's do it this way which I would be willing to work through in my own very slow way to provide a PR.
Update: I track my flohmarkt issue here
The text was updated successfully, but these errors were encountered: