Commits
- Commit:
73675c3a673715141c3872d1f25eafaffb1ac0a5
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
implement gotwebd test harness
Only a couple basic regress tests so far for the index/summary and diff
pages. Documentation is still needed.
ok stsp@
- Commit:
ccdddf69864eb9ac5c10c0f5d58b68df1cf26ea1
- From:
- Omar Polo <op@omarpolo.com>
- Date:
simplify SUBDIR+=cvg handling; ok stsp jamsek
- Commit:
0dba5d862f97a868d6190cc8071bd000351e1360
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
visit the cvg/ subdir during 'make clean' and 'make obj'
- Commit:
62fc447c67a98bd1a102ea4cb7b6da95a4d403b9
- From:
- Josh Rickmar <jrick@zettaport.com>
- Date:
Exclude cvg from release builds
- Commit:
3d1b16d126400e28a2cbab66b17dacd47a01763c
- From:
- Josh Rickmar <jrick@zettaport.com>
- Date:
Begin cvg
- Commit:
37ad0a50f29496187cdbfd590ff76d0f427c151a
- From:
- Christian Weisgerber <naddy@mips.inka.de>
- Date:
run the tog tests as part of the default regress set
ok and README update by jamsek
- Commit:
098596c5bf9520ed39f9a34e4733b6256d2ab453
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
make tog regress run with pledge active
ok jamsek
- Commit:
af21bb7e28a5a337eb50bfd364a1e1640c6f97b1
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
tog: implement automated test harness
Add framework for scripting tog tests by capturing screen dumps to compare
with expected output. Includes some preliminary log view tests but lots more
tests are needed to cover diff, blame, tree, ref, and help views.
ok stsp@
- Commit:
b09c127974759a56a6b5273da53d215f8500f5a7
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
add gitwrapper(1)
ok op@, tracey@ earlier version
- Commit:
0699137833e7cb9e377669787add963cafb545bc
- From:
- Tracey Emery <tracey@traceyemery.net>
- Date:
farewell, gotweb. you served us well. rm gotweb, ok stsp@
- Commit:
2c02675e51b8f7413665e81e1e2f3bf77ee9acb7
- From:
- Omar Polo <op@omarpolo.com>
- Date:
import template
ok tracey@
- Commit:
a32f631eeba8791f6e59bc1fbc7982ca2aa4f343
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
visit gotctl folder during make obj, release, and clean
- Commit:
6ae16afd7eb87b9d1ae10d16f29e1a66649decc7
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
add a test suite for gotd(8); check basic clone and send functionality
- Commit:
f1752522ac2fd00af85111c530b80ef1187a07f7
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
add gotctl(8); initially supported commands are 'info' and 'stop'
This will be used by an upcoming regress test suite for gotd(8).
ok tracey
- Commit:
13b2bc374c1870ec27b2eeb40efe68fd465f64bb
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
introduce gotd(8), a Git repository server reachable via ssh(1)
This is an initial barebones implementation which provides the absolute
minimum of functionality required to serve got(1) and git(1) clients.
Basic fetch/send functionality has been tested and seems to work here,
but this server is not yet expected to be stable.
More testing is welcome. See the man pages for setup instructions.
The current design uses one reader and one writer process per repository,
which will have to be extended to N readers and N writers in the future.
At startup, each process will chroot(2) into its assigned repository.
This works because gotd(8) can only be started as root, and will then
fork+exec, chroot, and privdrop.
At present the parent process runs with the following pledge(2) promises:
"stdio rpath wpath cpath proc getpw sendfd recvfd fattr flock unix unveil"
The parent is the only process able to modify the repository in a way
that becomes visible to Git clients. The parent uses unveil(2) to
restrict its view of the filesystem to /tmp and the repositories
listed in the configuration file gotd.conf(5).
Per-repository chroot(2) processes use "stdio rpath sendfd recvfd".
The writer defers to the parent for modifying references in the
repository to point at newly uploaded commits. The reader is fine
without such help, because Git repositories can be read without
having to create any lock-files.
gotd(8) requires a dedicated user ID, which should own repositories
on the filesystem, and a separate secondary group, which should not
have filesystem-level repository access, and must be allowed access
to the gotd(8) socket.
To obtain Git repository access, users must be members of this
secondary group, and must have their login shell set to gotsh(1).
gotsh(1) connects to the gotd(8) socket and speaks Git-protocol
towards the client on the other end of the SSH connection.
gotsh(1) is not an interactive command shell.
At present, authenticated clients are granted read/write access to
all repositories and all references (except for the "refs/got/" and
the "refs/remotes/" namespaces, which are already being protected
from modification).
While complicated access control mechanism are not a design goal,
making it possible to safely offer anonymous Git repository access
over ssh(1) is on the road map.
- Commit:
a596b9579655b53f1549498aff25ae1d2c9dfc81
- From:
- Tracey Emery <tracey@traceyemery.net>
- Date:
import gotwebd
thread fcgi response to client for rendering in browser as data is returned
fix potential problem with a stuck loop if the client is hammering the server with random clicks and stop/restarts
render our index! WOOHOO! small var refactoring.
fcgi.c to handle all clean-up, various error clean-up
remove output used to trace down got bug
temporarily stop overloading a socket, but a better solution needs to be found
return on fcgi_gen_response, so we can track if a client is writable or not
this stops page creation when the client is unavailable
remove old comments
enable profile building, although, i don't think this works thoroughly in a priv/proc daemon
catch more errors
correctly count repos
remove temp logger
we don't need to start our responder thread so early. move it to fcgi.c and start when we start processing html
kill the unneeded thread, stop queueing responses, and just write to clients immediately
clean up some memory leaks and dead stores
rework querystring so an error can be displayed instead of showing the index on
querystring error
get framework in place for the rest of the content
add server struct to response struct
bo last commit
get back a usable gotweb. not sure what i was thinking yesterday
properly move our structs around this time
remember index page for sitelink, fix leak
unused var is annoying, so stop it for now. don't forget to change this!
style
briefs nearly completed.
finish briefs output
add briefs to summary
cleanup some html
properly retrieve next and previous commit ids for list navigation
follow naddy's stailq macro change
we will never have a previous link on the summary page
goto correct label, so we get a previous link on the last page of briefs
don't wrap short line
simplify got_get_repo_commits code
start rendering a diff
start rendering a diff
this was by accident
finish diff output
functions cleanup
prepare for fd request
that was a stupid idea, just flush the priv_fd
bo that too. that won't work eith with append in mkstemp
that isn't going to work
actually zero out the priv_fd
missed seek to beginning of file was overwriting first line of diff
fsync our fd as well
add link to repo path by sitelink and add back verbose fcgi debugging that was removed
add modest write heuristics to fcgi_send_response
fix dead assignments and XXX comment where a leak is happening that I can't find right now
there was no leak. stsp is brilliant and knew it was the cache growing
prevent double-free, render prettier err output if we can
remove unused variables
correctly fix double-free
fix gotwebd to build with main's changes after rebase
fix double-free
don't error on index if pack files missing and fixup some error handling
render commits
finish up tag briefs and start the tag page
finish up tag page
unbreak TAGS and SUMMARY actions
grab the correct tag from the queue
unbreak TAGS and SUMMARY actions again
update some error handling
clean up unneeded code and start tree output
render tree
render branches
remove tags from summary if there aren't any
fix tree div structure and start blob render
render blob
render blame
fix tree href in briefs
clean up some css
add headref to querystrings
load correct commit for tree and diff
fixup some error output
update some copyright dates
add full SNI support
rm debug line found by Lucas6023, notified via IRC. thanks!!
fix tree
fix crash when querystring is manipulated to not have a commit id in certain
instances. also break a stuck while loop on client error.
fix for new got_object_id_by_path arguments
rebase and fix
prep for multiple fds per socket, instead of just one
fix overlooked shift/reduce conflicts
backout priv_fds as a list. after discussion with stsp, an array and length are the better direction
prepare array of fds to pass into got functions
make a new set of pack fds, which will be passed to got_repo_open
work with new pack_fds in got_repo_open
give output when no tags exist
escape html in blame output
change files listed in tree view to show blob, file commits, and blame, instead of blob, blob, blame. idea from mp4 on irc. this is way more handy.
stop populating the queue from the headref and figure out previous commit id
while iterating. this should reduce some overhead.
actually purge our sockets instead of not using the function
start work with new blob
rm volatile
use new diff
change func names
no more temp files
increase blame number line width
set content-type to text/plain so firefox won't download files
rm test infra for now
account for -Wwrite-strings
fix for sigs and algorithm choice
clean up some leaks and other mistakes
- Commit:
fbceed276169dca1e44e32d08e41f412e72190a5
- From:
- Klemens Nanni <kn@openbsd.org>
- Date:
Provide lib/Makefile to enable tags file generation
The root Makefile does not hook into lib/ via <bsd.subdir.mk> since it
is not a program itself and thus gets included by all others.
This means `make tags` skips lib/ and `make -C lib/ tags` does not know
what to do; provide a minimal <bsd.lib.mk> stub and hook it up just
for the "tags" such that *all* source is browsable via tags.
See /usr/share/mk/bsd.README for details.
Feedback stsp tb
OK tb
- Commit:
20662ea0d15900417adcea3b296822f88d2a38d4
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
introduce 'gotadmin info'
- Commit:
db914e36e29f87c8864368840936a88930229d20
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
traverse into gotweb during 'make release'
- Commit:
bb5b19e3e76cd78d622d174e0a2a718869a2c8fd
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
ensure that we always install static binaries to gotweb's chroot
Compile static libexec binaries for gotweb, keeping them separate from
the main build. Use the same source files but a separate set of Makefiles.
Previously, 'make web-install' installed whichever libexec binaries had
already been built, and if those happened to be dynamically linked they
failed to run inside the chroot which resulted in "privsep peer process
closed pipe" being rendered on the index page.
- Commit:
03b6a916452546769de4503dd1bbb3f0f7195c88
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
have 'make obj' recurse into gotweb; ok tracey
- Commit:
c08369d7b2d435a4c881c980f9a7192c5f7fc61a
- From:
- Tracey Emery <tracey@traceyemery.net>
- Date:
remove log counting, add to TODO
- Commit:
54415d85f1bbe99a1740cbad8ec7727c205c913b
- From:
- Tracey Emery <tracey@traceyemery.net>
- Date:
kn@ and stsp@ suggested changes
- Commit:
2c251c14c84a96ddb3a968cd30fd889ba363f805
- From:
- Tracey Emery <tracey@traceyemery.net>
- Date:
Initial gotweb branch import
- Commit:
33147df7bc894e4498cffb3b04fd04080132c5ce
- From:
- Sebastien marie <semarie@openbsd.org>
- Date:
.PHONY is a target
ok stsp@