Ticket 2738

Summary: jobcomp/elasticsearch build failure if curl is installed in a non-standard location
Product: Slurm Reporter: Nicolas Joly <njoly>
Component: OtherAssignee: Tim Wickberg <tim>
Status: RESOLVED FIXED QA Contact:
Severity: 4 - Minor Issue    
Priority: --- CC: alex
Version: 16.05.x   
Hardware: Linux   
OS: Linux   
Site: Institut Pasteur Alineos Sites: ---
Atos/Eviden Sites: --- Confidential Site: ---
Coreweave sites: --- Cray Sites: ---
DS9 clusters: --- HPCnow Sites: ---
HPE Sites: --- IBM Sites: ---
NOAA SIte: --- OCF Sites: ---
Recursion Pharma Sites: --- SFW Sites: ---
SNIC sites: --- Linux Distro: ---
Machine Name: CLE Version:
Version Fixed: 15.08.12 16.05.0-rc3 Target Release: ---
DevPrio: --- Emory-Cloud Sites: ---
Attachments: Fix jobcomp/elasticsearch build with curl in non-standard location

Description Nicolas Joly 2016-05-16 23:20:33 MDT
Created attachment 3096 [details]
Fix jobcomp/elasticsearch build with curl in non-standard location

Hi,

Trying to compile 16.05 on my main workstation failed in jobcomp/elasticsearch pluging ... This is due to curl being located under /usr/pkg non-standard location.

A small look into the corresponding Makefile.am show that LIBCURL_CPPFLAGS is not taken into account where it should be.

The attached patch fix the problem by adding the following line :

   jobcomp_elasticsearch_la_CPPFLAGS = $(LIBCURL_CPPFLAGS)

Thanks.
Comment 1 Alejandro Sanchez 2016-05-17 00:25:24 MDT
Thanks Nicolas, we'll push the patch and come back to you.
Comment 3 Tim Wickberg 2016-05-17 01:07:47 MDT
Committed as 370e397fc12, and will be in 15.08.12 and later. 

- Tim

(Apologies on the lack of attribution on the author line. I'd recreated the change before getting the autogen run done and missed the --author flag before pushing everything.)r
Comment 7 Alejandro Sanchez 2016-05-17 02:16:06 MDT
alex@smd-server:~/slurm/15.08/slurm$ cat src/plugins/jobcomp/elasticsearch/Makefile.am 
# Makefile for jobcomp/elasticsearch plugin

AUTOMAKE_OPTIONS = foreign

PLUGIN_FLAGS = -module -avoid-version --export-dynamic

AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common $(LIBCURL_CPPFLAGS)

AS_ELASTICSEARCH_SOURCES = jobcomp_elasticsearch.c

if WITH_CURL
pkglib_LTLIBRARIES = jobcomp_elasticsearch.la

jobcomp_elasticsearch_la_SOURCES = $(AS_ELASTICSEARCH_SOURCES)
jobcomp_elasticsearch_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS)
jobcomp_elasticsearch_la_LIBADD = $(LIBCURL)

else
EXTRA_jobcomp_elasticsearch_la_SOURCES = $(AS_ELASTICSEARCH_SOURCES)
endif
alex@smd-server:~/slurm/15.08/slurm$

This other approach also works for me. The thing is not getting

AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common

overwritten, because plugin #include "src/common/assoc_mgr.h" and if -I flag is not set with $(top_srcdir)/src/common assoc_mgr.h is not found and thus it does not compile. We should push configure file after running ./autogen.sh as well.
Comment 8 Tim Wickberg 2016-05-17 02:20:58 MDT
Commit 2d47779bd reworks this to avoid overwriting the AM_CPPFLAGS settings which were causing the build to fail for me.

Please re-open if you see problems with the build in the future, I believe that corrects things appropriately.

- Tim