aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorla-ninpre <leobrekalini@gmail.com>2021-11-02 19:00:35 +0300
committerla-ninpre <leobrekalini@gmail.com>2021-11-02 19:00:35 +0300
commitc5ab0e8ee4ef3574b91096b0b5ae39d281c671e1 (patch)
tree3dd55391730f596fc211725e10033be70b63a67e
downloadports-c5ab0e8ee4ef3574b91096b0b5ae39d281c671e1.tar.gz
ports-c5ab0e8ee4ef3574b91096b0b5ae39d281c671e1.zip
inital commit
-rw-r--r--README.md27
-rw-r--r--www/cgit/Makefile38
-rw-r--r--www/cgit/distinfo4
-rw-r--r--www/cgit/patches/CVS/Entries5
-rw-r--r--www/cgit/patches/CVS/Repository1
-rw-r--r--www/cgit/patches/CVS/Root1
-rw-r--r--www/cgit/patches/CVS/Tag1
-rw-r--r--www/cgit/patches/patch-Makefile31
-rw-r--r--www/cgit/patches/patch-cgit_mk11
-rw-r--r--www/cgit/patches/patch-filter_c20
-rw-r--r--www/cgit/patches/patch-setup_c22
-rw-r--r--www/cgit/pkg/CVS/Entries4
-rw-r--r--www/cgit/pkg/CVS/Repository1
-rw-r--r--www/cgit/pkg/CVS/Root1
-rw-r--r--www/cgit/pkg/CVS/Tag1
-rw-r--r--www/cgit/pkg/DESCR2
-rw-r--r--www/cgit/pkg/PLIST12
-rw-r--r--www/cgit/pkg/README74
18 files changed, 256 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a201462
--- /dev/null
+++ b/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.
diff --git a/www/cgit/Makefile b/www/cgit/Makefile
new file mode 100644
index 0000000..5dc923c
--- /dev/null
+++ b/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>
diff --git a/www/cgit/distinfo b/www/cgit/distinfo
new file mode 100644
index 0000000..9f97a1f
--- /dev/null
+++ b/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
diff --git a/www/cgit/patches/CVS/Entries b/www/cgit/patches/CVS/Entries
new file mode 100644
index 0000000..5877bf3
--- /dev/null
+++ b/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
diff --git a/www/cgit/patches/CVS/Repository b/www/cgit/patches/CVS/Repository
new file mode 100644
index 0000000..a73903d
--- /dev/null
+++ b/www/cgit/patches/CVS/Repository
@@ -0,0 +1 @@
+ports/www/cgit/patches
diff --git a/www/cgit/patches/CVS/Root b/www/cgit/patches/CVS/Root
new file mode 100644
index 0000000..175df2f
--- /dev/null
+++ b/www/cgit/patches/CVS/Root
@@ -0,0 +1 @@
+anoncvs@obsdacvs.cs.toronto.edu:/cvs
diff --git a/www/cgit/patches/CVS/Tag b/www/cgit/patches/CVS/Tag
new file mode 100644
index 0000000..19a080a
--- /dev/null
+++ b/www/cgit/patches/CVS/Tag
@@ -0,0 +1 @@
+TOPENBSD_7_0
diff --git a/www/cgit/patches/patch-Makefile b/www/cgit/patches/patch-Makefile
new file mode 100644
index 0000000..f51ac50
--- /dev/null
+++ b/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
+
diff --git a/www/cgit/patches/patch-cgit_mk b/www/cgit/patches/patch-cgit_mk
new file mode 100644
index 0000000..c74f62d
--- /dev/null
+++ b/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)"'
diff --git a/www/cgit/patches/patch-filter_c b/www/cgit/patches/patch-filter_c
new file mode 100644
index 0000000..20adde9
--- /dev/null
+++ b/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);
diff --git a/www/cgit/patches/patch-setup_c b/www/cgit/patches/patch-setup_c
new file mode 100644
index 0000000..c93edf7
--- /dev/null
+++ b/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)
diff --git a/www/cgit/pkg/CVS/Entries b/www/cgit/pkg/CVS/Entries
new file mode 100644
index 0000000..a242442
--- /dev/null
+++ b/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
diff --git a/www/cgit/pkg/CVS/Repository b/www/cgit/pkg/CVS/Repository
new file mode 100644
index 0000000..079eb66
--- /dev/null
+++ b/www/cgit/pkg/CVS/Repository
@@ -0,0 +1 @@
+ports/www/cgit/pkg
diff --git a/www/cgit/pkg/CVS/Root b/www/cgit/pkg/CVS/Root
new file mode 100644
index 0000000..175df2f
--- /dev/null
+++ b/www/cgit/pkg/CVS/Root
@@ -0,0 +1 @@
+anoncvs@obsdacvs.cs.toronto.edu:/cvs
diff --git a/www/cgit/pkg/CVS/Tag b/www/cgit/pkg/CVS/Tag
new file mode 100644
index 0000000..19a080a
--- /dev/null
+++ b/www/cgit/pkg/CVS/Tag
@@ -0,0 +1 @@
+TOPENBSD_7_0
diff --git a/www/cgit/pkg/DESCR b/www/cgit/pkg/DESCR
new file mode 100644
index 0000000..f85c78a
--- /dev/null
+++ b/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.
diff --git a/www/cgit/pkg/PLIST b/www/cgit/pkg/PLIST
new file mode 100644
index 0000000..a169153
--- /dev/null
+++ b/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}
diff --git a/www/cgit/pkg/README b/www/cgit/pkg/README
new file mode 100644
index 0000000..816ad9e
--- /dev/null
+++ b/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