Got-portable Changelog
======================

This file details portable-specific changes to make things work on systems
other than OpenBSD.

All changes are on top of the versioned changes listed in CHANGES.

# got-portable 0.123 (2026-02-25)

* Changes from got-0.123

  Plus:
    - portable: add got-portable.7 man page

      This introduces a new got-portable man page which has some helpful
      information for the -portable versio of GoT.  Especially with
      configuring services such as gotwebd(8).

    - portable: MacOS: portably handle sockets

      Socket handling on MacOS needed extra help with SOCK_NONBLOCK and
      SOCK_CLOEXEC.  This is how handled via fcntl() in those cases.  This
      applies across the code base.  This is just being used on MacOS.

# got-portable 0.122 (2026-02-10)

* Changes from got-0.122

  No -portable changes worth mentioning.

# got-portable 0.121 (2026-01-31)

* Changes from got-0.121

  - Introduce gotwebctl binary

# got-portable 0.120 (2025-10-03)

* Changes from got-0.120

  Plus:
    - gotwebd: include files/ in dist
    - gotsh: allow out-of-tree builds

# got-portable 0.119 (2025-09-29)

* Changes from got-0.119

  This -portable release now tracks the same auth methods in gotwebd, as
  got.got does.

# got-portable 0.118.1 (2025-09-10)

  This a -portable maintenance/bug-fix release:

  - Remove sha{1,2}.h from source files as these are included portably.

# got-portable 0.118 (2025-09-09)

* Changes from got-0.118

  No -portable changes worth mentioning.

# got-portable 0.117 (2025-08-18)

* Changes from got-0.117

  Plus:
    - regress: replace "sed -i" with ed(1) for portable in-place editing

# got-portable 0.116 (2025-07-27)

* Changes from got-0.116

  No -portable changes.

# got-portable 0.115 (2025-06-27)

* Changes from got-0.115

  No -portable changes.

# got-portable 0.114 (2025-06-23)

* Changes from got-0.114

  No -portable changes.

# got-portable 0.113 (2025-06-05)

* Changes from got-0.113

  No -portable changes.

# got-portable 0.112 (2025-05-15)

* Changes from got-0.112

  No -portable changes.

# got-portable 0.111 (2025-04-22)

* Changes from got-0.111

  No -portable changes worth mentioning.

# got-portable 0.110 (2025-03-21)

* Changes from got-0.110

  No -portable changes worth mentioning.

# got-portable 0.109 (2025-02-16)

* Changes from got-0.109

  No -portable changes with this release.

# got-portable 0.108 (2025-01-24)

* Changes from got-0.108

  Plus:
    - libutil sync for imsg updates.

# got-portable 0.107 (2024-01-05)

* Changes from got-0.107

  The -portable release also includes the following changes:

  - Add additional test suite information to README.portable.
  - Fix seq(1) calls in tests.

# got-portable 0.106 (2024-11-28)

* Changes from got-0.106

  Plus:
    - libutil sync changes from OpenBSD so that imsg works on Linux.

# got-portable 0.105 (2024-11-14)

* Changes from got-0.105

  No -portable changes worth mentioning.

# got-portable 0.104 (2024-10-22)

* Changes from got-0.104

  No -portable changes worth mentioning.

# got-portable 0.103 (2024-09-10)

* Changes from got-0.103

  No -portable changes worth mentioning.

# got-portable 0.102 (2024-08-15)

* Changes from got-1.02

  No -portable changesw worth mentioning.

# got-portable 0.101 (2024-07-12)

* Changes from got-0.101

  No -portable changes worth mentioning.

# got-portable 0.100 (2024-06-03)

* Changes fro, got-0.100

  No -portable changes worthj mentioning.

# got-portable 0.99 (2024-05-05)

* Changes from got-0.99

  The -portable release also includes the following changes:

  - The `--enable-gotd` ./configure flag has been removed; gotd is now built
    unconitionally.
  - Some small portability fixes now that FreeBSD has switched over to using
    this.

# got-portable 0.98.2 (2024-04-25)

* Changes from 0.98.1

  - Include missing got helper got-fetch-http 

# got-portable 0.98.1 (2024-04-25)

* Changes from got-portable-0.98

 - Fix release tarball to include missing utd8d.h when using --enable-gotd

# got-portable 0.98 (2024-04-25)

* Changes from got-0.98

  The -portable release also includes the following changes:

  - GOT_DEFAULT_EDITOR can now be passed as a #define so that the path to
    vi(1) can be changed.  Default is /usr/bin/vi
  - regress: drop jot as a dependency and use seq(1)

# got-portable 0.97 (2024-03-11)

* Changes from got-0.97

  No -portable changes worth mentioning.

# got-portable 0.96 (2024-02-13)

* Changes from got-0.96

  No -portable changes worth mentioning.

# got-portable 0.95 (2023-12-09)

* Changes from got-0.95

  No specific -portable changes worth mentioning.

# got-portable 0.94 (2023-11-30)

* Changes from got-0.94

  -portable ships with an experimental/work-in-progress cvg(1) utility, which
  is disable by default, but can be enabled via the configure flag
  --enable-cvg.  It's is not recommended for use at this time though.

# got-portable 0.93 (2023-09-18)

* Changes from got-0.93

  No specific -portable changes worth mentioning.

# got-portable 0.92 (2023-08-29)

* Changes from got-0.92

This release also introduces 'gotd', which is got's server implementation.  By
extension, other tools are also introduced to work with gotd, and they are:

* gitwrapper
* gotctl
* gotsh

For more information about gotd, see gotd(8), as well as the above command man
pages where necessary.  Note that gotd's portable implementation uses chroot()
to ensure some separation; this still requires the main gotd binary to run as
the root user.

To enable gotd and the corresponding other tools which work with it, you must
pass the '--enable-gotd' ./configure flag.

Further installation instructions can be found in the README.portable file in
the root directory of the project.

# got-portable 0.91 (2023-07-19)

* Changes from got-0.91

  No specific -portable changes worth mentioning.

# got-portable 0.90 (2023-06-26)

* Changes from got-0.90.

  No specific -portable changes worth mentioning.

# got-portable 0.89 (2023-06-08)

* Changes from got-0.89.

  No specific -portable changes worth mentioning.

# got-portable 0.88 (2023-05-02)

* Changes from got-0.88.

  No specific -portable changes worth mentioning.

# got-portable 0.87 (2023-04-22)

* Changes from got-0.87.

  A few -portable changes to tidy up a few things.  See the repository history
  for more details.

# got-portable 0.86 (2023-03-13)

* Changes from got-0.86; no -portable specific changes worth mentioning.

# got-portable 0.85 (2023-03-08)

* Changes from got-0.85.

There's been a tonne of -portable-specific changes in this release which aim
to make portability easier across the supported systems.  In particular,
there's been a lot of header cleanups, and now that -portable is using
config.h, this has allowed dependencies to be split out, so that ncurses is
only linked where required (tog).  This should allow for multipacking where
needed.

There have also been some great improvements to regress (which is the test
suite) to remove GNU-specific wrappers for date(1), sed(1), ln(1).

There's too many commits to list here, but for the specifics, see the
differences between '0.84.1..0.85'.

Thanks in particular to Christian "naddy" Weisgerber for his help with this
work, and this -portable release.

# got-portable 0.84.1 (2023-02-24)

This is a bug-fix -portable release to address the following:

* Switch to using AC_CHECK_DECL to avoid cross-compilation issues when running
  on Void Linux.
* Add libbsd check to template sub-project.

# got-portable 0.84 (2023-02-23)

* Changes from got-0.84.  Portable change include:

* portable: allow for yacc to be found via setting YACC env var.

# got-portable 0.83 (2023-01-31)

* Changes from got-0.83; no -portable specific changes worth mentioning.

# got-portable 0.82 (2023-01-23)

* Changes from got-0.82; no -portable specific changes worth mentioning.

# got-portable 0.81 (2023-01-19)

* Changes from got-0.80 and got-0.81.  Portable changes include:

* portable: Moving template/ to its own subproject (only used at compile-time)
* portable: configure.ac: fix libpanelw detection
* portable: __xpg_strerror_r: add forward-decl

# got-portable 0.79 (2022-11-08)

* Changes from got-0.79; ; no -portable specific changes worth mentioning.

# got-portable 0.78 (2022-11-03)

* Changes from got-0.78; ; no -portable specific changes worth mentioning.

# got-portable 0.77 (2022-10-24)

* Changes from got-0.77; ; no -portable specific changes worth mentioning.

# got-portable 0.76 (2022-09-23)

* Changes from got-0.76; no -portable specific changes worth mentioning.

# got-portable 0.75.1 (2022-09-13)

This is a bug-fix -portable release to address the following:

* portable: macos: look for GNU Bison in more places, based on whether brew or
  MacPorts is in use, and failing to find Bison that way, look in a few
  hard-coded but likely locations.
* portable: remove compat sys/queue.h -- this now makes libbsd a core
  dependency on those systems which require it.

# got-portable 0.75 (2022-09-10)

* portable: import gotwebd
* portable: improve <sys/queue.h> inclusion
* portable: portably wrap socket functions between BSDs/Linux
* portable: improve homebrew support for MacOS

# got-portable 0.74 (2022-07-14)

* portable: made the 'date' command more portable in the test suite.
* portable: improved error-handling for commands on BSD-systems without
  coreutils being installed.
* portable: reworked how 'sed' is wrapped portably, so that it now doesn't use
  any bashisms, and will therefore run under strict POSIX-sh (dash on Ubuntu,
  for instance).

# got-portable 0.73 (2022-07-04)

* Changes as found in got-0.73.
* portable: the libexec helpers now support Capsicum on FreeBSD, which is
  similar to OpenBSD's pledge() syscall.
* Some portable work has taken place, but these have been merged upstream and
  hence will be in the got-0.73 changes file.

# got-portable 0.71 (2022-06-23)

* portable: fix cross-compilation, from Leah Neukirchen

# got-portable 0.70 (2022-05-13)

* Changes from got-0.70; no -portable specific changes worth mentioning.

# got-portable 0.69 (2022-04-24)

* portable: added Apline Linux to the core set of OSes when checking CI/CD -
  this therefore implies -portable can build on muscl as well as glibc.
* portable: fixed compilation of -portable on Alpine Linux with respect to
  Landlock by using the correct header file.
* portable: added SipHash as a -portable implementation.

# got-portable 0.68.1 (2022-03-22)

* portable: fix up a bad merge whereby a code block that should have been
  removed was left in-situ.

# got-portable 0.68 (2022-03-22)

* Changes from got-0.68
* portable: support for the following operating systems:
  - FreeBSD
  - NetBSD
  - DragonFlyBSD
  - MacOS

# got-portable 0.67; (2022-02-20)

* Changes from got-0.66
* Landlock support: portable now has support for the landlock API which
  is similar to unveil(), allowing restrictions to which part of the
  filesystem a process can access.

# got-portable 0.66; (2022-01-12)

* Changes from got-0.65

# got-portable 0.65; (2022-01-06)

* Added timespec*() compat-wrappers for BSD-time functions.

# got-portable 0.64; (2021-11-24)

* regress: make tests POSIX-compliant by making them run under dash (Ubuntu)

# got-portable 0.62; (2021-10-17)

* Changes from got-0.62

# got-portable 0.61; (2021-10-09)

* Port regress tests.
* Improve FreeBSD compatibility.

# got-portable 0.60; (2021-09-21)

* First portable version released for Linux.
