From 4627497bb5a9fff46a5daad4898c2809944d5bd5 Mon Sep 17 00:00:00 2001 From: Wynn Wolf Arbor Date: Fri, 3 Jul 2020 15:32:00 +0200 Subject: www-apps/cgit: Split git-http-backend patch in two Disabling cached clones can be a feature of its own, so split it out of the git-http-backend patch. This is cleaner in the long run. Package-Manager: Portage-2.3.99, Repoman-2.3.23 --- .../cgit/files/cgit-1.2.3-git-http-backend.patch | 49 ++-------------------- 1 file changed, 4 insertions(+), 45 deletions(-) (limited to 'www-apps/cgit/files/cgit-1.2.3-git-http-backend.patch') diff --git a/www-apps/cgit/files/cgit-1.2.3-git-http-backend.patch b/www-apps/cgit/files/cgit-1.2.3-git-http-backend.patch index 93bd4eb..e43eb09 100644 --- a/www-apps/cgit/files/cgit-1.2.3-git-http-backend.patch +++ b/www-apps/cgit/files/cgit-1.2.3-git-http-backend.patch @@ -1,7 +1,7 @@ -From 6c9eb981818260af3b7f4235185ab8b0f94c4f5e Mon Sep 17 00:00:00 2001 +From dcf96f0b2210d15b390ba1a5d26cd271f89aa924 Mon Sep 17 00:00:00 2001 From: Wynn Wolf Arbor -Date: Sat, 30 May 2020 21:51:39 +0200 -Subject: [PATCH] Support Git over HTTP by proxying git-http-backend(1) +Date: Fri, 3 Jul 2020 15:23:45 +0200 +Subject: [PATCH 2/2] Support Git over HTTP by proxying git-http-backend(1) cgit lacks an easy way to support the "smart" HTTP protocol out of the box. A patch [1] has been proposed in the past, but was never merged. @@ -34,59 +34,18 @@ Notable changes to the original patch: def_cmd() macro directly, as the endpoints "git-upload-pack" and "git-receive-pack" contain dashes. - * The original patch did not account for caching support, which will - break the whole clone process if enabled. Work around this by - disabling the cache for commands that have is_clone set to true. - [1] https://lists.zx2c4.com/pipermail/cgit/2014-December/002312.html [2] https://lists.zx2c4.com/pipermail/cgit/2016-February/002907.html [3] https://lists.zx2c4.com/pipermail/cgit/2016-February/002926.html --- - cache.c | 11 +++++++++++ cgit.c | 3 +++ cgit.h | 1 + cgitrc.5.txt | 8 ++++++++ cmd.c | 13 +++++++++++++ ui-clone.c | 42 ++++++++++++++++++++++++++++++++++++++++++ ui-clone.h | 2 ++ - 7 files changed, 80 insertions(+) + 6 files changed, 69 insertions(+) -diff --git a/cache.c b/cache.c -index 2c70be7..bb4fc47 100644 ---- a/cache.c -+++ b/cache.c -@@ -15,6 +15,7 @@ - - #include "cgit.h" - #include "cache.h" -+#include "cmd.h" - #include "html.h" - #ifdef HAVE_LINUX_SENDFILE - #include -@@ -356,6 +357,7 @@ int cache_process(int size, const char *path, const char *key, int ttl, - struct strbuf filename = STRBUF_INIT; - struct strbuf lockname = STRBUF_INIT; - struct cache_slot slot; -+ struct cgit_cmd *cmd; - int result; - - /* If the cache is disabled, just generate the content */ -@@ -370,6 +372,15 @@ int cache_process(int size, const char *path, const char *key, int ttl, - fn(); - return 0; - } -+ -+ cmd = cgit_get_cmd(); -+ -+ /* Do not cache files that are being cloned */ -+ if (cmd && cmd->is_clone) { -+ fn(); -+ return 0; -+ } -+ - if (!key) - key = ""; - hash = hash_str(key) % size; diff --git a/cgit.c b/cgit.c index c4320f0..fc85c18 100644 --- a/cgit.c -- cgit v1.2.3-2-gb3c3