diff --git a/.travis.yml b/.travis.yml index a7fd3ea..f45d0f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,98 @@ language: c -addons: - apt: - packages: - - help2man +compiler: + - clang + - gcc +matrix: + include: + - os: osx + osx_image: xcode10.2 + + - os: osx + osx_image: xcode9.4 + + - os: osx + osx_image: xcode8.3 + + - os: osx + osx_image: xcode7.3 + + - os: osx + osx_image: xcode6.4 + + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-4.4 + env: + - MATRIX_EVAL="CC=gcc-4.4" + + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-4.9 + env: + - MATRIX_EVAL="CC=gcc-4.9" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-5 + env: + - MATRIX_EVAL="CC=gcc-5" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-6 + env: + - MATRIX_EVAL="CC=gcc-6" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-7 + env: + - MATRIX_EVAL="CC=gcc-7" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-7 + env: + - MATRIX_EVAL="CC=gcc-8" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-7 + env: + - MATRIX_EVAL="CC=gcc-9" + +before_install: + - eval "${MATRIX_EVAL}" diff --git a/README.md b/README.md index f324db4..db5da00 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,11 @@ ovh-ttyrec is based (and compatible with) the original ttyrec, and can be used a Efforts have been made to ensure the code is portable. It is known to work under at least: - - Linux (any version or flavor) + - Linux (all versions and distros) - BSD (known to work under at least FreeBSD, NetBSD, OpenBSD, DragonFlyBSD) - Darwin (macOS aka OS X aka Mac OS X) - Haiku (community OS compatible with BeOS) - - OmniOS (community OS compatible with Solaris) + - OpenSolaris (known to work under at least OmniOS CE) It should work under any POSIX OS that support either `openpty()` or the `grantpt()`/`unlockpt() `mechanisms. diff --git a/configure b/configure index 48fdb0c..57bf0bc 100755 --- a/configure +++ b/configure @@ -75,9 +75,12 @@ if [ "$NO_ZSTD" != 1 ] && $CC $srcfile.c -L/usr/local/lib -I/usr/local/include - echo '#define HAVE_zstd' >>"$curdir/configure.h" COMPRESS_ZSTD='compress_zstd.o' printf "%b" "Checking whether we can link zstd statically... " - libzstda=$($CC -print-file-name=libzstd.a 2>/dev/null) + for dir in $($CC -print-search-dirs | awk '/^libraries:/ {$1=""; print}' | tr : "\n") /usr/local/lib + do + test -f "$dir/libzstd.a" && libzstda="$dir/libzstd.a" + done if [ -n "$libzstda" ] && [ -f "$libzstda" ] && [ "$NO_STATIC_ZSTD" != 1 ]; then - echo "yes" + echo "yes ($libzstda)" DEFINES_STR="$DEFINES_STR zstd[static]" LDLIBS="$LDLIBS $libzstda" else @@ -210,7 +213,8 @@ fi echo "Checking for supported compiler options..." for w in -Wall -Wextra -pedantic -Wno-unused-result -Wbad-function-cast -Wmissing-declarations \ -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wstrict-prototypes \ - -Wpointer-sign -Wmissing-parameter-type -Wold-style-declaration -Wl,--as-needed + -Wpointer-sign -Wmissing-parameter-type -Wold-style-declaration -Wl,--as-needed \ + -Wno-unused-command-line-argument do echo 'int main(void) { return 0; }' >$srcfile.c if [ $($CC $srcfile.c $w -o /dev/null 2>&1 | wc -l) = 0 ]; then diff --git a/debian/changelog b/debian/changelog index 72173ba..9420362 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,25 @@ +ovh-ttyrec (1.1.6.0) master; urgency=medium + + * feat: added generic fread/fwrite/fclose wrappers as a framework to support several (de)compression algorithms + * feat: add zstd support to ttyrec and ttyplay + ttyrec: add -Z option to enable on-the-fly compression if available + ttyrec: add --zstd to force on-the-fly zstd compression + ttyrec: add -l option to fine-tune the zstd compression ratio (between 1 and 19, default 3) + ttyrec: add --max-flush-time to specify a number of seconds after which we force zstd to flush + its output buffers to ensure somewhat idle sessions still get flushed to disk regularly + ttyplay: zstd decompression is automatically enabled if the file suffix is ".zst" + ttyplay: add -Z option to force on-the-fly zstd decompression regardless of the file suffix + ttytime: add a warning if timing a .zst file is attempted (not supported) + * feat: implement long-options parsing for ttyrec + * feat: add --name-format (-F) to specify a custom file name compatible with strftime() + * feat: add --warn-before-lock and --warn-before-kill options + * fix: abort if doinput() can't write to master + * chore: nicify termios debug output + * chore: get rid of help2man requirement + * chore: portability fixes, tested under Linux, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Darwin, Haiku, OmniOS + + -- Stéphane Lesimple (deb packages) Tue, 04 Jun 2019 10:17:11 +0200 + ovh-ttyrec (1.1.5.0) master; urgency=medium * First public release diff --git a/ttyrec.c b/ttyrec.c index 9b388b8..8dcf320 100644 --- a/ttyrec.c +++ b/ttyrec.c @@ -210,7 +210,7 @@ static time_t locked_since = 0; static int lock_warned = 0; static int kill_warned = 0; -static const char version[] = "1.1.5.0"; +static const char version[] = "1.1.6.0"; static FILE *fscript; static int child;