Commit Briefs
portable: add CHANGELOG (tags/0.60)
Although there is already a CHANGES file, the CHANGELOG is used to indicate any -portable specific changes which have happened for that release. All version numbers in -portable correspond to their OpenBSD counterpart.
tog: make blame view work
Fix the thread comparison with tog's blame view.
dist: rework files for distcheck
Rather than having a toplevel EXTRA_DIST target in the toplevel Makefile.am file, move the relevant files to their own Makefile.am locations.
regress: port cmdline tests
This commit introduces the 'make tests' target which will run the cmdline/* tests.
configure: bump version
Follow the same version as got itself.
xmalloc: remove wrapper as no longer needed
There is only one user which calls xrecallocarray: ibuf_realloc(). We already provide recallocarray() in the compat layer so ibuf_realloc() can simply call recallocarray() directly, as it does on OpenBSD. OK thomas.adam
sterror: use XPG version on GLIBC
It looks like autoconf 2.69 will not provide XPG strerror_r even if the appropriate macros are set which request the XPG version. Until this is fixed in autoconf and that version is more widely-adopted, this approach will provide what's required. Originally from Stefan Sperling, tweaked by me.
autoconf: add wrapper script
This adds a 'autogen.sh' wrapper script for generating configure. README.portable is also updated accordingly.
regress: fix test failures using ln(1)
GNU ln uses -T instead of -h for no-target-directory. OK thomas.adam
regress: fix test failures using date(1)
This patch fixes test failures related the date(1) utility. In the long term we could add a wrapper function to detect valid options for date(1) and use the variant which works on the current OS. For now, this makes some tests pass and shows us where the problems are. OK thomas.adam
enable gotadmin
Add gotadmin to configure.ac, etc., so it can be built and installed. OK thomas.adam
automake: Fix path to libexec directory
The got_lib_privsep.h header expects the path to the libexec directory to be called GOT_LIBEXECDIR. At the moment it always falls back to using /usr/libexec. Fix what looks to be a typo.
ncurses: only look for widechar version
When checking for ncurses, only check against the widechar version of the library, otherwise the code won't work correctly, despite it compiling properly. Helped by Thomas Dickey.
portable: initial Linux compilation
This commit modifies the GoT main branch to be able to compile it under linux.
fix histedit_no_op test which was failing randomly
A no-op replayed history ends up having exactly the same commit IDs if all commits are created at roughly the same moment in time. There are no content changes involved so if commit timestamps do not differ then commit hashes will be the same. In which case there is no fork in history for 'got histedit -l' to display, yet the test was always expecting a fork in history to be displayed. Update the test to take this issue into account. The test will now pass no matter which result is produced by the histedit operation. Problem found by Lucas who observed that this test was randomly failing. Patch also provided by Lucas.
tog: use sched_yield(2) instead of pthread_yield(3) for portability
pthread_yield(3) is an optional POSIX 2001 extension while sched_yield(2) is part of POSIX 2008. On OpenBSD they are actually equivalent, albeit not documented as such. Using sched_yield(2) helps the -portable version. Patch by Quentin Rameau
shell code fixes
Escape sequences are not handled by every echo(1), e.g. not on FreeBSD. '?' is a glob character and must be quoted. '!' is not a shell meta character. ok tracey stsp