Giter Site home page Giter Site logo

Comments (12)

ugexe avatar ugexe commented on August 17, 2024

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.

Odud avatar Odud commented on August 17, 2024

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.

ugexe avatar ugexe commented on August 17, 2024

Interesting... can you post the output from the following?
(first: set ZEF_PLUGIN_DEBUG=1)
zef --debug install IO::Socket::SSL

from zef.

ugexe avatar ugexe commented on August 17, 2024

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.

Odud avatar Odud commented on August 17, 2024

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.

Odud avatar Odud commented on August 17, 2024

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.

ugexe avatar ugexe commented on August 17, 2024

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.

Odud avatar Odud commented on August 17, 2024

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.

ugexe avatar ugexe commented on August 17, 2024

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.

Odud avatar Odud commented on August 17, 2024

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.

ugexe avatar ugexe commented on August 17, 2024

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.

Odud avatar Odud commented on August 17, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.