From: Stefan Sperling Subject: Re: FreeBSD port summary To: Christian Weisgerber Cc: gameoftrees@openbsd.org Date: Thu, 17 Sep 2020 11:08:33 +0200 On Thu, Sep 17, 2020 at 12:10:50AM +0200, Christian Weisgerber wrote: > So I have a FreeBSD port for got 0.39. See the end of this message > for a list of patches, additional library functions, and interposed > header files. > > Some of this is unavoidable, e.g. FreeBSD has no bsd.regress.mk. > There are various odds and ends, but apart from OpenBSD-specific > APIs the principal issues are... > > Code: > * FreeBSD deviates from POSIX and has open(symlink, NO_FOLLOW) > return EMLINK instead of ELOOP. > * Mismatches around int64_t, time_t, and format strings. > > Shell scripts (regress/cmdline): > * OpenBSD followed GNU sed(1) and introduced -i with an optional > argument. FreeBSD added -i with a mandatory argument. There > is no way to specify an empty suffix that satisfies both > syntaxes. > * mktemp(1) is non-standard, and despite FreeBSD having copied it > from OpenBSD, they are now somewhat incompatible. > > Except for test_log_in_worktree_different_repo, all regression tests > succeed. This may be a related bug: > > $ got co got.git > got: realpath: /home/naddy/got: No such file or directory > > (An explicit "got co got.git got" works fine.) > > Anyway, I'll import this into the FreeBSD ports tree soon. Will this be maintained exclusively in the FreeBSD ports tree? Or do you want to re-use some existing project infrastructure? E.g. do you want a "got-freebsd" repo on git.gameoftrees.org? This could serve as a collaboration point with others who are interested in this port. You could add a branch to this -freebsd repo which tracks the main branch of the OpenBSD version like a vendor branch. Then you could use 'git merge' to sync the two (not currently possible with got, but a 'got merge' command would be easy to add if you want it). I could also improve management of the website. Currently it is just plain files on disk, and I use a private Mercurial repo to store the files. I could publish a 'www' git repo and configure automatic deployment. Then you could add a freebsd-specific page to the site and publish your own distfiles into the releases/ subdirectory which the freebsd port could fetch.