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)
|
project (bastion LANGUAGES C VERSION 0.1)
|
||||||
|
|
||||||
set(CMAKE_VERBOSE_MAKEFILE FALSE)
|
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 "-Wall -Werror -Wextra -pedantic")
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-g -ggdb -pg -fsanitize=address")
|
set(CMAKE_C_FLAGS_DEBUG "-g -ggdb -pg -fsanitize=address")
|
||||||
set(CMAKE_C_FLAGS_RELEASE "-Os")
|
set(CMAKE_C_FLAGS_RELEASE "-O2")
|
||||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Os -g")
|
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(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)
|
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
|
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
|
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
|
(https://github.com/moul/sshportal/issues/55).
|
||||||
the bastion.
|
|
||||||
|
This bastion project does work properly with non interactive sessions, which allows transparent ansible usage through the bastion.
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
|
|
||||||
|
@ -39,10 +40,14 @@ make install
|
||||||
```
|
```
|
||||||
|
|
||||||
You can customise the build with the following cmake flags :
|
You can customise the build with the following cmake flags :
|
||||||
- SESSION_RECORDING
|
|
||||||
|
|
||||||
For exemple this disables session recording :
|
- `CMAKE_BUILD_TYPE` : Debug|Release|RelWithDebInfo|MinSizeRel, defaults to Release
|
||||||
`cmake .. -DSESSION_RECORDING=OFF`
|
- `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
|
## Usage
|
||||||
|
|
||||||
|
|
|
@ -4,5 +4,8 @@ include_directories("${bastion_SOURCE_DIR}/")
|
||||||
file(GLOB_RECURSE SOURCES *.c)
|
file(GLOB_RECURSE SOURCES *.c)
|
||||||
|
|
||||||
add_executable(bastion ${SOURCES})
|
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)
|
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 (${SESSION_RECORDING})
|
||||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/termrec/)
|
# Build libtty from the termrec project
|
||||||
message("Unable to find termrec, running git submodule update --init")
|
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/termrec/)
|
||||||
execute_process(COMMAND git submodule update --init -- termrec WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
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()
|
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