[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