NCAR / lrose-core

Core C/C++ code for LROSE.
https://www.eol.ucar.edu/content/lidar-radar-open-software-environment
Other
92 stars 51 forks source link

TITAN build (trmm_rsl) fails on Fedora 28 (missing Sun RPC interfaces from glibc) #65

Closed brancomat closed 5 years ago

brancomat commented 5 years ago

I tried building TITAN on a Fedora 28 (x86_64) with:

./build/checkout_and_build_auto.py --prefix ~/titan --package titan

The error is in /tmp/lrose_build/lrose-core/codebase/libs/trmm_rsl/src:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../.. -I/tmp/lrose_build/tmp/include -I/tmp/lrose_build/tmp/include -I./include -I/usr/X11R6/include -I/opt/X11/include -I../../FiltAlg/src/include -I../../FiltAlgVirtVol/src/include -I../../Fmq/src/include -I../../Mdv/src/include -I../../Ncxx/src/include -I../../Radx/src/include -I../../Refract/src/include -I../../Spdb/src/include -I../../advect/src/include -I../../cidd/src/include -I../../contour/src/include -I../../dataport/src/include -I../../didss/src/include -I../../dsdata/src/include -I../../dsserver/src/include -I../../euclid/src/include -I../../forayRal/src/include -I../../grib/src/include -I../../grib2/src/include -I../../hydro/src/include -I../../kd/src/include -I../../mm5/src/include -I../../physics/src/include -I../../radar/src/include -I../../rapformats/src/include -I../../rapmath/src/include -I../../rapplot/src/include -I../../shapelib/src/include -I../../tdrp/src/include -I../../titan/src/include -I../../toolsa/src/include -I../../trmm_rsl/src/include -g -O2 -MT rsl/interp.lo -MD -MP -MF rsl/.deps/interp.Tpo -c rsl/interp.c -o rsl/interp.o >/dev/null 2>&1
rsl/lassen.c:42:10: fatal error: rpc/rpc.h: File o directory non esistente
 #include <rpc/rpc.h>
          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [makefile:680: rsl/lassen.lo] Error 1

This is probably due to glibc dropping RPC functionality: https://fedoraproject.org/wiki/Changes/SunRPCRemoval

In short:

upstream decided to move Sun RPC support to a separate library, libtirpc

libtirpc should be API compatile but the build system need to know to link the different library

leavesntwigs commented 5 years ago

Right, we are in the process of moving away from the trmm_rsl libraries by rewriting the JamesDealias code to use internal RadxVol structures instead. JamesDealias will be moved into RadxDealias. Until that time, a work around is to install a binary version of LROSE, if possible, or to not build the JamesDealias code. Hope this helps.

brancomat commented 5 years ago

Thank you for the feedback, I'll try the binary release.

leavesntwigs commented 5 years ago

JamesDealias has been converted to RadxDealias and should be available in the next release of lrose. The new code is in the repository.

brancomat commented 5 years ago

Thank you! I confirm that now I'm able to compile titan from the master branch on Fedora 28.