Fixed build problem with SESSION_RECORDING flag set to OFF and updated the readme
This commit is contained in:
parent
193758ecff
commit
efb8b7c3ae
4 changed files with 39 additions and 27 deletions
|
@ -2,12 +2,14 @@ cmake_minimum_required (VERSION 3.0)
|
|||
project (bastion LANGUAGES C VERSION 0.1)
|
||||
|
||||
set(CMAKE_VERBOSE_MAKEFILE FALSE)
|
||||
set(CMAKE_BUILD_TYPE DEBUG)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
set(CMAKE_INSTALL_PREFIX /usr/local)
|
||||
|
||||
set(CMAKE_C_FLAGS "-Wall -Werror -Wextra -pedantic")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-g -ggdb -pg -fsanitize=address")
|
||||
set(CMAKE_C_FLAGS_RELEASE "-Os")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Os -g")
|
||||
set(CMAKE_C_FLAGS_RELEASE "-O2")
|
||||
set(CMAKE_C_FLAGS_MinSizeRel "-Os")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -ggdb -pg -fsanitize=address")
|
||||
|
||||
option(LIBSSH_VERBOSE_OUTPUT "whether or not verbose output for libssh mode is activated" OFF)
|
||||
option(SESSION_RECORDING "whether or not recording feature based on lib termrec is activated" ON)
|
||||
|
|
15
README.md
15
README.md
|
@ -4,8 +4,9 @@ SSH bastion that features transparent connection and session recording.
|
|||
|
||||
This project is inspired by https://github.com/moul/sshportal. I wrote this implementation to work around the fact that I couldn't get the go ssh lib
|
||||
to work properly with non interactive sessions, the bug has been open for a long time and I tend to belive it cannot be fixed
|
||||
(https://github.com/moul/sshportal/issues/55). This one does work properly with non interactive sessions, which allows transparent ansible usage through
|
||||
the bastion.
|
||||
(https://github.com/moul/sshportal/issues/55).
|
||||
|
||||
This bastion project does work properly with non interactive sessions, which allows transparent ansible usage through the bastion.
|
||||
|
||||
## Contents
|
||||
|
||||
|
@ -39,10 +40,14 @@ make install
|
|||
```
|
||||
|
||||
You can customise the build with the following cmake flags :
|
||||
- SESSION_RECORDING
|
||||
|
||||
For exemple this disables session recording :
|
||||
`cmake .. -DSESSION_RECORDING=OFF`
|
||||
- `CMAKE_BUILD_TYPE` : Debug|Release|RelWithDebInfo|MinSizeRel, defaults to Release
|
||||
- `CMAKE_INSTALL_PREFIX` : path, defaults to `/usr/local`
|
||||
- `SESSION_RECORDING` : ON|OFF, defaults to ON
|
||||
|
||||
For exemple this disables session recording for a debug build and install it under /usr :
|
||||
|
||||
`cmake .. -DCMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=/usr -DSESSION_RECORDING=OFF`
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
|
@ -4,5 +4,8 @@ include_directories("${bastion_SOURCE_DIR}/")
|
|||
file(GLOB_RECURSE SOURCES *.c)
|
||||
|
||||
add_executable(bastion ${SOURCES})
|
||||
target_link_libraries(bastion libtty common)
|
||||
target_link_libraries(bastion common)
|
||||
if (${SESSION_RECORDING})
|
||||
target_link_libraries(bastion libtty)
|
||||
endif()
|
||||
target_link_libraries(bastion bz2 lzma mysqlclient ssh z)
|
||||
|
|
38
external/CMakeLists.txt
vendored
38
external/CMakeLists.txt
vendored
|
@ -1,19 +1,21 @@
|
|||
# Build libtty from the termrec project
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/termrec/)
|
||||
message("Unable to find termrec, running git submodule update --init")
|
||||
execute_process(COMMAND git submodule update --init -- termrec WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
if (${SESSION_RECORDING})
|
||||
# Build libtty from the termrec project
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/termrec/)
|
||||
message("Unable to find termrec, running git submodule update --init")
|
||||
execute_process(COMMAND git submodule update --init -- termrec WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
endif()
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/termrec/configure)
|
||||
message("Unable to find configure file for termrec, running autogen.sh")
|
||||
execute_process(COMMAND ./autogen.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/termrec)
|
||||
endif()
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/termrec/config.h)
|
||||
message("Unable to find config.h file for termrec, running configure script")
|
||||
execute_process(COMMAND ./configure WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/termrec)
|
||||
endif()
|
||||
file(GLOB_RECURSE LIBTTY_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/termrec/libtty/*.c)
|
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/termrec/")
|
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/termrec/libtty")
|
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/termrec/sys")
|
||||
ADD_LIBRARY(libtty STATIC ${LIBTTY_SOURCES})
|
||||
SET_TARGET_PROPERTIES(libtty PROPERTIES COMPILE_FLAGS "-Wno-all -Wno-error -Wno-extra -Wno-pedantic")
|
||||
endif()
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/termrec/configure)
|
||||
message("Unable to find configure file for termrec, running autogen.sh")
|
||||
execute_process(COMMAND ./autogen.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/termrec)
|
||||
endif()
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/termrec/config.h)
|
||||
message("Unable to find config.h file for termrec, running configure script")
|
||||
execute_process(COMMAND ./configure WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/termrec)
|
||||
endif()
|
||||
file(GLOB_RECURSE LIBTTY_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/termrec/libtty/*.c)
|
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/termrec/")
|
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/termrec/libtty")
|
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/termrec/sys")
|
||||
ADD_LIBRARY(libtty STATIC ${LIBTTY_SOURCES})
|
||||
SET_TARGET_PROPERTIES(libtty PROPERTIES COMPILE_FLAGS "-Wno-all -Wno-error -Wno-extra -Wno-pedantic")
|
||||
|
|
Reference in a new issue