Commits


portable: template: use as a subproject Move template into its own subproject as it's only needed at compile-time and shouldn't be installed. This needs compiling with the host compiler which is configurable via HOSTCC and HOSTCLFAG environment variables. This diff largely from op@ but additional tweaking from myself.


portable: OpenBSD support Despite -portable existing to make the codebase compile on platforms other than OpenBSD, there's nothing wrong with making -portable still compile on that platform as well.


portable: configure.ac: fix libpanelw detection When not using pkg-config on those systems where it isn't installed, libpanelw should be checked within ncursesw as well -- such is the case on OpenBSD for example.


portable: gotwebd: use template This updates -portable's gotwebd instance to make use of the new templating engine.


portable: reorder system_extensions Cosmetic change only. No functional changes expected. Via Anna (cybertailor) Vyalkova


portable: add AM_PROG_AR Needed for stringent checks on Gentoo. Bug 879825. Via Anna (cybertailor) Vyalkova.


portable: check for sys/tree.h more fully When checking for sys/tree.h on non-BSD systems, either it will be in the standard include path (such as on MacOS), or it won't be found, until libbsd is overlayed. In cases where we want to find sys/tree.h via libbsd, perform a AC_CHECK_DECL for a known #define in sys/tree.h -- which will still find sys/tree.h in either location, or uses compat/tree.h in all other cases.


portable: remove sys/tree.h compat inclusion libbsd as a library was created some years back to pull together BSD-specific functionality to be used on non-BSD systems. When it was in its infancy, and not being widely adopted across non-BSD systems, there was often a need to carry around compat versions of sys/{queue,tree}.h This is no longer the case -- and the compat code for this has never worked on systems which lacked a compatible sys/tree.h header anyway, so remove this, and let the user know that libbsd is needed. A few people have mentioned this to me.


portable: macos: look for gnu bison harder When checking for GNU Bison (and presumably other) toolchain commands on MacOS, ther's two main systems most users use. Brew, and Ports. Both of these take different approaches when building software, and although a Portsfile exists for -portable now, those users who don't use that directly, or use brew, and try and build -portable from git directly, will likely be at the mercy of ./configure being able to go off and find the appropriate tools. Therefore, ./configure *tries* to be smart about handling this, and will go and check if brew(1) is installed and try and use that to determine the likely path for where it puts its software. Indeed, for MacPorts, the story is very different, and although some users might therfore use --prefix to ./configure to determine this path, there is an overloaded assumption between --prefix meaning where the binaries are to be installed, and --prefix meaning "go and look elsewhere for other applications". At some point, a dedicated configure option might be required. Reported by grey and jamsek.


portable: configure.ac: tidy/add summary Remove some unneeded comments which were references to files. Add a quick summary output at the end of ./configure which will aid with CI debugging.


portable: use a release variable for tarballs When creating a release tarball, use a GOT_RELEASE variable to determine the version of the release.


portable: MacOS: harden homebrew checks When building got-portable for MacOS, don't assume the toolchain programs are in /usr/local. This used to be true before Apple silicon existed, but since then the paths have changed. Instead, ask brew(1) for its prefix (if it's installed), or default to /usr/local if not. Noticed by Lucas.


portable: sockets: handle sa_len/ss_len portably In the sockaddr_storage struct, there can be a ss_len field. This is seen on some BSDs, but not Linux. Since this isn't POSIX-specific, there's no guarantee it will be available on all systems.


portable: configure: fix version string Older autotools versions need extra coaxing when running external programs.


portable: fix sys/queue,h detection When checking for specific sys/queue.h declarations, ensure to add the header file (sys/queue.h) to search, otherwise nothing will be found.


portable: add repo version to main string When compiling got-portable from source, outside of an official release tarball, it's often helpful to know which commit the binary was built from, especially for diagnostic purposes. This adds an extra hook to AC_INIT to derive whether -portable is being built in-tree or via a release tarball.


portable: MacOS: export env from configure Compiling -portable on MacOS directly would never have worked, as the environment was only being set when run under CI. Move these checks into configure.ac so that they propagate out to make, etc. Noticed by cjones on IRC.


Revert "portable: ci: macos: add libressl" Remove dependency on libretls as TLS isn't going to be included in gotwebd any time soon. This reverts commit af7f5027866eea7b4299c2319f83d0eb18a395e6.


portable: gotwebd: handle setres{g,u}id This isn't defined on all systems.


portable: ci: macos: add libressl


portable: add setproctitle This is needed for gotwebd.


portable: gotwebd: first stab at compilation This is not yet "clean", but does compile. A few things to consider: * See comments beginning with "TA:"


portable: honour sys/queue.h directly Don't assert compat/queue.h in favour of what's on the system. When -portable was first being developed, there were frequent clashes between libbsd, and the check for sys/queue.h got lost in that noise. Noticed by stsp@


portable: set next version


portable: set next version