On 06/10/2017 06:03 PM, Florian Pritz via arch-dev-public wrote: > Talking to some folks in #perl pointed me towards a hopefully satisfying > solution. I plan to version the architecture specific directories and > introduce a libalpm hook that checks for old directories and warns the > user by printing a list of affected AUR/cpanplus-dist-arch packages, > respectively a list of files for modules installed directly with cpan. > > The new directory layout would be > "/usr/lib/perl5/$baseversion/{core,vendor,site}_perl" with $baseversion > being "5.26" right now. Currently the layout is > "/usr/lib/perl5/{core,vendor,site}_perl". The check for old versions > would then be rather simple since it just has to look for directories > beside the current version. > > During the old discussion, Justin raised the issue that if the > directories are versioned, perl modules that are not rebuilt will just > be missing. This could lead to software not detecting them any more and > disabling a feature or using a slower module to do the job. > > One possibility to counter this would be to replace the perl executable > with a wrapper that performs the check and prints errors to stderr. > Optionally it could also exit with an error code rather than continuing > to run the script. I'm not sure if I want this or not, but I'm leaning > towards a yes since exiting will make the error more difficult to miss. I kind of feel like users who do the wrong thing should not be catered to. That being said, using a perl directory layout that causes non-rebuilt packages to simply go missing from the perl installation seems like an *excellent* tradeoff of harmless while providing useful functionality. It seems to work well for python, too. Hooks to warn people when they do the wrong thing seem ugly, but I can't really claim to be extremely bothered if it is as lightweight as a check for existing files/directories, I assume running whenever the perl package is updated... But providing wrapper scripts that hijack the perl binary every time you try to do anything that involves perl is a *terrible idea*, and regardless, if users don't pay attention to pacman output they deserve everything that happens to them. Paying attention to pacman output is non-optional in Arch, last I checked. -- Eli Schwartz
Attachment:
signature.asc
Description: OpenPGP digital signature