inital commit
la-ninpre leobrekalini@gmail.com
Tue, 02 Nov 2021 19:00:35 +0300
18 files changed,
256 insertions(+),
0 deletions(-)
jump to
A
README.md
@@ -0,0 +1,27 @@
+# cgit port for openbsd + +this is slightly tweaked version of cgit for my personal usage. + +## build instructions + +make sure your user is in `wsrc` group. + +checkout the ports tree to `/usr/ports` (see [openbsd porter's handbook][1]). + +[1]:https://www.openbsd.org/faq/ports/ports.html#PortsFetch + +in `/usr/ports` run the git clone: + +``` +git clone https://git.aaoth.xyz/cgit-port.git +``` + +this should replace cgit with this version. + +cd into `www/cgit` and run: + +``` +make && doas make install +``` + +see `/usr/local/share/doc/pkg-readmes/cgit` for further instructions.
A
www/cgit/Makefile
@@ -0,0 +1,38 @@
+# $OpenBSD: Makefile,v 1.27 2020/04/04 19:28:31 kn Exp $ + +COMMENT = web frontend for git repositories + +DISTNAME = cgit-1.2.3-la-ninpre +CATEGORIES = www devel + +# upstream has git 2.25.1 called out as the specific version to build against +# https://git.zx2c4.com/cgit/commit/?id=fde897b8171ed2e925b44ec6f69590ec07241017 +DISTFILES = ${DISTNAME}.tar.gz:0 \ + git-2.32.0.tar.gz:1 + +MASTER_SITES0 = https://git.aaoth.xyz/cgit.git/snapshot/ +MASTER_SITES1 = https://www.kernel.org/pub/software/scm/git/ +HOMEPAGE = https://git.zx2c4.com/cgit/about/ + +# GPLv2 +PERMIT_PACKAGE = Yes + +USE_GMAKE = yes + +BUILD_DEPENDS = textproc/asciidoc +LIB_DEPENDS = converters/libiconv + +PREFIX = ${VARBASE}/www +MAKE_FLAGS += V=1 NO_GETTEXT=1 NO_LUA=1 LDFLAGS+='${STATIC} -L${LOCALBASE}/lib' + +ALL_TARGET = all doc-man + +post-extract: + rmdir ${WRKSRC}/git + mv ${WRKDIR}/git-* ${WRKSRC}/git + +post-install: + mv ${PREFIX}/htdocs ${PREFIX}/cgit + ${INSTALL_MAN} ${WRKBUILD}/cgitrc.5 ${WRKINST}${LOCALBASE}/man/man5 + +.include <bsd.port.mk>
A
www/cgit/distinfo
@@ -0,0 +1,4 @@
+SHA256 (cgit-1.2.3-la-ninpre.tar.gz) = GG3MmzyhKuzO86QfgZ6LJ+mrJmNERxezWqQy8KjnIZU= +SHA256 (git-2.32.0.tar.gz) = YDjwbTlrqdqy7uVBx9tuf5+Efxgexi89hEGJP4xGk5g= +SIZE (cgit-1.2.3-la-ninpre.tar.gz) = 129518 +SIZE (git-2.32.0.tar.gz) = 10321570
A
www/cgit/patches/CVS/Entries
@@ -0,0 +1,5 @@
+/patch-Makefile/1.9/Sat Aug 4 09:19:35 2018//TOPENBSD_7_0 +/patch-cgit_mk/1.1/Mon Jul 15 07:00:49 2013//TOPENBSD_7_0 +/patch-filter_c/1.3/Sat Aug 4 09:19:35 2018//TOPENBSD_7_0 +/patch-setup_c/1.1/Wed Mar 22 20:23:52 2017//TOPENBSD_7_0 +D
A
www/cgit/patches/patch-Makefile
@@ -0,0 +1,31 @@
+$OpenBSD: patch-Makefile,v 1.9 2018/08/04 09:19:35 kn Exp $ +Index: Makefile +--- Makefile.orig ++++ Makefile +@@ -2,11 +2,11 @@ all:: + + CGIT_VERSION = v1.2.3 + CGIT_SCRIPT_NAME = cgit.cgi +-CGIT_SCRIPT_PATH = /var/www/htdocs/cgit +-CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH) +-CGIT_CONFIG = /etc/cgitrc +-CACHE_ROOT = /var/cache/cgit +-prefix = /usr/local ++CGIT_SCRIPT_PATH = /var/www/cgi-bin ++CGIT_DATA_PATH = /var/www/htdocs ++CGIT_CONFIG = /conf/cgitrc ++CACHE_ROOT = /tmp/cgit ++prefix = ${PREFIX} + libdir = $(prefix)/lib + filterdir = $(libdir)/cgit/filters + docdir = $(prefix)/share/doc/cgit +@@ -90,8 +90,6 @@ install: all + $(INSTALL) -m 0644 cgit.png $(DESTDIR)$(CGIT_DATA_PATH)/cgit.png + $(INSTALL) -m 0644 favicon.ico $(DESTDIR)$(CGIT_DATA_PATH)/favicon.ico + $(INSTALL) -m 0644 robots.txt $(DESTDIR)$(CGIT_DATA_PATH)/robots.txt + $(INSTALL) -m 0644 about.md $(DESTDIR)$(CGIT_DATA_PATH)/about.md +- $(INSTALL) -m 0755 -d $(DESTDIR)$(filterdir) +- $(COPYTREE) filters/* $(DESTDIR)$(filterdir) + + install-doc: install-man install-html install-pdf +
A
www/cgit/patches/patch-cgit_mk
@@ -0,0 +1,11 @@
+$OpenBSD: patch-cgit_mk,v 1.1 2013/07/15 07:00:49 jasper Exp $ +--- cgit.mk.orig Sun Jul 14 23:18:05 2013 ++++ cgit.mk Sun Jul 14 23:18:39 2013 +@@ -17,6 +17,7 @@ $(CGIT_PREFIX)VERSION: force-version + + # CGIT_CFLAGS is a separate variable so that we can track it separately + # and avoid rebuilding all of Git when these variables change. ++CGIT_CFLAGS += -L${LOCALBASE}/include + CGIT_CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"' + CGIT_CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"' + CGIT_CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"'
A
www/cgit/patches/patch-filter_c
@@ -0,0 +1,20 @@
+$OpenBSD: patch-filter_c,v 1.3 2018/08/04 09:19:35 kn Exp $ +Wtf. +Index: filter.c +--- filter.c.orig ++++ filter.c +@@ -149,12 +149,13 @@ static struct cgit_filter *current_write_filter = NULL + + void cgit_init_filters(void) + { ++ return; + libc_write = dlsym(RTLD_NEXT, "write"); + if (!libc_write) + die("Could not locate libc's write function"); + } + +-ssize_t write(int fd, const void *buf, size_t count) ++ssize_t wtf__write(int fd, const void *buf, size_t count) + { + if (fd != STDOUT_FILENO || !filter_write) + return libc_write(fd, buf, count);
A
www/cgit/patches/patch-setup_c
@@ -0,0 +1,22 @@
+$OpenBSD: patch-setup_c,v 1.1 2017/03/22 20:23:52 landry Exp $ + +Dont openbsd dev/null, doesnt exist in the default chroot + +--- git/setup.c.orig Wed Mar 1 21:01:06 2017 ++++ git/setup.c Wed Mar 1 21:01:56 2017 +@@ -1024,6 +1024,7 @@ const char *resolve_gitdir(const char *suspect) + /* if any standard file descriptor is missing open it to /dev/null */ + void sanitize_stdfds(void) + { ++#if 0 + int fd = open("/dev/null", O_RDWR, 0); + while (fd != -1 && fd < 2) + fd = dup(fd); +@@ -1031,6 +1032,7 @@ void sanitize_stdfds(void) + die_errno("open /dev/null or dup failed"); + if (fd > 2) + close(fd); ++#endif + } + + int daemonize(void)
A
www/cgit/pkg/CVS/Entries
@@ -0,0 +1,4 @@
+/DESCR/1.1.1.1/Sun Apr 3 10:27:24 2011//TOPENBSD_7_0 +/PLIST/1.6/Tue Sep 4 12:46:24 2018//TOPENBSD_7_0 +/README/1.5/Tue Sep 4 12:46:24 2018//TOPENBSD_7_0 +D
A
www/cgit/pkg/DESCR
@@ -0,0 +1,2 @@
+This is an attempt to create a fast web interface for the git scm, +using a builtin cache to decrease server io-pressure.
A
www/cgit/pkg/PLIST
@@ -0,0 +1,12 @@
+@comment $OpenBSD: PLIST,v 1.6 2018/09/04 12:46:24 espie Exp $ +@group daemon +@bin cgi-bin/cgit.cgi +@group +cgit/ +cgit/cgit.css +cgit/cgit.png +cgit/favicon.ico +cgit/robots.txt +@cwd ${LOCALBASE} +@man man/man5/cgitrc.5 +share/doc/pkg-readmes/${PKGSTEM}
A
www/cgit/pkg/README
@@ -0,0 +1,74 @@
+$OpenBSD: README,v 1.5 2018/09/04 12:46:24 espie Exp $ + ++----------------------------------------------------------------------- +| Running ${PKGSTEM} on OpenBSD ++----------------------------------------------------------------------- + +Cgit config +=========== +By default, the cgitrc config file is searched in ${PREFIX}/conf/cgitrc. +Refer to cgitrc(5) for the syntax. + +Webserver config +================ + +OpenBSD httpd +------------- +server "default" { + listen on egress port 80 + + # don't serve static files from cgit CGI: cgit.css and cgit.png + location "/cgit.*" { + root "/cgit" + no fastcgi + } + root "/cgi-bin/cgit.cgi" + fastcgi socket "/run/slowcgi.sock" +} + +Nginx +----- +An example nginx config snippet is provided below, to run with +slowcgi: + +server { + server_name cgit.example.com; + access_log logs/cgit-access main; + error_log logs/cgit-error warn; + location ~ /cgit.(png|css) { + root /var/www/htdocs; + } + location / { + rewrite /(.*) /cgi-bin/cgit.cgi/$1; + } + location /cgi-bin/ { + fastcgi_pass unix:run/slowcgi.sock; + fastcgi_split_path_info ^(/cgi-bin/[^/]+)(.*); + fastcgi_param PATH_INFO $fastcgi_path_info; + include fastcgi_params; + } +} + +Apache config +------------- + +This config snippet works with Apache: + +ScriptAlias /cgit /cgi-bin/cgit.cgi +<Location "/cgit"> + AllowOverride None + Options +ExecCGI + Order allow,deny + Allow from all +</Location> + + +snapshots +--------- +Nginx and OpenBSD httpd use chroot(2). + +For .tar.gz snapshot support a static binary in $chroot/bin/gzip is required. + + cd /usr/src/usr.bin/compress + make clean && make LDFLAGS="-static -pie" + cp obj/compress $chroot/bin/gzip