-
Notifications
You must be signed in to change notification settings - Fork 203
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
Backintime install script only uses python / python3 even if other versions are available #1574
Comments
Dear Tejas, thanks for your report and your feedback. First of all: We do plan to migrate to a "standard python build system" and eliminate the make system (#1575). But this will take time and currently we do not have a schedule for this.
Can you point us to the specific location please and give us a line number. I was not able to find it in
That is correct. We (as upstream) do support Python 3.8 and not older.
I think you mix up some things here. I might be mistaken but Debian and Ubuntu do not offer multiple Python versions. Am I wrong? I don't know about the other distros but...
If this really is the case then please open a ticket there. Then the "openSUSE Leap" maintainer can contact us at upstream and tell us how we could modify BIT to fit SUSEs needs. Then we can discuss if this solution will violate other rules.
That is an often misunderstanding of conda/pyenv etc. A productive system do not have multiple Python versions. Conda & Co are for testing and development environments. BIT is an end-user application intended to run on a productive system.
As I told the But be aware that we won't invest to much effort in the current build system. As you pointed out yourself a migration to modern python build system would solve all this issues. And we will migrate someday. I still work on some issues in context of that migration. |
I have just checked our files and could neither find a hard-coded The |
Great to hear, it is the right move long term.
Sorry, my mistake, my statement is inaccurate. Remove the /usr/bin. The install scripts assume that only
Yes, I'm afraid this isn't true. Parallel python installations are quite common. For example, Debian Testing at this moment offers both python3.11 and python3.12. And it is also very standard on LTS/enterprise distros like RHEL, CentOS, and openSUSE Leap/SLE.
I am the relevant openSUSE Leap package maintainer. This is my ticket. Hopefully my suggestion is clear after this discussion. We have all the required dependencies of backintime available in openSUSE Leap 15.5, including python3 > 3.6 available, but it cannot be built (without patching) because the relevant binary is not called "python3".
Productive systems really do have multiple python installs (c.f. the distro list discussed previously). Another possibility is restrictive/low privilege environments which often rely on a python version installed via conda or pyenv only for a specific user. All of these use cases will be solved automatically when moving to a setuptools-based build system, but until then I propose the quick workaround of accepting the full path to a python binary in the configure script. If you are open to implementing this, I may be able to take a look. |
Dear tgurusmwamy, About your proposed workaround: Do you want the configure script accept a path to a python binary or the entry-point-scripts (e.g. /usr/bin/backintime-qt, /usr/bin/backintime-qt_poolkit, etc) ? Did I understand you correct that you would prepare a PR for this? It might be the smartest choice because you understand better what you need. In my current understanding I see no no reason why we shouldn't accept such a solution. "Make it so." 🚀 |
FYI: We plan a new release round about 15th January. |
Related to #1316 |
I just wanted to propose to close this issue but then I saw two issues:
I think we should fix this for the upcoming release... Edit: This code is responsible for loosing the absolute path: Lines 123 to 124 in d30b9a0
Edit 2: Using the absolute path for the service helper dbus service and a relative path for the GUI and CLI may explain problems where the service helper is not working (at all)... |
As you say I agree the path should be consistent between the cli and service helper. If it's ok to make the path absolute by default everywhere all one would have to do is change this line (and for consistency, also in Lines 13 to 14 in d30b9a0
|
OK, I will provide a PR tomorrow to use absolute paths everywhere (consistently compared to the past) |
@tguruswamy Fixed with PR #1614 (if you want to review - I am not a bash guru ;-) |
The install scripts (
configure
) assume that /usr/bin/python{3} are the correct binary to use for running backintime, and error out if that version is < 3.8. On systems with multiple python versions (e.g. Red Hat Enterprise Linux, SUSE Enterprise Linux/openSUSE Leap, Debian 10, Ubuntu LTS) this means backintime cannot be installed even if an appropriate python version is available (openSUSE Leap has python36 and python311, for example). More generally it means backintime cannot be reliably managed on systems with custom python installs, such as from conda or pyenv.The install script should simply accept the full path to a python binary to be used, not only python / python3.
(Even better would be to use a standard python build system).
The text was updated successfully, but these errors were encountered: