easybuilders / easybuild-easyconfigs

A collection of easyconfig files that describe which software to build using which build options with EasyBuild.
https://easybuild.io
GNU General Public License v2.0
380 stars 703 forks source link

RepeatMasker-4.1.2-p1 configure step should be in installdir #15279

Closed wdlingit closed 2 years ago

wdlingit commented 2 years ago

I think the ./configure command should be performed at the installdir so that the corresponding perl module path in @INC would be correct. Here is what I got after easybuild RepeatMasker without manually configure

wdlin@comp02:/RAID1/working/DEBUG/20220406$ RepeatMasker -lib test-families.fa test.fasta
RepeatMasker version 4.1.2-p1
The assumed RepeatMasker installation directory
    /home/wdlin/.local/easybuild/software/RepeatMasker/4.1.2-p1-foss-2020b
does not appear to be correct.  E.g it does not
contain a 'Libraries' or 'Matrices' subdirectory.
This can occur if hard links are used to invoke
this script.

wdlin@comp02:/RAID1/working/DEBUG/20220406$ RepeatMasker -libdir /home/wdlin/.local/easybuild/software/RepeatMasker/4.1.2-p1-foss-2020b/Libraries -pa 15 -lib test-families.fa test.fasta
(...)
Can't locate RepeatAnnotationData.pm in @INC (you may need to install the RepeatAnnotationData module) (@INC contains: /home/wdlin/.local/easybuild/build/RepeatMasker/4.1.2-p1/foss-2020b/RepeatMasker/Libraries /home/wdlin/.local/easybuild/software/RepeatMasker/4.1.2-p1-foss-2020b /home/wdlin/perl5/lib/perl5 /opt/easybuildComp/software/Perl/5.32.0-GCCcore-10.2.0/lib/perl5/site_perl/5.32.0/x86_64-linux-thread-multi /opt/easybuildComp/software/Perl/5.32.0-GCCcore-10.2.0/lib/perl5/site_perl/5.32.0 /opt/easybuildComp/software/Perl/5.32.0-GCCcore-10.2.0/lib/perl5/5.32.0/x86_64-linux-thread-multi /opt/easybuildComp/software/Perl/5.32.0-GCCcore-10.2.0/lib/perl5/5.32.0) at /home/wdlin/.local/easybuild/software/RepeatMasker/4.1.2-p1-foss-2020b/ProcessRepeats line 178.
BEGIN failed--compilation aborted at /home/wdlin/.local/easybuild/software/RepeatMasker/4.1.2-p1-foss-2020b/ProcessRepeats line 178.

The first path in @INC is under builddir.

Ghepardo commented 2 years ago

I too had this problem. The generated file in the installation directory, RepeatMaskerConfig.pm, contains the wrong path to the Libraries subdirectory: it has a path under the temporary build directory.

I did try adding the following line: preinstall_cmd += '-libdir "%(installdir)s/Libraries" ' to the easyconfig, but this seemed to make the build go into an infinite loop.

I have since hacked the configuration file RepeatMaskerConfig.pm so that it contains the correct 'Libraries' path for our installation.

wdlingit commented 2 years ago

I was thinking about the samething (to hack the perl module .pm file). However, I found it could be easy after reading the install instructions from RepeatMasker website: you just go to the "install" directory and run the configure script.