From 584184c64544cb9a0ac57cdfe210bad3ed4f1529 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Thu, 30 Sep 2021 19:37:37 +0000 Subject: OpenBSD: Add port for cgit-causal-agency --- OpenBSD/www/cgit-causal-agency/Makefile | 38 +++++++++++ OpenBSD/www/cgit-causal-agency/distinfo | 4 ++ .../www/cgit-causal-agency/patches/patch-Makefile | 30 +++++++++ .../www/cgit-causal-agency/patches/patch-cgit_mk | 11 ++++ .../www/cgit-causal-agency/patches/patch-setup_c | 22 +++++++ OpenBSD/www/cgit-causal-agency/pkg/DESCR | 2 + OpenBSD/www/cgit-causal-agency/pkg/PLIST | 12 ++++ OpenBSD/www/cgit-causal-agency/pkg/README | 74 ++++++++++++++++++++++ 8 files changed, 193 insertions(+) create mode 100644 OpenBSD/www/cgit-causal-agency/Makefile create mode 100644 OpenBSD/www/cgit-causal-agency/distinfo create mode 100644 OpenBSD/www/cgit-causal-agency/patches/patch-Makefile create mode 100644 OpenBSD/www/cgit-causal-agency/patches/patch-cgit_mk create mode 100644 OpenBSD/www/cgit-causal-agency/patches/patch-setup_c create mode 100644 OpenBSD/www/cgit-causal-agency/pkg/DESCR create mode 100644 OpenBSD/www/cgit-causal-agency/pkg/PLIST create mode 100644 OpenBSD/www/cgit-causal-agency/pkg/README (limited to 'OpenBSD/www') diff --git a/OpenBSD/www/cgit-causal-agency/Makefile b/OpenBSD/www/cgit-causal-agency/Makefile new file mode 100644 index 0000000..87241a0 --- /dev/null +++ b/OpenBSD/www/cgit-causal-agency/Makefile @@ -0,0 +1,38 @@ +# $OpenBSD: Makefile,v 1.27 2020/04/04 19:28:31 kn Exp $ + +COMMENT = web frontend for git repositories + +PKGNAME = cgit-causal-agency-20210922 +DISTNAME = src-5a8f6f3698fbd69b97483c7b84bf661f4761124f +CATEGORIES = www devel + +DISTFILES = ${DISTNAME}.tar.gz:0 \ + git-2.32.0.tar.gz:1 + +WRKDIST = ${WRKDIR}/${DISTNAME}/www/git.causal.agency/cgit + +MASTER_SITES0 = https://git.causal.agency/src/snapshot/ +MASTER_SITES1 = https://www.kernel.org/pub/software/scm/git/ +HOMEPAGE = https://git.causal.agency/src/log/www/git.causal.agency/cgit + +# 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 LDFLAGS+='${STATIC} -L${LOCALBASE}/lib' + +ALL_TARGET = all doc-man + +post-extract: + mv ${WRKDIR}/git-* ${WRKSRC}/git + +post-install: + mv ${PREFIX}/htdocs ${PREFIX}/cgit + ${INSTALL_MAN} ${WRKBUILD}/cgitrc.5 ${WRKINST}${LOCALBASE}/man/man5 + +.include diff --git a/OpenBSD/www/cgit-causal-agency/distinfo b/OpenBSD/www/cgit-causal-agency/distinfo new file mode 100644 index 0000000..91285d3 --- /dev/null +++ b/OpenBSD/www/cgit-causal-agency/distinfo @@ -0,0 +1,4 @@ +SHA256 (git-2.32.0.tar.gz) = YDjwbTlrqdqy7uVBx9tuf5+Efxgexi89hEGJP4xGk5g= +SHA256 (src-5a8f6f3698fbd69b97483c7b84bf661f4761124f.tar.gz) = +GQEwCcH3tvrqCvuMxawxEpthHtcSlhLxdDSDMRSg0U= +SIZE (git-2.32.0.tar.gz) = 10321570 +SIZE (src-5a8f6f3698fbd69b97483c7b84bf661f4761124f.tar.gz) = 899773 diff --git a/OpenBSD/www/cgit-causal-agency/patches/patch-Makefile b/OpenBSD/www/cgit-causal-agency/patches/patch-Makefile new file mode 100644 index 0000000..b49eb37 --- /dev/null +++ b/OpenBSD/www/cgit-causal-agency/patches/patch-Makefile @@ -0,0 +1,30 @@ +$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.1 + 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 0755 -d $(DESTDIR)$(filterdir) +- $(COPYTREE) filters/* $(DESTDIR)$(filterdir) + + install-doc: install-man install-html install-pdf + diff --git a/OpenBSD/www/cgit-causal-agency/patches/patch-cgit_mk b/OpenBSD/www/cgit-causal-agency/patches/patch-cgit_mk new file mode 100644 index 0000000..c74f62d --- /dev/null +++ b/OpenBSD/www/cgit-causal-agency/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)"' diff --git a/OpenBSD/www/cgit-causal-agency/patches/patch-setup_c b/OpenBSD/www/cgit-causal-agency/patches/patch-setup_c new file mode 100644 index 0000000..c93edf7 --- /dev/null +++ b/OpenBSD/www/cgit-causal-agency/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) diff --git a/OpenBSD/www/cgit-causal-agency/pkg/DESCR b/OpenBSD/www/cgit-causal-agency/pkg/DESCR new file mode 100644 index 0000000..f85c78a --- /dev/null +++ b/OpenBSD/www/cgit-causal-agency/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. diff --git a/OpenBSD/www/cgit-causal-agency/pkg/PLIST b/OpenBSD/www/cgit-causal-agency/pkg/PLIST new file mode 100644 index 0000000..2105512 --- /dev/null +++ b/OpenBSD/www/cgit-causal-agency/pkg/PLIST @@ -0,0 +1,12 @@ +@comment $OpenBSD: PLIST,v 1.6 2018/09/04 12:46:24 espie Exp $ +@conflict cgit-* +@group daemon +@bin cgi-bin/cgit.cgi +@group +cgit/ +cgit/cgit.css +cgit/cgit.png +cgit/robots.txt +@cwd ${LOCALBASE} +@man man/man5/cgitrc.5 +share/doc/pkg-readmes/${PKGSTEM} diff --git a/OpenBSD/www/cgit-causal-agency/pkg/README b/OpenBSD/www/cgit-causal-agency/pkg/README new file mode 100644 index 0000000..816ad9e --- /dev/null +++ b/OpenBSD/www/cgit-causal-agency/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 + + AllowOverride None + Options +ExecCGI + Order allow,deny + Allow from all + + + +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 -- cgit 1.4.1