[Bioc-devel] surfaltr build on Bioc 3.17 error advice

Hervé Pagès hp@ge@@on@g|thub @end|ng |rom gm@||@com
Fri Mar 24 21:41:27 CET 2023


Hi Pooja,

Looks like std::auto_ptr is no longer valid in C++17: 
https://stackoverflow.com/questions/69116001/how-do-i-re-enable-c17-removed-features-in-clang

Weird thing is that the compiler is invoked with -std=gnu++17 on all 
platforms but compilation of msa only fails on Mac.

It looks like using -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES instead of 
-D_HAS_AUTO_PTR_ETC=1 in msa/src/ClustalW/msaMakefile solves the "no 
template named 'auto_ptr'" problem, but then compilation fails later with:

   fileInput/FileParser.cpp:56:5: error: ISO C++17 does not allow 'register'
         storage class specifier [-Wregister]
       register int i;
       ^~~~~~~~~

which is easy enough to fix by just removing the few occurrences of the 
'register' keyword in ClustalW source code.

With these small adjustments I manage to have the embedded ClustalW to 
compile on merida1. I don't know about the embedded ClustalOmega and 
Muscle though, they might need some similar adjustments too.

Best,

H.

On 24/03/2023 08:26, Pooja Gangras wrote:

> Hi Hervé,
>
> I reached out to Ulrich who is the maintainer for msa package. He 
> found your suggestions very helpful and used the option 2 you 
> suggested to fix the error. Looks like the changes he made have fixed 
> everything on windows and Linux platforms but the macOS platform is 
> still showing an error message.
>
> http://bioconductor.org/checkResults/devel/bioc-LATEST/msa/merida1-buildsrc.html
>
> Any ideas on how to fix this?
>
> Thank you so much for all your help!!
>
> Pooja
>
> On Tue, Mar 21, 2023, 4:50 PM Hervé Pagès <hpages.on.github using gmail.com> 
> wrote:
>
>     On 21/03/2023 12:48, Pooja Gangras wrote:
>
>>     Hi Herve,
>>
>>     Thank you for the quick response.
>>
>>     So what surprises me is that msa was compiling and building just
>>     fine on the devel branch until now.
>     As I said, the switch from C++14 to C++17 happened not too long
>     ago in the devel version of R. And since we recently updated R on
>     the BioC 3.17 builders to the most recent R devel, that switch is
>     now reflected on the 3.17 builds.
>>     And hence so was surfaltr, without any errors. There was a
>>     warning in surfaltr which one can see on the 3.16 release, I had
>>     fixed it in the devel branch. For some reason I was not able to
>>     push changes to the existing 3.16 release branch.
>     That's a separate issue but if you provide more details about how
>     you tried to do this and what happened, maybe someone on this list
>     will be able to help.
>>
>>     I will go ahead and contact the maintainer for msa but hoping
>>     that it will fix itself before release because it was just fine
>>     until yesterday.
>
>     Unfortunately it won't fix itself.
>
>     H.
>
>>
>>     Thanks,
>>     Pooja
>>
>>     On Tue, Mar 21, 2023, 2:43 PM Hervé Pagès
>>     <hpages.on.github using gmail.com> wrote:
>>
>>         Hi Pooja,
>>
>>         Generally speaking there are 3 things you can do when a dep
>>         breaks your
>>         package:
>>
>>         1. Consider getting rid of that dep.
>>
>>         2. Contact the author/maintainers of the dep to let them know
>>         about the
>>         problem. If you can suggest a fix (e.g. by sending a PR on
>>         GitHub),
>>         that's even better, as I'm sure it will help get the issue
>>         resolved more
>>         quickly.
>>
>>         3. Do nothing and hope that the dep will get fixed in time
>>         for the 3.17
>>         release (scheduled for end of April, see our release schedule
>>         here
>>         https://bioconductor.org/developers/release-schedule/ for the
>>         details).
>>         But that's risky ;-)
>>
>>         In the case of msa's compilation error, it seems to be due to
>>         the R
>>         developers switching to the C++17 compiler by default for C++
>>         package
>>         code in recent version of R devel (4.3 series). This is
>>         documented in
>>         the R devel NEWS file here:
>>         https://cran.r-project.org/doc/manuals/r-devel/NEWS.html
>>
>>         Note that BioC 3.16 is based on R 4.2 which uses the C++14
>>         compiler by
>>         default for C++ package code. Therefore, in BioC 3.16, msa
>>         compiles fine
>>         on all platforms:
>>         https://bioconductor.org/checkResults/3.16/bioc-LATEST/msa/
>>
>>         So one option for the msa folks is to stick to the C++14
>>         compiler by
>>         adding C++14 to they 'SystemRequirements' field. Although I
>>         don't know
>>         how that would play with Rcpp which gets compiled with the C++17
>>         compiler, and which they depend on. So maybe that's a little
>>         bit risky?
>>         Maybe something to check with the Rcpp experts.
>>
>>         Best,
>>
>>         H.
>>
>>         On 21/03/2023 09:18, Pooja Gangras wrote:
>>         > Hi,
>>         >
>>         > I got an email yesterday alerting me of the error in the
>>         build in the new
>>         > BioC release. Upon looking into the error further I found
>>         out that the
>>         > error is occurring because a dependency 'msa' package is
>>         not being built in
>>         > the new release likely due to some issues with the C++
>>         compiler (just
>>         > guessing here).
>>         >
>>         > Can you please advice on next steps? Is there anything I
>>         need to do here?
>>         >
>>         > Thanks for your help,
>>         > Pooja
>>         >
>>         >       [[alternative HTML version deleted]]
>>         >
>>         > _______________________________________________
>>         > Bioc-devel using r-project.org mailing list
>>         > https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>
>>         -- 
>>         Hervé Pagès
>>
>>         Bioconductor Core Team
>>         hpages.on.github using gmail.com
>>
>     -- 
>     Hervé Pagès
>
>     Bioconductor Core Team
>     hpages.on.github using gmail.com
>
-- 
Hervé Pagès

Bioconductor Core Team
hpages.on.github using gmail.com

	[[alternative HTML version deleted]]



More information about the Bioc-devel mailing list