bruceravel / demeter

Process and analyze X-ray Absorption Spectroscopy data using Feff and either Larch or Ifeffit.
http://bruceravel.github.io/demeter
Other
65 stars 32 forks source link

installation issue due to "t -> ." symlink in "t"-folder #26

Open dkriegner opened 8 years ago

dkriegner commented 8 years ago

During following the "installation from source" instructions [1] I experienced an error at step 3.

Step 3 says: run perl ./Build.PL I got: <PATH>/demeter/t/t is a recursive symbolic link at /usr/lib64/perl5/5.20.2/File/Find.pm line 431.

Removing the symlink I could continue/finish the installation without problems. Is this symlink needed?

[1] http://bruceravel.github.io/demeter/pods/installation.pod.html

bruceravel commented 8 years ago

@dkriegner, the warning message is correct. It is, indeed, a recursive symlink, which I use as a convenience when working with the test suite.

I am surprised by your result, though. I've never seen that one before. In fact, I just made a fresh clone on the Ubuntu machine I am sitting at, ran perl ./Build.PL, and did not see it.

What kind of computer are you using?

In any case, as far as i can remember, you can safely remove the symlink and carry on. Doing so (as far as I can remember!) won't even affect the ./Build test step.

By the way, if you have any comments or suggestions for the installation instructions, please let me know. I find that a particularly hard document to write given that I understand the code so well. It is hard to myself in the shoes of someone coming to it for the first time.

dkriegner commented 8 years ago

I am on:

# uname -a
Linux 4.3.0-sabayon #1 SMP Wed Dec 16 22:02:39 UTC 2015 x86_64 Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz GenuineIntel GNU/Linux

# perl -v
This is perl 5, version 20, subversion 2 (v5.20.2) built for x86_64-linux-thread-multi
(with 27 registered patches, see perl -V for more detail)

let me know if you need more info.

Otherwise the instructions are fine from my perspective. Except of few smaller problems with dependencies of dependencies (e.g. [1]) the only thing I realized was a broken link in this paragraph:

In a section below (see "Installing Demeter without root privileges") instructions are given for installation without root privileges. All the instructions are the same, once you do an additional preparatory step.

the anchor _http://bruceravel.github.io/demeter/pods/installation.pod.html#quot_Installing_Demeter_without_root_ is missing.

[1] https://rt.cpan.org/Public/Bug/Display.html?id=63095

dkriegner commented 8 years ago

@bruceravel Actually I should highlight that this was not a warning, but the only output I got! Only after removing the symlink I could get any output from the build script! If the symlink is only needed on your testing machine I think you should consider removing it from the repo.

bruceravel commented 8 years ago

Yes, "error" not "warning". Gotcha.

Valid point about the symlink. Simply removing the symlink is almost certainly the right thing to do. Still, it would be nice to understand the cause.

What does your machine say for

perl -e 'use File::Find; print $File::Find::VERSION, $/'

And thanks for pointing out the broken link.

bruceravel commented 8 years ago

Except of few smaller problems with dependencies of dependencies (e.g. [1])

[1] https://rt.cpan.org/Public/Bug/Display.html?id=63095

Happily, that particular problem will be going away entirely soon. That dependence was needed for the documentation system. I am in the middle of a complete rewrite of the document -- using sphinx instead of something home-brewed.

dkriegner commented 8 years ago
$ perl -e 'use File::Find; print $File::Find::VERSION, $/'
1.27
bruceravel commented 8 years ago

Weird. Same as mine. I'm confused....

dkriegner commented 8 years ago

I think the problem originates in this module

$ perl -e 'use ExtUtils::Manifest; print $ExtUtils::Manifest::VERSION, $/'
1.70

see:

$ perl -Mdiagnostics Build.PL 
Uncaught exception from user code:
        <PATH>/demeter/t/t is a recursive symbolic link at /usr/lib64/perl5/5.20.2/File/Find.pm line 431.
        File::Find::Follow_SymLink("<PATH>/demeter/t/t") called at /usr/lib64/perl5/5.20.2/File/Find.pm line 980
        File::Find::_find_dir_symlnk(HASH(0x56210a111400), "<PATH>/demeter", ".") called at /usr/lib64/perl5/5.20.2/File/Find.pm line 566
        File::Find::_find_opt(HASH(0x56210a111400), ".") called at /usr/lib64/perl5/5.20.2/File/Find.pm line 1081
        File::Find::find(HASH(0x56210a111400), ".") called at /usr/lib64/perl5/vendor_perl/5.20.2/ExtUtils/Manifest.pm line 202
        ExtUtils::Manifest::manifind(undef) called at /usr/lib64/perl5/vendor_perl/5.20.2/ExtUtils/Manifest.pm line 290
        ExtUtils::Manifest::_check_files() called at /usr/lib64/perl5/vendor_perl/5.20.2/ExtUtils/Manifest.pm line 223
        ExtUtils::Manifest::manicheck() called at /usr/lib64/perl5/vendor_perl/5.20.2/Module/Build/Base.pm line 1972
        Module::Build::Base::check_manifest(DemeterBuilder=HASH(0x562108f85340)) called at /usr/lib64/perl5/vendor_perl/5.20.2/Module/Build/Base.pm line 39
        Module::Build::Base::new("DemeterBuilder", "module_name", "Demeter", "create_readme", 0, "license", "artistic", "dist_author", "Bruce Ravel <http://bruceravel.github.io/home>", ...) called at Build.PL line 55

the problematic call to find is

    find({wanted => $wanted, follow_fast => 1},
         $Is_MacOS ? ":" : ".");

where _followfast is set, which changed somewhere between 1.63 and 1.70

bruceravel commented 8 years ago

Apparently sometime between 1.65 and 1.70. I have 1.65 on my machine. Now it's understood and clearly an upstream issue that I have to live with.

Anyway, I removed the symlink and fixed a couple of other small bugs. See 63f2e1c

Thank you very much for looking into this. It is pretty uncommon that someone does the footwork to track down a problem for me. I am pleasantly surprised and quite grateful.

Cheers, B