* Reimplement JSON mgmt with clear separation of read/write actions
* Reduce boilerplate by using a table driven command definition for json mgmt commands
* Port tools to use new json api
* Add a basic authentication for json mgmt commands
* If a auth key is given, it must match
* Add auth key to management scripts
* Add a flag bitfield to clearly turn the tag param into a options list
* Allow simple pass-through of any command from n2nctl
* Convert the n2nctl to use an object oriented interface
* Handle sigpipe in the n2nhttpd - this happens if the remote client disconnects unexpectely
* Remove some repetition from the server
* Use the correct options to allow reuseaddr
* Dont generate a scary message on ctrl-c
* Convert n2nhttpd to use object based RPC
* Use the same longopt for both tools
* Pass any extra args through to the RPC
* Add some documentation for the scripts in the repository
* Spelling fix
* Add documentation for the JSON reply mangement API
* Add management commands to show data in JSON format
* Add a script to query the JSON management interface
* Suprisingly, the github runner does not have flake8 installed
* Add n2nctl debugging output to show the raw data received from the JSON
* Ensure well known tag wrap-around semantics
* Try to ensure we check every edge case in the protocol handling - only valid packets are allowed
* Add a very simple http to management port gateway
* Fix the lint issue
* Consolidate all binaries into one artifact bucket
* Remove unused variables from cmake matrix
* Consolidate dpkg and rpm packages into one bucket each
* Consolidate all the coverage reports into one bucket
* Consolidate all the test outputs into one bucket
* Avoid the artifact prefix removal using a simple hack, but upload the expected test results as a consequance
* Make test workflow smoke test use the same internal name as descriptive name
* Refactor workflow to be test_os then build for that OS
* Run tests on all available github runner environments
* Ensure that dpkg builds will fail if the compile fails
* Allow explicitly overriding the debian package architecture
* Pass the detected architecture into the dpkg build process
* Use the possibly overridden MACHINE variable to calculate the short machine name
* Remove unused variable
* Remove unused AC_SUBST
* Allow EXTN to be overridden instead of MACHINE
* Add crossbuilding for dpkg builds
* Ubnuts dont got no crossbuild for mips
* Use the correct value for EXTN
* Add an example cross compile build
* Harmonise the naming to reflect full architecture and if it is a real package or not
* Add some more example cross compile targets
* Only one RPM package is created, so use the singular word
* Dont use build triplet for OS packages, use the OS prefered arch name
* Add some cross compiling documentation to the Building.md
* Allow an autobuilder with no access to private key material to create testable packages
* Initial dpkg build - will need helpers installed to work
* Start adding required dpkg helpers
* Tweak package artifact names
* Add a windows 'package' builder
* Ensure prefix path handling deals with current directory change when descending to tools dir
* The tools makefile currently only needs the SBINDIR path to install properly
* Add a macos 'package' builder
* Remove unused configure variables
* Without commit history, some of the automatic version numbering will fail
* Add an rpm builder
* Need to set the env var for the rpm build before we change our working dir
* Allow gpg signing to fail for generating test rpm packages
* Unfortunately the rpm spec file hardcodes some path assumptions, so we need to use hacks to work around them
* Return to the top dir before moving things around
* A small change to make actions re-run the pipeline
* Name this workflow file with a nicer looking name
* Start adding helper functions to the wire tests
* Add tests for two more wire functions
* Update test expects with new test data
* Use the normal mac address format, like a boss
* Provide a minimal reimplementation of our autoconf, to try windows builds
* Try building with windows
* Fix thinko in spelling
* Ensure shell script runs inside a shell
* Add a hack to aid include discovery
* Just keep adding tech debt...
* Assume that we will have slashes in some of the replacement strings and avoid that char with sed
* Restore one slash
* Hack around the tools makefile interdependancy bug
* A correct cflags include hack for each compile dir
* Ensure we link against winsock (note, even though this says 32bit, it should link the 64bit library ... I think)
* Bad link ordering if we dont use LDLIBS
* Remove unused make variable
* Remove makefile duplication using inheritance (this does mean you can no longer cd tools; make, but must do make tools)
* Add missing library for win32
* Show OS variable
* Make hack autoconf more robust for tests on non gitlab runners
* Remove no longer used substitutions from hack autoconf
* Add missing include path to tools under win32
* Build the win32 subdir when the compiler is Msys
* The different subdirs have different dependancies
* Ensure we can find the include files
* Fix library link ordering
* Ensure the tools dir can find the special win32 lib
* Deal with the differing basic type sizes on both linux/64bit and windows/64bit
* Document the steps to mimic the github windows/mingw build locally - to allow for simpler debugging
* Ensure branch name in instructions matches my test branch name
* Clarify the shell needed to build with mingw
* Since the makefile depends on knowing the OS, raise a fatal error if we cannot determine this
* Handling different compile environments is hard.
- Linux: sane and reasonable results for both uname -s (=Linux) and
uname -o (=GNU/Linux)
- Windows/Mingw: insane results for uname -s
(=MSYS_NT-$MAJOR.$MINOR-$BUILDNR) but sane results for uname -o (Msys)
- Macos: sane results for uname -s (=Darwin) but does not support
uname -o at all
* Revamp the way that Mingw is detected
* Avoid attempting to generate gcovr report when running under windows
* Whoops, isolate the right step
* Fix spelling mistake
* win32/Makefile: Remove unused setting and add comment
* ensure that all win32 includes use the same expected path
* Allow simpler cross compilation by letting configure pass the CC and AR environment through
* Avoid multiple '_CRT_SECURE_NO_WARNINGS redefined' warnings
* Convert to a consolidated CONFIG_TARGET variable to select any different compile options
* Use the more generic printf defines to avoid warnings on mingw
* Update mingw build docs
* English better for reader happy make
* Address a number of mingw compiler warnings
* Fix Visual C compile
* Be sure to document some of the hacky nature of the mingw build
* Just for a laugh, lets naively throw the same build at non linux OS
* Only run apt commands on linux (yes, this is not actually right, but it is close enough for github actions at the moment)
* Start installing required macOS packages
* Only run apt commands on linux #2
* Ensure that we use a Bourne shell, even on Windows
* Until it is clear how to install autotools on windows in github runners, avoid fighting that bear
* Only try to run gcovr on ubuntu-latest
* Install the right macos dep
* Install gcovr on macos and upload all coverage report artifacts
* Upload a generated tests output artifact, even if the tests failed
* Prepend a quick smoke test to the full matrix and coverage builds
* Use short names for jobs
* Add a simple test framework
* Add a code coverage report example oneliner
* Move the coverage report into a separate directory
* Add a github action to run tests and publish a branch with the coverage report
* Fix: Missing job separator
* Fix: remember to actually run configure
* Fix: Gotta autogen before I configure
* Dont try to upload coverage report unless this is a push
* Clearly show the git ref tested in the coverage report
* Add a test for the various transforms
* Add tests for the elliptic curve and pearson hash
* Ensure we ignore new generated output
* Remove unneeded boilerplate from the compression tests
* Add an example of a test of the encoded wire packets
* Ensure that correctly testable data is output even when zstd is not compiled
* Factor test runner out into its own script and attempt to add it to the cmake file
* Tell cmake about a new object file
* Stop trying to make Cmake work...
* Stop trying to make cmake work, round 2
* In the middle of a thousand lines of cmake output was one important one - windows could not find assert() - try again
* Try again to plumb the tests into cmake
* Add missing library to our superset install line
* Fix build error when libcap-dev is installed
* Switch to using artifact uploads instead of pages to store/show the coverage report
* Fix artifact upload yaml
* Upload coverage report to codecov
* Fix codecov - clearly it doesnt do a recursive search for coverage files
* Fix codecov - my hopeful use of a list of directories didnt work
* Fix codecov - unfortunately, it doesnt just consume the coverage data and needs us to generate the gcov output
* Fix codecov - nope, it still doesnt recursively search
* Fix codecov - it really helps if I run the gcov data generator
* Add a simple matrix build
* Fix older ubuntu versions of gcovr that do not support the '--html-title' option
* Ensure we use gcover options that are identical on older ubuntu
* Improve coverage generation and required build packages
* Move the makefiles towards a clearer arrangement
* Break circular make dependancy and start using implicit rules for most compilation
* Fix old cmake to compile again after renames
* Fix the mismatched char, uint8_t warnings
* Ensure we leave room for zero termination and then ensure the string is terminated
* GCC has a warning if it thinks your could overflow your snprintf buffer, but dont check for said overflow