If there is a way to turn off the mingw insistence that it will rewrite
the filename it was given in the "-o" options, I have not been able to
find it. I could easily handle all the moves or renames at the end of
the build process if I could turn off this feature. Especially since it
means that make often thinks that the file has not been built (the
filename that make knows about is not the file that actually gets built
by the mingw gcc, so the if-newer tests that make applies will always
fail)
It looks to me that the correct way to address this build wrinkle is
simply to add the win32 functions to the libn2n when building a win32
output, then there is no additional magic library juggling required for
the win32 case
There is a minor change - after this, the macos man pages are also
installed into the /usr/local PREFIX. This seems like the correct
location to me.
Longer term, the usual autotools process of installing everything into
/usr/local should be used. Files installed in /usr should be done by
a package management tool, so this default makes sense to use.
Replacing the previous attempt (using a debhelper) with simply changing
the way we compress the man pages.
The debhelper didnt appear to be working - perhaps because the man page
compression was not done within the debian package build framework.
* Make it clear which hash we are testing
* Coverage for all pearson hash variants
* Initial coverage for auth.c
* Add some more auth.c coverage
* Ensure new bins are added to both build systems
* Ensure new source files are fully linted
The `DOCKER_IMAGE_VERSION=` line was modified in commit 4d36f9f613 in
2019 and has been wrong ever since. It is using the shell variable
syntax, which does not work in Makefiles.
Add a warning message for anyone trying to use it.
* Address shellcheck concerns with n2n_gateway.sh script
* Rename n2n_gateway.sh to live with all the other scripts (and update docs)
* Rename hack_fakeautoconf to make it clearly a shell script
* Address shellcheck concerns with hack_fakeautoconf.sh
* Rename python scripts to match other n2n tools
* Fix windows compile - when streamlining the use of hack_fakeautoconf.sh, I forgot to update all uses of this script
* Factor build packages out into a more maintainable list
* Create a location for scripts to live
* Provide a make target to return the source dir as close as reasonable to the original distributed state
* Add a code lint step, checking the coding style
* Change test harness as recommended by shellcheck
* Ensure we actually have the linter tool installed
* Use the correct directory for cmake to run the tests
* Adjust for the older uncrustify in the current github ubuntu-latest
* Make one file pass the linter
* Integrate the lint with the existing test workflow
* Add files with minimal changes needed to the linter
* Add more files with minimal changes needed to the linter
* Dont build binaries if we fail the lint test
* Update the phony targets with the lint steps
* Ensure the flake8 package is installed in the new lint workflow job
* Use the makefile to drive the packages needed to install for linting
* No need to add dependancies on lint, just rely on the workflow status to show failure
* Update the scripts dir README to reflect current assumptions
* Rename and briefly document the indent.sh script
* Fix the ignore to ignore the right Makefile
* Rename the test_harness script to make it clear it is a shell script
* Provide a master lint make target and add a shell script lint tool
* Elminate stray tabs
* Drop include/auth.h from linter - there are inconsistant results with function definitions when using the current uncrustify rules
* 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
* 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
* 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