Comments (12)
There seems to be something off with the way rakudo handles this specific exception. I did not notice this failure earlier due to the fact I ran a golfed piece of code, which apparently never ran long enough to have DESTROY
called. The fact it never happens on Linux makes it seem like a rakudo bug, but a workaround has been implemented.
Fixed in 4b7e052
Note: You will need to uninstall zef and then reinstall it. The best way to uninstall is to cd
to the zef source code directory you would use to install from, and doing perl6 -Ilib bin/zef -v uninstall zef
. Note not to use zef uninstall zef
because on Windows it won't be able to delete the zef files while zef is running (running it from the cloned directory uses different file locations). This is the same reason you can't --force
install zef if zef is already installed on Windows (rakudo related bug).
Thanks for the report @Odud !
from zef.
Thanks for this - I reinstalled zef, and the warnings have gone away. But I'm still getting a failure as below
C:\Users\langb>zef install IO::Socket::SSL
===> Searching for: IO::Socket::SSL
===> Searching for missing dependencies: OpenSSL
===> Fetching: IO::Socket::SSL
Failure fetching to: False
in code at sources\1DC0BAA246D0774E7EB4F5119C6168E0D8266EFA (Zef::Client) line 170
in method fetch at sources\1DC0BAA246D0774E7EB4F5119C6168E0D8266EFA (Zef::Client) line 139
in sub MAIN at C:\rakudo\share\perl6\site\sources\A9948E7371E0EB9AFDF1EEEB07B52A1B75537C31 (Zef::CLI) line 147
in block at C:\rakudo\share\perl6\site/resources/3DD33EF601FD300095284AE7C24B770BAADAF32E line 1
from zef.
Interesting... can you post the output from the following?
(first: set ZEF_PLUGIN_DEBUG=1
)
zef --debug install IO::Socket::SSL
from zef.
I believe I know what the problem is. Zef can fetch without requiring git
. This can be seen when zef fetches the project listing for p6c for the first time as it will fall back to a non-git mirror. The problem is that the package list for p6c is exclusively git
based urls, as each project does not supply a .zip mirror.
I am testing a branch, git2zip
, which may be able to allow a totally git
-less experience and should solve this issue.
from zef.
Hi Nick,
I did a quick test running as administrator this morning and it worked
fine, so maybe it is some kind of permissions issue? I will run with the
debug option later and send the output.
Pete Barlow
On 11 May 2016 at 00:57, Nick Logan [email protected] wrote:
I believe I know what the problem is. Zef can fetch without requiring git.
This can be seen when zef fetches the project listing for p6c for the first
time as it will fall back to a non-git mirror. The problem is that the
package list for p6c is exclusively git based urls, as each project does
not supply a .zip mirror.I am testing a branch, git2zip, which may be able to allow a totally git-less
experience and should solve this issue.—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#89 (comment)
from zef.
Here's the output you requested. I ran zef uninstall IO::Socket::SSL as
administrator previous to this
C:\Users\langb>zef --debug install IO::Socket::SSL
===> Searching for: IO::Socket::SSL
[Plugin - cached] Checking: Zef::ContentStorage::LocalCache
Plugin - cached Plugin loaded successful
Plugin - cached Plugin is now usable: Zef::ContentStorage::LocalCache
[Plugin - p6c] Checking: Zef::ContentStorage::P6C
Plugin - p6c Plugin loaded successful
Plugin - p6c Plugin is now usable: Zef::ContentStorage::P6C
[Plugin - cpan] Checking: Zef::ContentStorage::CPAN
Plugin - cpan Not enabled
===> Found: IO::Socket::SSL:auth('github:sergot')
===> Dependencies: OpenSSL
===> Fetching: IO::Socket::SSL
[Plugin - git] Checking: Zef::Shell::git
Plugin - git Plugin loaded successful
Plugin - git Probing successful
Plugin - git Plugin is now usable: Zef::Shell::git
Fetching with plugin: Zef::Shell::git+{<anon|106869504>}
===> Fetched: IO::Socket::SSL to C:\Users\langb.zef\tmp\io-socket-ssl.git
===> Extracting: IO::Socket::SSL
[Plugin - git] Checking: Zef::Shell::git
Plugin - git Plugin loaded successful
Plugin - git Probing successful
Plugin - git Plugin is now usable: Zef::Shell::git
Extracting with plugin: Zef::Shell::git+{<anon|106869504>}
===> Extracted: IO::Socket::SSL to
C:\Users\langb.zef\store\io-socket-ssl.git\062724b66d7d7220e94d8da6321ba109fab911e5
===> Filtering: IO::Socket::SSL:auth('github:sergot')
===> Filtering [OK] for IO::Socket::SSL:auth('github:sergot')
===> # SKIP: No Build.pm for IO::Socket::SSL:auth('github:sergot')
===> Testing: IO::Socket::SSL:auth('github:sergot')
[Plugin - prove] Checking: Zef::Shell::prove
Plugin - prove Plugin loaded successful
Plugin - prove Probing successful
Plugin - prove Plugin is now usable: Zef::Shell::prove
Testing with plugin: Zef::Shell::prove+{<anon|106869504>}
t/01-basic.t ..
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 2/2 subtests
Test Summary Report
t/01-basic.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 2 tests but ran 0.
Files=1, Tests=0, 51 wallclock secs ( 0.03 usr + 0.03 sys = 0.06 CPU)
Result: FAIL
Cannot locate native library
'C:\rakudo\share\perl6\site\resources\5AC8B407FC19FF40B94E90605A758D6AF872EF83.dll':
error 0x7f
in method setup at sources\24DD121B5B4774C04A7084827BFAD92199756E03
(NativeCall) line 279
in method CALL-ME at sources\24DD121B5B4774C04A7084827BFAD92199756E03
(NativeCall) line 290
in method new at sources\6A1EAA8F4604152BF1E7B1F71E25F82D2C1FA912
(OpenSSL) line 33
in method initialize at
C:\Users\langb.zef\store\io-socket-ssl.git\062724b66d7d7220e94d8da6321ba109fab911e5\lib\IO\Socket\SSL.pm6
(IO::Socket::SSL) line 67
in method new at
C:\Users\langb.zef\store\io-socket-ssl.git\062724b66d7d7220e94d8da6321ba109fab911e5\lib\IO\Socket\SSL.pm6
(IO::Socket::SSL) line 58
in block at t/01-basic.t line 7
===> Testing [FAIL]: IO::Socket::SSL:auth('github:sergot')
Aborting due to test failure: IO::Socket::SSL:auth('github:sergot') (use
--force to override)
in code at sources\1DC0BAA246D0774E7EB4F5119C6168E0D8266EFA
(Zef::Client) line 285
in method test at sources\1DC0BAA246D0774E7EB4F5119C6168E0D8266EFA
(Zef::Client) line 264
in code at sources\1DC0BAA246D0774E7EB4F5119C6168E0D8266EFA
(Zef::Client) line 433
in method install at sources\1DC0BAA246D0774E7EB4F5119C6168E0D8266EFA
(Zef::Client) line 430
in sub MAIN at
C:\rakudo\share\perl6\site\sources\A9948E7371E0EB9AFDF1EEEB07B52A1B75537C31
(Zef::CLI) line 150
in block at
C:\rakudo\share\perl6\site/resources/3DD33EF601FD300095284AE7C24B770BAADAF32E
line 1
C:\Users\langb>
Pete Barlow
On 11 May 2016 at 07:07, Pete Barlow [email protected] wrote:
Hi Nick,
I did a quick test running as administrator this morning and it worked
fine, so maybe it is some kind of permissions issue? I will run with the
debug option later and send the output.Pete Barlow
On 11 May 2016 at 00:57, Nick Logan [email protected] wrote:
I believe I know what the problem is. Zef can fetch without requiring git.
This can be seen when zef fetches the project listing for p6c for the first
time as it will fall back to a non-git mirror. The problem is that the
package list for p6c is exclusively git based urls, as each project does
not supply a .zip mirror.I am testing a branch, git2zip, which may be able to allow a totally git-less
experience and should solve this issue.—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#89 (comment)
from zef.
The good news is I know how you can get this to work.
For some reason installing IO::Socket::SSL
will fail with the same error you posted if OpenSSL
is already installed. I'm not exactly sure what this means yet other than its not a zef
error. If you zef uninstall IO::Socket::SSL
zef uninstall OpenSSL
, doing zef install IO::Socket::SSL
should work for you. OpenSSL
still gets installed as a dependency; The problem has something to do with linking against the already installed dll files, but i'm not sure what. Maybe its because of how rakudo renames them?
The earlier problem with Fetch
is probably a permissions or git problem. One possibility is a run-time call to rakudos mkdir
sets the permissions incorrect. Another is the git clone
itself results in incorrect permissions. This is corroborated by your initial success with running as administrator, which may have allowed the neccesary directories to be created in $*HOME/.zef
or <rakudo dir>/share/site
. Those directories would have been left even after uninstalling, so later when you ran as non-administrator the directories were already available.
from zef.
Thanks Nick,
I will try things tonight. I realised that there may have been some files
relating to IO::Socket:SSL lying around as I had failures installing that
with Panda (this was an issue with that module which has now been fixed).
So I think I will pick something that I know I haven't tried to install
before as it might make things clearer.
On 11 May 2016 8:12 pm, "Nick Logan" [email protected] wrote:
The good news is I know how you can get this to work.
For some reason installing IO::Socket::SSL will fail with the same error
you posted if OpenSSL is already installed. I'm not exactly sure what
this means yet other than its not a zef error. If you zef uninstall
IO::Socket::SSL zef uninstall OpenSSL, doing zef install IO::Socket::SSL
should work for you. OpenSSL still gets installed as a dependency; The
problem has something to do with linking against the already installed dll
files, but i'm not sure what. Maybe its because of how rakudo renames them?The earlier problem with Fetch is probably a permissions or git problem.
One possibility is a run-time call to rakudos mkdir sets the permissions
incorrect. Another is the git clone itself results in incorrect
permissions. This is corroborated by your initial success with running as
administrator, which may have allowed the neccesary directories to be
created in $*HOME/.zef or /share/site. Those directories
would have been left even after uninstalling, so later when you ran as
non-administrator the directories were already available.—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#89 (comment)
from zef.
I've updated OpenSSL
to fix the cannot locate native library
errors. Now you can install OpenSSL
followed by IO::Socket::SSL
, or uninstall+reinstall IO::Socket::SSL
from zef.
Hi Nick,
I'm now very confused, everything seemed to work (see below). But there is
no sign of the modules in C:\rakudo\share\perl6\site or any of its
sub-directories. I also tried the above running as admin, same result. Am I
correct in assuming this where the installs should go?
C:\Users\langb>zef --verbose install IO::Socket::SSL
===> Searching for: IO::Socket::SSL
===> Found: IO::Socket::SSL:auth('github:sergot')
===> Searching for missing dependencies: OpenSSL
===> Found dependencies: OpenSSL:ver('0.1.0'):auth('github:sergot')
===> Fetching: OpenSSL
===> Fetched: OpenSSL to C:\Users\langb.zef\tmp\openssl.git
===> Testing: OpenSSL:ver('0.1.2'):auth('github:sergot')
t/01-basic.t ........... ok
t/02-socket.t .......... ok
t/03-rsa.t ............. ok
t/04-crypt.t ........... ok
t/10-client-ca-file.t .. ok
All tests successful.
Files=5, Tests=34, 106 wallclock secs ( 0.08 usr + 0.03 sys = 0.11 CPU)
Result: PASS
Got a redirect, following...
===> Testing [OK] for OpenSSL:ver('0.1.2'):auth('github:sergot')
===> Testing: IO::Socket::SSL:auth('github:sergot')
t/01-basic.t .. ok
All tests successful.
Files=1, Tests=2, 49 wallclock secs ( 0.05 usr + 0.03 sys = 0.08 CPU)
Result: PASS
===> Testing [OK] for IO::Socket::SSL:auth('github:sergot')
===> Installing: OpenSSL:ver('0.1.2'):auth('github:sergot')
===> Install [OK] for OpenSSL:ver('0.1.2'):auth('github:sergot')
===> Installing: IO::Socket::SSL:auth('github:sergot')
===> Install [OK] for IO::Socket::SSL:auth('github:sergot')
C:\Users\langb>zef --installed list
===> Found via C:\rakudo\share\perl6\site
OpenSSL:ver('0.1.2'):auth('github:sergot')
Template::Mustache:auth('github:softmoth')
SVG::Plot
Terminal::ANSIColor
URI:ver('0.1.1')
DBIish
JSON::Fast:ver('0.3')
File::Temp
Encode:ver('0.0.2'):auth('github:sergot')
NativeHelpers::Blob:ver('0.1.8'):auth('github:salortiz')
HTML::Restrict:ver('0.1')
Linenoise:ver('0.1.0'):auth('Rob Hoelz')
Grammar::Debugger
HTML::Parser::XML:ver('0.1.0'):auth('github:tony-o')
panda:ver('0.1')
Shell::Command
panda:ver('2016.02')
DBIish:ver('0.5.6')
p6doc
JSON::Fast:ver('0.4')
Data::Dump:ver('0.0.1')
HTTP::UserAgent:ver('1.1.16'):auth('github:sergot')
Find::Bundled:ver('1.0.0'):auth('github:retupmoca')
XML
File::Find:ver('0.1')
LWP::Simple:ver('0.086'):auth('Cosimo Streppone')
JSON::RPC:ver('0.17.1'):auth('Pawel Pabian')
LibraryMake:ver('1.0.0'):auth('github:retupmoca')
zef:auth('github:ugexe')
File::Temp
Debugger::UI::CommandLine
MIME::Base64:ver('1.2'):auth('github:retupmoca')
DateTime::Parse:ver('0.0.1')
Bailador
IO::Socket::SSL:auth('github:sergot')
Digest:ver('0.3.4'):auth('Lucien Grondin')
HTTP::Easy
Template::Mojo:ver('0.1')
PSGI
Grammar::Profiler::Simple:ver('0.01'):auth('Jonathan Scott Duff')
JSON::Tiny
SVG
Native::Resources:ver('0.1.0'):auth('Rob Hoelz')
File::Directory::Tree:auth('labster')
String::CRC32:ver('0.04'):auth('Cosimo Streppone')
HTTP::Status
IO::Capture::Simple
Test::Mock
Pod::To::HTML
Crypt::RC4:ver('0.0.2')
HTML::Entity:auth('Alexander Moquin')
===> Found via C:\rakudo\share\perl6
CORE:ver('6.c'):auth('perl')
Pete Barlow
On 12 May 2016 at 19:23, Nick Logan [email protected] wrote:
I've updated OpenSSL to fix the cannot locate native library errors. Now
you can install OpenSSL followed by IO::Socket::SSL, or
uninstall+reinstall IO::Socket::SSL—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#89 (comment)
from zef.
They are there, but when a module gets installed it no longer retains its original layout or file names. Every file name gets turned into a sha1
identity, and all such files are put into the same directory (Again, this is rakudo itself that does this). If you look in share/perl6/site/dist
each file represents the meta data for a distribution. You can open these files and look at the files
and provides
sections to see what sha1
filename the original file names are now mapped to.
panda
might store its cache there under some directory, but those files are not used except for installing files into the format listed above. zef
simply stores its cache in $*HOME/.zef
by default but can be configured to use other locations (see resources/config.json
)
from zef.
Nick,
Thanks for your explanation it all makes sense and I think that zef seems
to working fine now. What was confusing me was that I had a directory lib
under c:\rakudo\share\perl6\site and I was expecting to see the new modules
appearing in there - I think this was a hangover from when I first
installed 2015.09. Having done a clean install of 2016.04 that's no longer
there.
Pete Barlow
On 12 May 2016 at 22:28, Nick Logan [email protected] wrote:
They are there, but when a module gets installed it no longer retains its
original layout or file names. Every file name gets turned into a sha1
identity, and all such files are put into the same directory (Again, this
is rakudo itself that does this). If you look in share/perl6/site/dist
each file represents the meta data for a distribution. You can open these
files and look at the files and provides sections to see what sha1
filename the original file names are now mapped to.panda might store its cache there under some directory, but those files
are not used except for installing files into the format listed above. zef
simply stores its cache in $*HOME/.zef by default but can be configured
to use other locations (see resources/config.json)—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#89 (comment)
from zef.
Related Issues (20)
- Feature request: Have option "--serial" be the default for commands "install" and "upgrade" HOT 2
- zef install treated "v6" as a dependency HOT 1
- No such method 'remove-artifacts' for invocant of type HOT 4
- Can't `zef install` YAMLish on Windows 10 HOT 6
- Error: Type check failed in binding to parameter '$repo-id'; HOT 1
- Use of uninitialized value @short-names-to-index HOT 4
- zef installs some module resources to /tmp/.zef which are missing on reboot HOT 5
- Add `--precomp` flag to zef HOT 1
- Use of uninitialized value @short-names-to-index in Zef::Repository::Ecosystems line 250 HOT 2
- zef install fails on a fresh (?) M1 macos brew install of rakudo star HOT 7
- zef can't find any distribution that has ":ver<*>" in its name HOT 2
- Error in dependency resolution HOT 7
- Digest vs Digest::MD5 (advice please) HOT 5
- zef may fail to install IO::String HOT 1
- Zef local test (zef test . --debug) doesn't check for valid pod HOT 5
- Shared library referenced in /tmp/.zef? Potential security issue. HOT 2
- configure /tmp/.zef directory for root / none root users HOT 7
- Zef fails when upgrading all packages but succeeds when doing one by one HOT 2
- Error testing on Windows: mswin32 not supported HOT 2
- Module installation fails on Windows 11 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zef.