Closed masukomi closed 1 year ago
To preface things, META.info
support has not been supported in rakudo for years. The only reason anything still using a META.info
would have worked in rakudo is due to zef doing that hacky workaround of creating an actual META6.json
file (which rakudo could then understand). Indeed there is a 4 year old comment in zef to remove the piece of code responsible for generating that file.
At this point I'm not inclined to fix anything related to META.info
. Authors have had ample time to update their distributions, and if it hasn't happened yet its probably safe to assume the distribution itself is on its way to bitrot. Since it has presumably been broken in zef for awhile, and you're the first person I've seen run into this issue, I'm inclined to update zef to abort entirely and treat the distribution as invalid. In fact it might be worth removing those distributions from the REA ecosystem altogether unless someone e.g. moves them to raku-community-modules so the META6.json file can be added + a new release.
Just my two cents here - also reproducible on Debian / Rakudo 2021.12 , with shipped zef - https://ci.sparrowhub.io/report/2645
To preface things, META.info support has not been supported in rakudo for years.
2 thoughts:
META.info
support. The problem, as far as I can tell is that Tar.rakumod
seems to be either not extracting, or not returning the correct folder path when it does. I assume this would effect anything that needs Tar extraction.META.info
is support is going to be abandoned (seems reasonable) it would probably be best to simply remove the META.info
related code paths so that we don't have future people wasting time trying to debug things that won't be fixed. @ugexe @masukomi interesting ... the same build succeeds if using pakku instead of zef - https://ci.sparrowhub.io/report/2661
btw AFIK pakku uses libarchive
to do TAR/GZ manipulations, I am not sure what zef does, any maybe with some distros this might be a problem ... 🤔
It's not really interesting in that we know there is a bug related directly to working around the deprecation of META.info, and that I'm not inclined to fix it to continue working. It was never in question that the extraction utility (i.e. tar) was doing the wrong thing.
In all reality things with only a META.info shouldn't be install-able period, as zef has warned about failure being likely in this exact scenario for 5 years. It just so happens this workaround has finally bitrotted after all these years, which also happens to be a good opportunity to recognize that we are explicitly dropping support altogether.
Time::Duration:ver<2.00>
is currently uninstallable with the zef0.14.6
and rakudov2022.12
under macOS Ventura 13.1 when pulled from online, however if you tell zef to install the manually decompressed contents of the archive it pulled down, it installs fine.This appears to be an issue with the tar extraction.
Note that Time::Duration is not itself the problem. It's just a random one that uses
tar.gz
and has aMETA.info
instead of aMETA.json
Context
Expected Behavior
zef install "Time::Duration:ver<2.00>"
succeedsActual Behavior
zef install "Time::Duration:ver<2.00>"
complains about missing META6.json file and fails to notice theMETA.info
file.Steps to Reproduce
zef install "Time::Duration:ver<2.00>"
Clue after poking around in the source
$extracted-to.IO.add('META.info')
from line 620 in
Client.rakumod
if !$meta6-prefix and my $meta-info = $extracted-to.IO.add('META.info') and $meta-info.e
is
Note that it's
.tar.gz/META.info
When i work with the downloaded data and runtar -xzvf
on the.tar.gz
file it produces a folder namedp6-Time-Duration-master
which DOES contain theMETA.info
It seems that the
IO::Path
being reuturned by theextract
method inTar.rakumod
is incorrect as it seems like it should be ending withp6-Time-Duration-master
within
Tar.rakumod
'sextract
method the$archive-file
passed in wasand the resulting
$extract-to
wasYour Environment
raku -v
zef list --installed