On 2019/10/31 03:55, Dominique Leuenberger / DimStar wrote:
huh?
A package that installs files into /usr/lib/perl5/perl_vendor/5.28.1 only works together with perl 5.28.1 - so this package by its pure nature requires perl 5.28.1 - which is exactly what the perl_requires macro adds here.
Anything else is nonsense and makes the package broken whenever the perl version changes.
---- I think I'm not making myself clear. When a package is generated for perl 5.28.1, the rpm will include instructions to install it under the perl-lib dir under directory 5.28.1. That would still remain. If you install perl 5.28.2, the new perl won't look in 5.28.1. That won't change. What is happening now is that when you create the package in ADDITION to what directory it is installing into (5.28.1). The suse build process requires that the rpm also say it is only for 5.28.1, AND if there is any binary, the binary _may_ be marked to only look for a matching perl version of 5.28.1. It is marked in 3 separate places. The first thing I point out is that 1 is enough -- the fact that it is installed in 5.28.1 means a perl built to only look in 5.28.2 won't see it -- so it is pointless to put the requirement in the rpm and in the binary. It's like the old saying about someone having 2 clocks. The person with 1 clock always knows what time it is, but the person with 2 clocks may never know what time it is (if the 2 clocks differ by 1 second a day, which is correct?) Say that the clock is reset automatically, once a week, because the noon bell on Saturdays has an extra tone that clocks pick up and reset themselves, but only on that day. The person with 1 clock will tend to assume it is correct (unless it is greatly out of sync!). But the person with 2 clocks will wonder which is correct even if they vary by 1 second a day, only because they have 2 different time versions. It could be worse if someone had 3 different time versions. If you only have 1 version then there will be no confusion unless it is very broken. But if you have 3, you have 2 chances for one of the versions to not be set the same and either one being different will cause the program not to run (even if they were compatible!) If you only had 1 version, then the ultimate test would be whether or not the program ran -- even if the version was *incorrect*, it's still very possible -- even _likely_ if it is pure perl (no binary) that the program will run. Furthermore, the perl authors say that 5.28.2 will normally be compatible with 5.28.1 even if there is binary in the module. Perl can be configured where to look for its libraries -- if perl was configured to only look for modules in 5.28, and modules installed in lib/5.28 (no matter if they were 5.28.1 or 5.28.2) then it wouldn't matter -- both would run. However, if, instead, some module was configured with 3 digits, it would fail because the digits didn't match -- even though it was compatible. Indeed, as others have said, python only look for version >= 3.5. Not only will both 3.5.1 and 3.5.2 both work, but so would 3.6. Perl modules can be the same way, at *least* within the 3rd point-level version number. I hope I did better in explaining what I was talking about (?). -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org