Skip to content

Commit

Permalink
HPCC-15142 Minimal changes needed for DESTDIR
Browse files Browse the repository at this point in the history
Workflow:
export DESTDIR=$HOME/testdir
cmake -DRUNTIME_USER=$USER ../HPCC-Platform/
make install
make configure
$DESTDIR/etc/init.d/hpcc-init start

Signed-off-by: Michael Gardner <michael.gardner@lexisnexis.com>
  • Loading branch information
Michael-Gardner committed Aug 10, 2016
1 parent 17c7a5f commit 2ae8bdc
Show file tree
Hide file tree
Showing 40 changed files with 205 additions and 157 deletions.
13 changes: 13 additions & 0 deletions CMakeLists.txt
Expand Up @@ -447,4 +447,17 @@ if(PLATFORM OR CLIENTTOOLS OR REMBED)
install(FILES ${HPCC_SOURCE_DIR}/${LICENSE_FILE} DESTINATION "." COMPONENT Runtime)
endif()

#uninstall target
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)

if ( "$ENV{DESTDIR}" STRGREATER "" )
message(WARNING "DESTDIR is set to $ENV{DESTDIR}.
This should only be done for development builds.")
endif()

include(CPack)
4 changes: 2 additions & 2 deletions cmake_modules/commonSetup.cmake
Expand Up @@ -888,11 +888,11 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
endif ( PLATFORM OR PLUGIN )
set (CMAKE_SKIP_BUILD_RPATH FALSE)
set (CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_DIR}")
set (CMAKE_INSTALL_RPATH "${INSTALL_DIR}/${LIB_DIR}")
set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
if (APPLE)
# used to locate libraries when compiling ECL
set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${LIB_DIR}")
set(CMAKE_INSTALL_NAME_DIR "${INSTALL_DIR}/${LIB_DIR}")
endif()
MACRO (FETCH_GIT_TAG workdir edition result)
execute_process(COMMAND "${GIT_COMMAND}" describe --tags --dirty --abbrev=6 --match ${edition}*
Expand Down
17 changes: 10 additions & 7 deletions cmake_modules/optionDefaults.cmake
Expand Up @@ -78,7 +78,7 @@ if ( NOT RUNTIME_USER )
endif()

if ( NOT RUNTIME_GROUP )
set( RUNTIME_GROUP "hpcc" )
set( RUNTIME_GROUP "${RUNTIME_USER}" )
endif()

if ( NOT ENV_XML_FILE )
Expand All @@ -89,15 +89,18 @@ if ( NOT ENV_CONF_FILE )
set( ENV_CONF_FILE "environment.conf" )
endif()

set( INSTALL_DIR "${PREFIX}/${DIR_NAME}" )
set( CONFIG_DIR "${CONFIG_PREFIX}/${DIR_NAME}" )
set( RUNTIME_PATH "${EXEC_PREFIX}/${RUNTIME_DIR}/${DIR_NAME}" )
set( LOG_PATH "${EXEC_PREFIX}/${LOG_DIR}/${DIR_NAME}" )
set( LOCK_PATH "${EXEC_PREFIX}/${LOCK_DIR}/${DIR_NAME}" )
set( PID_PATH "${EXEC_PREFIX}/${PID_DIR}/${DIR_NAME}" )
set( INSTALL_DIR "$ENV{DESTDIR}${PREFIX}/${DIR_NAME}" )
set( CONFIG_DIR "$ENV{DESTDIR}${CONFIG_PREFIX}/${DIR_NAME}" )
set( RUNTIME_PATH "$ENV{DESTDIR}${EXEC_PREFIX}/${RUNTIME_DIR}/${DIR_NAME}" )
set( LOG_PATH "$ENV{DESTDIR}${EXEC_PREFIX}/${LOG_DIR}/${DIR_NAME}" )
set( LOCK_PATH "$ENV{DESTDIR}${EXEC_PREFIX}/${LOCK_DIR}/${DIR_NAME}" )
set( PID_PATH "$ENV{DESTDIR}${EXEC_PREFIX}/${PID_DIR}/${DIR_NAME}" )
set( INIT_PATH "$ENV{DESTDIR}${CONFIG_PREFIX}/init.d")

set( CONFIG_SOURCE_PATH "${CONFIG_DIR}/${CONFIG_SOURCE_DIR}" )
set( COMPONENTFILES_PATH "${INSTALL_DIR}/${COMPONENTFILES_DIR}" )
set( PLUGINS_PATH "${INSTALL_DIR}/${PLUGINS_DIR}" )
set( LIB_PATH "${INSTALL_DIR}/${LIB_DIR}" )
set( EXEC_PATH "${INSTALL_DIR}/${EXEC_DIR}" )
set( ADMIN_PATH "${INSTALL_DIR}/${ADMIN_DIR}" )

21 changes: 21 additions & 0 deletions cmake_uninstall.cmake.in
@@ -0,0 +1,21 @@
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")

file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
string(REGEX REPLACE "\n" ";" files "${files}")
foreach(file ${files})
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
exec_program(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
)
if(NOT "${rm_retval}" STREQUAL 0)
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
endif(NOT "${rm_retval}" STREQUAL 0)
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
endforeach(file)
5 changes: 0 additions & 5 deletions deployment/deploy/CMakeLists.txt
Expand Up @@ -70,8 +70,3 @@ IF (USE_OPENSSL)
securesocket
)
ENDIF()

if ( PLATFORM )
install ( PROGRAMS configesp.install DESTINATION etc/init.d/install COMPONENT Runtime )
install ( PROGRAMS configesp.uninstall DESTINATION etc/init.d/uninstall COMPONENT Runtime )
endif()
1 change: 0 additions & 1 deletion deployment/deploy/configesp.install

This file was deleted.

1 change: 0 additions & 1 deletion deployment/deploy/configesp.uninstall

This file was deleted.

4 changes: 1 addition & 3 deletions esp/platform/CMakeLists.txt
Expand Up @@ -60,6 +60,4 @@ target_link_libraries ( esp
remote
dalibase
environment
)


)
1 change: 1 addition & 0 deletions initfiles/bash-vars.in
Expand Up @@ -5,3 +5,4 @@ ENV_CONF_FILE=${ENV_CONF_FILE}
PID_DIR=${PID_PATH}
LOCK_DIR=${LOCK_PATH}
LOG_DIR=${LOG_PATH}
INIT_PATH=${INIT_PATH}
19 changes: 11 additions & 8 deletions initfiles/bash/etc/init.d/CMakeLists.txt
Expand Up @@ -22,22 +22,25 @@ GENERATE_BASH(processor ${bash-vars} "hpcc-init.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "hpcc_common.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "uninstall-init.in" outFiles)

configure_file(hpcc-init.service.in hpcc-init.service @ONLY)
configure_file(hpcc-init@.service.in hpcc-init@.service @ONLY)
configure_file(dafilesrv.service.in dafilesrv.service @ONLY)
configure_file(dafilesrv@.service.in dafilesrv@.service @ONLY)

ADD_CUSTOM_TARGET(ProcessFiles-initfiles-bash-etc-init.d ALL DEPENDS ${outFiles})
FOREACH( oFILES
${outFiles}
${CMAKE_CURRENT_SOURCE_DIR}/pid.sh
${CMAKE_CURRENT_SOURCE_DIR}/lock.sh
${CMAKE_CURRENT_SOURCE_DIR}/init-functions
${CMAKE_CURRENT_SOURCE_DIR}/export-path
${CMAKE_CURRENT_SOURCE_DIR}/hpcc-init.service
${CMAKE_CURRENT_SOURCE_DIR}/hpcc-init@.service
${CMAKE_CURRENT_SOURCE_DIR}/dafilesrv.service
${CMAKE_CURRENT_SOURCE_DIR}/dafilesrv@.service
${CMAKE_CURRENT_BINARY_DIR}/hpcc-init.service
${CMAKE_CURRENT_BINARY_DIR}/hpcc-init@.service
${CMAKE_CURRENT_BINARY_DIR}/dafilesrv.service
${CMAKE_CURRENT_BINARY_DIR}/dafilesrv@.service
)
install ( PROGRAMS ${oFILES} DESTINATION etc/init.d COMPONENT Runtime )
ENDFOREACH ( oFILES )

if ( PLATFORM )
install ( PROGRAMS hpcc-init.install DESTINATION etc/init.d/install COMPONENT Runtime )
install ( PROGRAMS hpcc-init.uninstall DESTINATION etc/init.d/uninstall COMPONENT Runtime )
endif()
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/dafilesrv ${CMAKE_CURRENT_BINARY_DIR}/hpcc-init
DESTINATION ${CONFIG_PREFIX}/init.d COMPONENT Runtime)
Expand Up @@ -3,15 +3,15 @@
# Start/stop HPCC: sudo service dafilesrv <start|stop|restart>
# or sudo systemctl <start|stop|restart> dafilesrv
# Query status: journal -u dafilesrv -t dafilesrv -f (CRL-C to return)
# Alternatively user can directly invoke /etc/init.d/dafilesrv <start|stop|status>
# Alternatively user can directly invoke @INIT_PATH@/dafilesrv <start|stop|status>

[Unit]
Description=HPCC Systems® dafilesrv service

[Service]
Type=oneshot
ExecStart=/etc/init.d/dafilesrv start
ExecStop=/etc/init.d/dafilesrv stop
ExecStart=@INIT_PATH@/dafilesrv start
ExecStop=@INIT_PATH@/dafilesrv stop
RemainAfterExit=yes
#StandardOutput=tty
#StandardError=tty
Expand Down
Expand Up @@ -5,15 +5,15 @@
# sudo systemctl <start|stop|restart> dafilesrv@<terminal file name without /dev>.service
# For example sudo service dafilesrv@pts/1 start
# Query status: journal -u dafilesrv -t dafilesrv -f (To return: CRL-C)
# Alternatively user can directly invoke /etc/init.d/dafilesrv <start|stop|status>
# Alternatively user can directly invoke @INIT_PATH@/dafilesrv <start|stop|status>

[Unit]
Description=HPCC Systems® dafilesrv service

[Service]
Type=oneshot
ExecStart=/etc/init.d/dafilesrv start
ExecStop=/etc/init.d/dafilesrv stop
ExecStart=@INIT_PATH@/dafilesrv start
ExecStop=@INIT_PATH@/dafilesrv stop
RemainAfterExit=yes
StandardOutput=tty
StandardError=tty
Expand Down
12 changes: 6 additions & 6 deletions initfiles/bash/etc/init.d/hpcc-init.in
Expand Up @@ -331,18 +331,18 @@ unset IFS
if [ ! -z "${compDafilesrv}" ];then
case "$1" in
start)
/etc/init.d/dafilesrv status 1>/dev/null 2>/dev/null
${INIT_PATH}/dafilesrv status 1>/dev/null 2>/dev/null
if [ $? -ne 0 ];then
log "--------------------------"
log "${compDafilesrv} ---> ${cmd}"
/etc/init.d/dafilesrv $1 2>/dev/null
${INIT_PATH}/dafilesrv $1 2>/dev/null
else
log "Dependent service dafilesrv, ${compDafilesrv} is already running."
echo "Dependent service dafilesrv, ${compDafilesrv} is already running."
fi
;;
status|setup)
/etc/init.d/dafilesrv ${1} 2>/dev/null
${INIT_PATH}/dafilesrv ${1} 2>/dev/null
;;
stop|restart)
;;
Expand Down Expand Up @@ -387,11 +387,11 @@ if [ ${cmd} = "restart" ] && [ "${isComp}" -eq 0 ]; then
echo "Starting the entire System"
echo "***************************************************"
cmd=start
/etc/init.d/dafilesrv status 1>/dev/null 2>/dev/null
${INIT_PATH}/dafilesrv status 1>/dev/null 2>/dev/null
if [ $? -ne 0 ];then
log "--------------------------"
log "${compDafilesrv} ---> ${cmd}"
/etc/init.d/dafilesrv $1 2>/dev/null
${INIT_PATH}/dafilesrv $1 2>/dev/null
fi

statForStart=0
Expand Down Expand Up @@ -450,7 +450,7 @@ done

if [ "$cmd" = "stop" ] && [ -n "$compDafilesrv" ]
then
/etc/init.d/dafilesrv status 1>/dev/null 2>/dev/null
${INIT_PATH}/dafilesrv status 1>/dev/null 2>/dev/null
if [ $? -ne 0 ];then
log "Service dafilesrv, ${compDafilesrv} is already stopped."
echo "Service dafilesrv, ${compDafilesrv} is already stopped."
Expand Down
1 change: 0 additions & 1 deletion initfiles/bash/etc/init.d/hpcc-init.install

This file was deleted.

Expand Up @@ -3,15 +3,15 @@
# Start/stop HPCC: sudo service hpcc-init <start|stop|restart>
# or sudo systemctl <start|stop|restart> hpcc-init
# Query status: journal -u hpcc-init -t hpcc-init -f (CRL-C to return)
# Alternatively user can directly invoke /etc/init.d/hpcc-init <start|stop|status>
# Alternatively user can directly invoke @INIT_PATH@/hpcc-init <start|stop|status>

[Unit]
Description=HPCC Systems®

[Service]
Type=oneshot
ExecStart=/etc/init.d/hpcc-init start
ExecStop=/etc/init.d/hpcc-init stop
ExecStart=@INIT_PATH@/hpcc-init start
ExecStop=@INIT_PATH@/hpcc-init stop
RemainAfterExit=yes
#StandardOutput=tty
#StandardError=tty
Expand Down
2 changes: 0 additions & 2 deletions initfiles/bash/etc/init.d/hpcc-init.uninstall

This file was deleted.

Expand Up @@ -5,15 +5,15 @@
# sudo systemctl <start|stop|restart> hpcc-init@<terminal file name without /dev>.service
# For example sudo service hpcc-init@pts/1 start
# Query status: journal -u hpcc-init -t hpcc-init -f (To return: CRL-C)
# Alternatively user can directly invoke /etc/init.d/hpcc-init <start|stop|status>
# Alternatively user can directly invoke @INIT_PATH@/hpcc-init <start|stop|status>

[Unit]
Description=HPCC Systems®

[Service]
Type=oneshot
ExecStart=/etc/init.d/hpcc-init start
ExecStop=/etc/init.d/hpcc-init stop
ExecStart=@INIT_PATH@/hpcc-init start
ExecStop=@INIT_PATH@/hpcc-init stop
RemainAfterExit=yes
StandardOutput=tty
StandardError=tty
Expand Down
19 changes: 10 additions & 9 deletions initfiles/bash/etc/init.d/hpcc_common.in
Expand Up @@ -391,12 +391,12 @@ cleanupRuntimeEnvironment() {


start_dafilesrv() {
/etc/init.d/dafilesrv status 1>/dev/null 2>/dev/null
${INIT_PATH}/dafilesrv status 1>/dev/null 2>/dev/null
if [ $? -ne 0 ];then
#Dafilesrv is not running so start it , before starting cleanup the lock and pid file.
cleanupRuntimeEnvironment
noStatusCheck=1
/etc/init.d/dafilesrv setup 1>/dev/null 2>/dev/null
${INIT_PATH}/dafilesrv setup 1>/dev/null 2>/dev/null
startCmd ${compName} ${noStatusCheck}
return $?
else
Expand Down Expand Up @@ -483,7 +483,7 @@ startCmd() {
limits[i]=$_temp
fi
flag="-${element:5:1}"
ulimit $flag ${limits[i]##*"="}
ulimit $flag ${limits[i]##*"="} 1>/dev/null 2>&1
i=$((i+1))
done

Expand Down Expand Up @@ -628,15 +628,15 @@ start_component() {

restart_component() {
if strstr "${compType}" "dafilesrv" ;then
/etc/init.d/dafilesrv status 1>/dev/null 2>/dev/null
${INIT_PATH}/dafilesrv status 1>/dev/null 2>/dev/null
if [ $? -eq 0 ];then
/etc/init.d/dafilesrv stop 2>/dev/null
${INIT_PATH}/dafilesrv stop 2>/dev/null
else
log "$compName ---> Stopped. Now Starting ..."
echo "Component $compName was not running. Will start it now for you ..."
cleanupRuntimeEnvironment
fi
/etc/init.d/dafilesrv start 2>/dev/null
${INIT_PATH}/dafilesrv start 2>/dev/null
else
check_status ${PIDPATH} ${LOCKPATH} ${COMPPIDPATH} 1
RCRESTART=$?
Expand Down Expand Up @@ -965,12 +965,13 @@ cluster_tools_init() {

set_environmentvars

_cmd_prefix=
[ "$(id -u)" != "0" ] && _cmd_prefix=sudo
#_cmd_prefix=
#[ "$(id -u)" != "0" ] && _cmd_prefix=sudo

# Check and set log directory
CLUSTER_LOG_DIR=${LOG_DIR}/cluster
[ ! -d $LOG_DIR ] && ${_cmd_prefix} /etc/init.d/hpcc-init status > /dev/null 2>&1
#[ ! -d $LOG_DIR ] && ${_cmd_prefix} ${INIT_PATH}/hpcc-init status > /dev/null 2>&1
[ ! -d $LOG_DIR ] && ${INIT_PATH}/hpcc-init status > /dev/null 2>&1

[ ! -d $CLUSTER_LOG_DIR ] && mkdir -p $CLUSTER_LOG_DIR
# workaround inconsistency of stat command
Expand Down
1 change: 0 additions & 1 deletion initfiles/bash/etc/init.d/install-init.in
Expand Up @@ -188,7 +188,6 @@ installConfs "environment.xml" $configs/ 1 || exit 1
installConfs "genenvrules.conf" $configs/ 1 || exit 1

installFile "$path${CONFIG_DIR}/version" "${CONFIG_DIR}/version" 1 || exit 1
installFile "$initPath/dafilesrv" "/etc/init.d/dafilesrv" 1 || exit 1
installFile "$binPath/dfuplus" "/usr/bin/dfuplus" 1 || exit 1
installFile "$binPath/ecl" "/usr/bin/ecl" 1 || exit 1
installFile "$binPath/eclcc" "/usr/bin/eclcc" 1 || exit 1
Expand Down
20 changes: 10 additions & 10 deletions initfiles/bin/CMakeLists.txt
Expand Up @@ -17,22 +17,22 @@
SET(outFiles)
GENERATE_BASH(processor ${bash-vars} "init_dafilesrv.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_eclagent.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_dali.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_thor.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_configesp.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_dfuserver.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_eclccserver.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_eclscheduler.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_esp.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_roxie.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_sasha.in" outFiles)
GENERATE_BASH(processor ${bash-vars} "init_thorslave.in" outFiles)
ADD_CUSTOM_TARGET(ProcessFiles-initfiles-bin ALL DEPENDS ${outFiles})

FOREACH( iFILES
${outFiles}
${CMAKE_CURRENT_SOURCE_DIR}/init_configesp
${CMAKE_CURRENT_SOURCE_DIR}/init_dali
${CMAKE_CURRENT_SOURCE_DIR}/init_dfuserver
${CMAKE_CURRENT_SOURCE_DIR}/init_eclccserver
${CMAKE_CURRENT_SOURCE_DIR}/init_eclscheduler
${CMAKE_CURRENT_SOURCE_DIR}/init_esp
${CMAKE_CURRENT_SOURCE_DIR}/init_ftslave
${CMAKE_CURRENT_SOURCE_DIR}/init_roxie
${CMAKE_CURRENT_SOURCE_DIR}/init_roxie_cluster
${CMAKE_CURRENT_SOURCE_DIR}/init_sasha
${CMAKE_CURRENT_SOURCE_DIR}/init_thor
${CMAKE_CURRENT_SOURCE_DIR}/init_thorslave
)
install ( PROGRAMS ${iFILES} DESTINATION ${EXEC_DIR} COMPONENT Runtime )
ENDFOREACH ( iFILES )

0 comments on commit 2ae8bdc

Please sign in to comment.