-
-
Notifications
You must be signed in to change notification settings - Fork 267
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
The "PHP 7.1 install from hell" on Debian 9 #459
Comments
Hi @hostingnuggets, have you tested against our master branch or the latest release as well? I think on debian 9 we currently only support the default php version. |
@bastelfreak The debian repo code https://github.com/voxpupuli/puppet-php/blob/master/manifests/repo/debian.pp has not changed since 3 months so there is no point for me testing with the master branch if the relevant code has not been fixed... It would be nice to see in the documentation which version of PHP is supported by which distribution. But then on Debian 9 if you only support the default PHP version why is there code to support the sury repository? or is that for Debian 8 only? |
so I took a look at the code in the puppet-php/manifests/repo/debian.pp Line 89 in 4d99a12
I'm not sure why that fails for you, it might be related to the EOL puppet version. Can you please test the latest release with a modern puppet release? 4.10 is the oldest version we support and puppet 5 is recommended. |
@bastelfreak as far as I know puppet version 4.8.2 is not EOL yet. Could you please cite the source where you base the fact that puppet 4.8.2 would already be EOL? Unfortunately I am using the latest Debian 9.5 release which ships with puppet 4.8.2 so I have to use that specific version by policy. Do you realize that by limiting the compatibility of this module to puppet version >= 4.10.0 you are excluding every Debian 9 users? In my opinion you should consider removing Debian 8 and Debian 9 support from the supported operating systems in this module's |
We don't exclude Debian 9 users. Puppetlabs provides apt repos: https://apt.puppetlabs.com/ |
@bastelfreak well you are at least excluding me because for policy reasons I must use the official packages from my Linux distribution, in my case Puppet 4.8.2 from the Debian 9 official APT package repository. Anyway let's not focus on my specific puppet version because even if I would have puppet version 5 that will not automagically fix https://github.com/voxpupuli/puppet-php/blob/master/manifests/repo/debian.pp This manifest file is in my opinion missing good logic and does not work properly as you can end up with cases such as having PHP 5.6 from dotdeb installed at the same time as with PHP 7.1 (or another version). See my issue #458 for more details. Based on other Debian issues I have the feeling here that this puppet module is neglecting Debian users. It would be nice if some improvement could be done here. Also please do not exclude people just because they have to use soon-to-be-EOL packages. Thank you. |
So a few things here: We do not neglect any operating system. All contributors do this as a hobby and we try our best to achieve a high quality of all modules. There is a test that proves that this module works on debian 9 with the default php version: https://github.com/voxpupuli/puppet-php/blob/master/spec/acceptance/php_spec.rb There are always edges cases on each platform that are not tested or not documented or simply do not work. This is an open source project and we always want to improve our modules. Patches are always highly appreciated. |
@bastelfreak thank you for taking time to explain. You mention here again that as far as you know puppet 4.8.x is deprecated but I can not find anywhere any information which clearly states that it is deprecated. Could you please state the source (URL) where you base the fact that puppet 4.8.x is deprecated? |
I disagree with this. It will run on Debian 9 but we also specify you need Puppet 4.10.0. We have a debate on this in https://groups.io/g/voxpupuli/topic/get_rid_of_puppet4/15908402?p=,,,20,0,0,0::recentpostdate%2Fsticky,,,20,2,0,15908402 and it was decided that we as a group only want to support 4.10.0 and higher. This isn't to exclude users but simply a matter of time and effort. We are all volunteers and have limited time available. A smaller testing matrix helps with that. As it is now I think we already have plenty of open issues and PRs. If this is important to you, I welcome you to become a member. We can look at a way to support your environment while not taking up too much time of other members. For example by running acceptance tests on Debian 9 with OS packages. IMHO we can decide this on a per-module basis. The way I look at Open Source is that it allows us to fix our issues but that does mean you often have to fix it yourself. |
@ekohl I would really like to see this module support Debian 9 out-of-the-box with the Debian 9 included puppet package. So as I am no developer I can contribute differently and would be pleased to set you up a VPS with Debian 9 including Debian 9 with its own official puppet 4.8.2 package where you could run your acceptance tests in order to make things work out-of-the-box with Debian 9. |
After a lot of digging around:
As far as I know the separate support overview for FOSS components got removed. Besides my work for Vox Pupuli, I am a DevOps engineer at a big hosting company with several thousand servers. From time to time different operating system maintainer claim to support a specific version of a software and promise patches. But where are they coming from, when upsteam simply does not deliver such patches? In my personal opinion, I cannot rely on those packages for my infrastructure. I also understand that other DevOps/Ops people have a different view on this. Vox Pupuli cannot test each Puppet/facter/ruby version that any operating system claims to support. The testmatrix would we way too huge, somebody would need to pay the CI resources for this and we would need more manpower to handle all the edge cases. And for what purpose? I do not think that Puppet Inc would fix bugs in EOL software and I, as a maintainer, want to move on with the codebase and use the new features of the language. We deliver software to users and I still do not think that we should encourage them to run legacy/outdated software. We are always happy to give tips/help with the upgrade of legacy infrastructures into a more modern and up2date environment. |
The problem isn't access to these environments. We can easily use containers and I'm sure there's some way to get beaker to use OS packages. Travis runs docker containers. The problem is time. We're all volunteers with limited time available that maintain the parts that are important to us. For most it's because the company that pays their salary depends on parts of it. At least for me I'm involved because our product includes VP modules. To ensure they suit our use case, I invest time in those modules. I spend time on some modules we don't use to help other maintainers. This means in the future they are more likely to make time to help me. That's my view of how open source works. In open source people the rule of thumb is that if something is important to you, you write the code. If you don't know how to write it, you invest time to learn it. Companies have the option to find a vendor that supports their needs. Other ways are consultants, hiring new employees with the knowledge or educating an existing employees. Remember that the alternative is not doing it at all or writing it all in house. Open source is usually a much cheaper solution, but it's not free (as in money). |
@hostingnuggets as @ekohl and @bastelfreak have already mentioned. We are all volunteers here with separate jobs and responsibilities to take care of. As such, we don't have the manpower to cover every potential release of puppet that someone may be on, hence we limit our support range to the minimum version supported by the latest supported point release of Puppet Enterprise (which is currently >= 4.10.0). If we start supporting Debian 9's Puppet version, then on principal we would also have to support the versions of puppet included in Debian 8, CentOS/RHEL/OEL 6 and 7, Ubuntu 16.04 and 18.04, etc. That is not viable and most of the listed distributions come packaged with an EoL'd version of Puppet anyway. Our recommended pattern for supported puppet versions it to stick with the Officially supported installation method from the Puppet project, which is their repositories. I know distribution purists (myself included) prefer to use system packages, but the OS repos simply don't keep up with software these days and are all over the place with their package selection that we simply cannot support installation methods outside of the recommended installation paths. I know this sucks and may not be ideal, I am truly sorry, however this is no different than how other Open Source projects (like Gitlab and CentOS for example) operate. If you need extended support on software, there's always the paid versions (Gitlab EE and RHEL for the above examples). We are more than willing to work with you on the process of moving to a newer version of Puppet or help point you to a working version of the PHP module for your puppet version. Feel free to fork and maintain yourself as well (we do take PRs). We just can't increase our support range for a single distribution. |
Another option is to ask Debian to include a newer version (for example 4.10.10 or even a 5.x version) in stretch-backports. |
Thank you all for the interesting discussion around this problem and I understand the point that you should not support EOL versions. I was just hoping that this puppet module could support Debian 9 out-of-the-box by not having to install packages from an external/foreign apt source repository. |
As a reply to #459 (comment), I'm also running the old version of Puppet 4.8.2 on my machines (No reason for me to update to 4.10, I'm evaluating a jump to 5x but I'm using Foreman so it's a "process"). I don't have that fact on any of my machines. What I do have that matches is |
We could even remove the line since puppetlabs-apt defaults to that value (though by the old Personally I've been very reluctant to change these facts where the old ones sufficed exactly for the compatibility. In some places the new facts are superior (structured networking facts are much easier to parse), other than that I've been sticking to old facts. |
@ekohl I think this will have to come down to a discussions within the community. I was under the impression that old-style facts are deprecated and could be removed at any moment if Puppet so chooses to do so. Our immediate concern is to maintain compatibility with our supported version range. I personally am against reverting code to support unsupported versions. It encourages bad practice, regardless of the reality of a organization's situation. We are short-handed as it is and adding another thing we have to watch for (The eventual removal of Facter 2.x facts) is unnecessary burden for a handful of users. |
Passing in a variable when the default suffices and actually breaks support for some users helps nobody. #494 is untested, but it should be more compatible by relying on puppetlabs-apt for more features. |
With #494 we've merged improvements. With that and the above discussion I think we can close this. It's clear we don't want to officially support Puppet 4.8.2 on Debian but if there are concrete issues with an easy middle ground or (maintainable) patches then we're happy to accept them. In this case the very concrete suggestion from @RedChops made it easy. It's a great example of the open source approach mentioned earlier. Looking back, #459 (comment) should have been enough of a hint already. |
@ekohl finally some good sense, thank you very much for supporting Debian with out-of-the-box puppet version 4.8.x 👍 |
A subtle but important difference: It is compatible, but not supported. There is no guarantee that it will keep working in the future because there are no tests for it. |
Affected Puppet, Ruby, OS and module versions/distributions
How to reproduce (e.g Puppet code you use)
manifest:
node hiera YAML file:
What are you seeing
What behaviour did you expect instead
PHP version 7.1 to be installed without any issues/errors/warnings from the sury.org Debian APT repository.
Output log
See above in "What are you seeing"
Any additional information you'd like to impart
I can't seem to find any actual documentation on how to install a different version of PHP on Debian 9.
The text was updated successfully, but these errors were encountered: