Skip to content

Commit 07913bd

Browse files
authored
Merge pull request #14 from bbockelm/cmake_build
Migrate build to CMake
2 parents 3dd265f + 98c29c3 commit 07913bd

16 files changed

Lines changed: 178 additions & 247 deletions

.gitignore

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,2 @@
1-
src/*.o
2-
src/*.lo
3-
src/.deps
4-
src/.libs
5-
src/Makefile.in
6-
src/Makefile
7-
Makefile
8-
Makefile.in
9-
config.guess
10-
config.log
11-
config.status
12-
aclocal.m4
13-
autom4te.cache
141
conf/gridftp-inetd.conf
15-
config.sub
16-
configure
17-
install-sh
18-
scripts/gridftp-hdfs-standalone
19-
scripts/init/gridftp-hdfs
20-
scripts/xinetd/gridftp-hdfs
21-
scripts/xinetd/gridftp-hdfs-inetd
22-
src/libglobus_gridftp_server_hdfs.la
232
release_dir
24-
depcomp
25-
libtool
26-
ltmain.sh
27-
missing

CMakeLists.txt

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
2+
cmake_minimum_required( VERSION 2.6 )
3+
project( gridftp-hdfs )
4+
5+
set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
6+
7+
find_package( Hdfs REQUIRED )
8+
find_package( Jvm REQUIRED )
9+
10+
include (FindPkgConfig)
11+
pkg_check_modules(OPENSSL REQUIRED libcrypto)
12+
pkg_check_modules(GLOBUS_GRIDFTP_SERVER REQUIRED globus-gridftp-server)
13+
pkg_check_modules(GLOBUS_COMMON REQUIRED globus-common)
14+
15+
if( CMAKE_COMPILER_IS_GNUCXX )
16+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror" )
17+
endif()
18+
19+
if( CMAKE_COMPILER_IS_GNUCC )
20+
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror" )
21+
endif()
22+
23+
SET( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined")
24+
SET( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined")
25+
SET( CMAKE_EXE_LINKER_FLAGS "-Wl,--no-undefined")
26+
27+
include_directories(${HDFS_INCLUDES} ${JVM_INCLUDES} ${JVM_MD_INCLUDES} ${OPENSSL_INCLUDEDIR} ${GLOBUS_GRIDFTP_SERVER_INCLUDE_DIRS} ${GLOBUS_COMMON_INCLUDE_DIRS})
28+
29+
include_directories( ${PROJECT_SOURCE_DIR} )
30+
31+
add_library(globus_gridftp_server_hdfs MODULE
32+
src/gridftp_hdfs_buffers.c
33+
src/gridftp_hdfs.c
34+
src/gridftp_hdfs_cksm.c
35+
src/gridftp_hdfs_recv.c
36+
src/gridftp_hdfs_send.c
37+
src/gridftp_hdfs_stat.c
38+
src/gridftp_hdfs_error.h
39+
src/gridftp_hdfs.h
40+
)
41+
target_link_libraries(globus_gridftp_server_hdfs -lz -lrt -pthread ${HDFS_LIB} ${GLOBUS_GRIDFTP_SERVER_LIBRARIES} ${GLOBUS_COMMON_LIBRARIES} ${OPENSSL_LIBRARIES})
42+
43+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/conf/gridftp-inetd.conf.in ${CMAKE_CURRENT_BINARY_DIR}/conf/gridftp-inetd.conf @ONLY)
44+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/gridftp-hdfs-standalone.in ${CMAKE_CURRENT_BINARY_DIR}/scripts/gridftp-hdfs-standalone @ONLY)
45+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/init/gridftp-hdfs.in ${CMAKE_CURRENT_BINARY_DIR}/scripts/init/gridftp-hdfs @ONLY)
46+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/xinetd/gridftp-hdfs.in ${CMAKE_CURRENT_BINARY_DIR}/scripts/xinetd/gridftp-hdfs @ONLY)
47+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/xinetd/gridftp-hdfs-inetd.in ${CMAKE_CURRENT_BINARY_DIR}/scripts/xinetd/gridftp-hdfs-inetd @ONLY)
48+
49+
SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Install path for libraries")
50+
SET(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share" CACHE PATH "Data directory for helper files")
51+
SET(SYSCONF_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/etc" CACHE PATH "System configuration directory")
52+
53+
install(
54+
TARGETS globus_gridftp_server_hdfs
55+
LIBRARY DESTINATION ${LIB_INSTALL_DIR} )
56+
57+
install(
58+
PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/scripts/gridftp-hdfs-standalone
59+
DESTINATION bin)
60+
61+
install(
62+
PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/scripts/xinetd/gridftp-hdfs-inetd
63+
DESTINATION sbin)
64+
65+
set_target_properties(
66+
globus_gridftp_server_hdfs
67+
PROPERTIES
68+
VERSION "0.0.1"
69+
SOVERSION "0"
70+
LINK_INTERFACE_LIBRARIES "" )
71+
72+
install(
73+
FILES ${CMAKE_CURRENT_BINARY_DIR}/scripts/xinetd/gridftp-hdfs
74+
DESTINATION ${SYSCONF_INSTALL_DIR}/xinetd.d
75+
)
76+
77+
install(
78+
FILES ${CMAKE_SOURCE_DIR}/conf/gridftp.conf ${CMAKE_CURRENT_BINARY_DIR}/conf/gridftp-inetd.conf ${CMAKE_SOURCE_DIR}/conf/gridftp-debug.conf ${CMAKE_SOURCE_DIR}/conf/replica-map.conf
79+
DESTINATION ${SYSCONF_INSTALL_DIR}/gridftp-hdfs
80+
)
81+
82+
install(
83+
FILES ${CMAKE_CURRENT_BINARY_DIR}/scripts/init/gridftp-hdfs
84+
DESTINATION ${SYSCONF_INSTALL_DIR}/init.d/
85+
)
86+
87+
install(
88+
FILES ${CMAKE_SOURCE_DIR}/conf/gridftp-hdfs ${CMAKE_SOURCE_DIR}/conf/gridftp-hdfs-environment-bootstrap
89+
DESTINATION ${SYSCONF_INSTALL_DIR}/sysconfig/gridftp.conf.d
90+
)
91+
92+
install(
93+
FILES ${CMAKE_SOURCE_DIR}/conf/gridftp-hdfs-environment
94+
DESTINATION ${SHARE_INSTALL_PREFIX}/gridftp-hdfs
95+
)
96+
97+
install(
98+
FILES ${CMAKE_SOURCE_DIR}/conf/globus-gridftp-server-plugin
99+
DESTINATION ${SHARE_INSTALL_PREFIX}/osg/sysconfig
100+
)
101+
102+
install(
103+
FILES ${CMAKE_SOURCE_DIR}/conf/gridftp.d/gridftp-hdfs.conf ${CMAKE_SOURCE_DIR}/conf/gridftp.d/gridftp-hdfs.osg-extensions.conf
104+
DESTINATION ${SYSCONF_INSTALL_DIR}/gridftp.d
105+
)
106+

Makefile.am

Lines changed: 0 additions & 5 deletions
This file was deleted.

cmake/FindHdfs.cmake

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
FIND_PATH(HDFS_INCLUDES hdfs.h
3+
HINTS
4+
${HDFS_INCLUDE_DIR}
5+
$ENV{HDFS_INCLUDE_DIR}
6+
/usr
7+
PATH_SUFFIXES include
8+
)
9+
10+
FIND_LIBRARY(HDFS_LIB hdfs
11+
HINTS
12+
${HDFS_LIB_DIR}
13+
$ENV{HDFS_LIB_DIR}
14+
/usr
15+
PATH_SUFFIXES lib
16+
)
17+
18+
GET_FILENAME_COMPONENT(HDFS_LIB_DIR ${HDFS_LIB} PATH)
19+
20+
INCLUDE(FindPackageHandleStandardArgs)
21+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Hdfs DEFAULT_MSG HDFS_LIB HDFS_LIB_DIR HDFS_INCLUDES)
22+

cmake/FindJvm.cmake

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
FIND_PATH(JVM_INCLUDES jni.h
3+
HINTS
4+
${JVM_INCLUDE_DIR}
5+
$ENV{JVM_INCLUDE_DIR}
6+
/usr/lib/jvm/java
7+
/usr/java/default
8+
/usr
9+
PATH_SUFFIXES include
10+
)
11+
12+
GET_FILENAME_COMPONENT(JVM_INCLUDE_PATH ${JVM_INCLUDES} PATH)
13+
14+
FIND_PATH(JVM_MD_INCLUDES jni_md.h
15+
HINTS
16+
${JVM_INCLUDE_PATH}
17+
PATH_SUFFIXES include/linux
18+
)
19+
20+
FIND_LIBRARY(JVM_LIB jvm
21+
HINTS
22+
${JVM_LIB_DIR}
23+
$ENV{JVM_LIB_DIR}
24+
/usr
25+
/usr/java/default/jre
26+
/usr/lib/jvm/java/jre
27+
PATH_SUFFIXES lib lib/amd64/server lib/i386/server
28+
)
29+
30+
GET_FILENAME_COMPONENT(JVM_LIB_DIR ${JVM_LIB} PATH)
31+
32+
INCLUDE(FindPackageHandleStandardArgs)
33+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jvm DEFAULT_MSG JVM_LIB JVM_INCLUDES JVM_MD_INCLUDES)
34+

conf/Makefile.am

Lines changed: 0 additions & 15 deletions
This file was deleted.

conf/gridftp-hdfs.spec

Lines changed: 2 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,12 @@ URL: https://github.com/opensciencegrid/gridftp_hdfs
1616
Source0: %{name}-%{version}%{?gitrev:-%{gitrev}}.tar.gz
1717

1818
Source1: globus-gridftp-server-plugin.osg-sysconfig
19-
%if 0%{?osg} > 0
2019
Source2: %{name}.conf
2120
Source3: %{name}.osg-extensions.conf
22-
%endif
2321

2422
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
2523

26-
BuildRequires: autoconf
27-
BuildRequires: automake
28-
BuildRequires: libtool
24+
BuildRequires: cmake
2925

3026
BuildRequires: java-devel >= 1:1.7.0
3127
BuildRequires: jpackage-utils
@@ -35,18 +31,14 @@ BuildRequires: hadoop-libhdfs
3531
BuildRequires: globus-gridftp-server-devel >= 11
3632
BuildRequires: globus-common-devel
3733

38-
BuildRequires: chrpath
39-
4034
Requires: hadoop-libhdfs
4135
Requires: hadoop-client >= 2.0.0+545
4236
# ^ was getting "No FileSystem for scheme: hdfs" without this
4337
# 6.14-2 added OSG plugin-style sysconfig instead of gridftp.conf.d
4438
# 6.38-1.3 added /etc/gridftp.d
4539
Requires: globus-gridftp-server-progs >= 6.38-1.3
46-
%if 0%{?osg} > 0
4740
Requires: xinetd
4841
Requires: globus-gridftp-osg-extensions
49-
%endif
5042
Requires: java >= 1:1.7.0
5143
Requires: jpackage-utils
5244
# for ordered data support (SOFTWARE-2436):
@@ -55,14 +47,10 @@ Requires: globus-ftp-control >= 7.7
5547

5648
Requires(pre): shadow-utils
5749
Requires(preun): initscripts
58-
%if 0%{?osg} == 0
5950
Requires(preun): chkconfig
6051
Requires(post): chkconfig
61-
%endif
6252
Requires(postun): initscripts
63-
%if 0%{?osg} > 0
6453
Requires(postun): xinetd
65-
%endif
6654

6755
%description
6856
HDFS DSI plugin for GridFTP
@@ -73,12 +61,7 @@ HDFS DSI plugin for GridFTP
7361

7462
%build
7563

76-
aclocal
77-
libtoolize
78-
automake --foreign -a
79-
autoconf
80-
81-
%configure --with-java=/etc/alternatives/java_sdk
64+
%cmake
8265

8366
make %{?_smp_mflags}
8467

@@ -87,75 +70,48 @@ rm -rf $RPM_BUILD_ROOT
8770

8871
make DESTDIR=$RPM_BUILD_ROOT install
8972

90-
# Remove rpaths
91-
chrpath -d $RPM_BUILD_ROOT%{_libdir}/*.so
92-
93-
# Remove libtool turds
94-
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
95-
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
96-
9773
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gridftp.d
9874

9975
# Remove the init script - in GT5.2, this gets bootstrapped appropriately
10076
rm $RPM_BUILD_ROOT%{_sysconfdir}/init.d/%{name}
10177
rm $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/gridftp.conf.d/%{name}-environment-bootstrap
10278

103-
%if 0%{?osg} > 0
10479
mv $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/gridftp.conf.d/%{name} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
10580
rmdir $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/gridftp.conf.d
10681
rm $RPM_BUILD_ROOT%{_sysconfdir}/gridftp-hdfs/gridftp.conf
10782
mkdir -p $RPM_BUILD_ROOT/usr/share/osg/sysconfig
10883
install -m 644 -p %{SOURCE1} $RPM_BUILD_ROOT/usr/share/osg/sysconfig/globus-gridftp-server-plugin
10984
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/gridftp.d
11085
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/gridftp.d
111-
%else
112-
rm $RPM_BUILD_ROOT%{_sysconfdir}/gridftp-hdfs/gridftp-debug.conf
113-
rm $RPM_BUILD_ROOT%{_sysconfdir}/gridftp-hdfs/gridftp-inetd.conf
114-
rm $RPM_BUILD_ROOT%{_sysconfdir}/gridftp-hdfs/gridftp.conf
115-
rm $RPM_BUILD_ROOT%{_sysconfdir}/gridftp-hdfs/replica-map.conf
116-
rm $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/gridftp-hdfs
117-
rm $RPM_BUILD_ROOT%{_bindir}/gridftp-hdfs-standalone
118-
rm $RPM_BUILD_ROOT%{_sbindir}/gridftp-hdfs-inetd
119-
%endif
12086

12187
%clean
12288
rm -rf $RPM_BUILD_ROOT
12389

12490
%post
12591
/sbin/ldconfig
12692

127-
%if 0%{?osg} > 0
12893
/sbin/service globus-gridftp-server condrestart >/dev/null 2>&1 || :
129-
%else
13094
/sbin/chkconfig --add %{name}
131-
%endif
13295

13396
%preun
13497
if [ "$1" = "0" ] ; then
135-
%if 0%{?osg} > 0
13698
/sbin/service xinetd condrestart >/dev/null 2>&1
137-
%endif
13899
/sbin/service globus-gridftp-server condrestart >/dev/null 2>&1 || :
139100
fi
140101

141102
%postun
142103
/sbin/ldconfig
143104
if [ "$1" -ge "1" ]; then
144-
%if 0%{?osg} > 0
145105
/sbin/service xinetd condrestart >/dev/null 2>&1
146-
%endif
147106
/sbin/service globus-gridftp-server condrestart >/dev/null 2>&1 || :
148107
fi
149108

150109
%files
151110
%defattr(-,root,root,-)
152-
%if 0%{?osg} > 0
153111
%{_sbindir}/gridftp-hdfs-inetd
154112
%{_bindir}/gridftp-hdfs-standalone
155-
%endif
156113
%{_libdir}/libglobus_gridftp_server_hdfs.so*
157114
%{_datadir}/%{name}/%{name}-environment
158-
%if 0%{?osg} > 0
159115
%config(noreplace) %{_sysconfdir}/xinetd.d/%{name}
160116
%config(noreplace) %{_sysconfdir}/%{name}/gridftp-debug.conf
161117
%config(noreplace) %{_sysconfdir}/%{name}/gridftp-inetd.conf
@@ -164,9 +120,6 @@ fi
164120
%config(noreplace) %{_sysconfdir}/gridftp.d/%{name}.conf
165121
%config(noreplace) %{_sysconfdir}/gridftp.d/%{name}.osg-extensions.conf
166122
/usr/share/osg/sysconfig/globus-gridftp-server-plugin
167-
%else
168-
%config(noreplace) %{_sysconfdir}/sysconfig/gridftp.conf.d/%{name}
169-
%endif
170123

171124
%changelog
172125
* Thu Aug 24 2017 Mátyás Selmeci <matyas@cs.wisc.edu> - 1.0-1

conf/gridftp-inetd.conf.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
inetd 1
22
log_level ERROR,WARN,INFO
3-
log_single @logdir@/gridftp-auth.log
4-
log_transfer @logdir@/gridftp.log
3+
log_single /var/log/gridftp-auth.log
4+
log_transfer /var/log/gridftp.log
55
blocksize 1048576
66
load_dsi_module hdfs

0 commit comments

Comments
 (0)