jkunze / n2t-eggnog

7 stars 0 forks source link

CGI::Head #4

Open fseatonuc opened 2 years ago

fseatonuc commented 2 years ago

I'm trying to install n2t-eggnog. Tried first on FreeBSD and then under CentOS. Both times I hit a dead end when I tried to find the dependency CGI::Head. Installing CGI wasn't sufficient. Any suggestions where I might be able to find that module?

jkunze commented 2 years ago

Oops. I just added a missing dependency and pushed the change. (File::ANVL is where CGI::Head was hiding.) Thanks for the report.

fseatonuc commented 2 years ago

Thanks for the quick response! I installed File::ANVL, but I'm still getting the same error.

I ran a find /usr/local -name Head* and I see it defined in File, but not in CGI.

jkunze commented 2 years ago

Sorry for the delay in responding. I didn't see anything obvious until I stepped back and realized that eggnog has been pulling some important dependencies from github and there's been some drift in File::ANVL on mcpan and github. My bad for not keeping mcpan up-to-date (I never hooked it up via to git after converting away from hg). For now, please pull from github.com/jkunze/{file-value,file-anvl,file-namaste,file-pairtree,n2t-eggnog}. My guess(?) is that file-anvl has the only real changes.

fseatonuc commented 2 years ago

Hmmm, file-anvl not passing 'make test'

[fseaton@s4 /data/s4/fseaton/file-anvl]$ make
Manifying 2 pod documents
Manifying 4 pod documents
[fseaton@s4 /data/s4/fseaton/file-anvl]$ make test
PERL_DL_NONLAZY=1 "/usr/local/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/anvl.t ..... ok    
t/cgi.t ...... 1/? 
#   Failed test 'JSON CGI mode with user-defined content type'
#   at t/cgi.t line 121.
#                   'Status: 300 redirect
# Location: http://foo.example.com/bar
# Content-Type: application/json
# 
# [
#   {
#     "ab": "cd"'
#     doesn't match '(?^s:Content-Type: application/json\n.*\n\n\[\n.*{\n.*"ab)'

#   Failed test 'Turtle CGI mode'
#   at t/cgi.t line 155.
#                   'Content-Type: text/plain
# Status: 200 OK
# 
# @prefix erc: <http://purl.org/kernel/elements/1.1/> .
# <default>
#     erc:ab """cd"""'
#     doesn't match '(?^:Status: 200 OK\nContent-Type: text/plain\n\n\@prefix erc:)'
#   Failed test 'XML CGI mode'
#   at t/cgi.t line 166.
#                   'Content-Type: application/xml
# Status: 403 forbidden
# 
# <recs>
#   <rec>
#     <ab>cd</ab>
# '
#     doesn't match '(?^s:Status: 403 forbidden\n.*\n\n<recs)'
# Looks like you failed 3 tests of 28.
t/cgi.t ...... Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/28 subtests 
t/code.t ..... ok    
t/convert.t .. ok    
t/erc.t ...... ok    
t/om.t ....... ok    
t/values.t ... ok    
Test Summary Report
-------------------
t/cgi.t    (Wstat: 768 Tests: 28 Failed: 3)
  Failed tests:  16, 24, 26
  Non-zero exit status: 3
Files=7, Tests=240,  5 wallclock secs ( 0.05 usr  0.00 sys +  4.11 cusr  1.09 csys =  5.26 CPU)
Result: FAIL
Failed 1/7 test programs. 3/240 subtests failed.
*** Error code 255
Stop.
make: stopped in /data/s4/fseaton/file-anvl
jkunze commented 2 years ago

Fortunately, eggnog and N2T don't depend on that piece of ANVL functionality. I've never tried these tests anywhere but Solaris (from long ago) and Amazon Linux 4.14.256-197.484.amzn2.x86_64. What are running on (Apache server version? OS version?)

fseatonuc commented 2 years ago

We're running on FreeBSD (and apache 2.4). Since I had build issues on the FreeBSD box, I also tried building on a RHEL 8 box, but got the same errors. I figured since the make test was failing that the make install wouldn't work.

c-blair commented 2 years ago

John, just to clarify a bit our interest here. We can mint our own ARK identifiers, but we are concerned that we can't validate them reliably. I sent you the comparison that John Jung made with respect to the various tools out there and the differences among them, and the reason John wants eggnog installed is so that we can be sure that we are minting identifiers correctly; we're not creating any more identifiers for public consumption unless we can do that. What we want is a benchmark implementation, in other words. One thing I haven't mentioned to Fred or the other Unix/Linux sysadmin, because it's only just come up, is that John floated the following idea by me: "In an ideal world I think there would be a publicly available service to validate ARKs- we could even offer to host something like that if you think the community would trust it as definitive." I'd have to run that idea by others in the group, but we won't even think of doing something like that unless we know what we're doing is definitive, and eggnog is our way of knowing that.

jkunze commented 2 years ago

@fseatonuc I think you should try running the make install anyway. Eggnog function shouldn't be affected by the errors you saw, and in the unlikely event you'd run the same code that broke the probably too-fragile json tests, I think the results are probably still correct json. I have a hunch that the tests failed because of some superficial whitespace formatting that didn't generalize across platforms.

jkunze commented 2 years ago

@c-blair It would be fantastic if your folks were considering setting up such a service, and I'd be interested in helping if I can.