[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#28283] Status: [PATCH 1/1] gnu: services: version-control: Add cgit
From: |
Oleg Pykhalov |
Subject: |
[bug#28283] Status: [PATCH 1/1] gnu: services: version-control: Add cgit. |
Date: |
Fri, 29 Sep 2017 17:05:16 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) |
Hello Ludovic,
address@hidden (Ludovic Courtès) writes:
> Oleg Pykhalov <address@hidden> skribis:
>
>> Then I added new field to record:
>>
>> (define-record-type* <nginx-server-configuration>
>> …
>> (try-files nginx-server-configuration-try-files
>> (default '())))
>>
>>
>> Testing:
>>
>> address@hidden ~/src/guix-devel-nginx-test$ guix environment guix -- make
>> check-system TESTS=nginx
>> ;;; note: source file /home/natsu/src/guix-wigust/wigust/packages/emacs.scm
>> ;;; newer than compiled
>> /home/natsu/.cache/guile/ccache/2.2-LE-8-3.A/home/natsu/src/guix-wigust/wigust/packages/emacs.scm.go
>> Compiling Scheme modules...
>> LOAD (gnu services web)
>> ;;; note: source file ./gnu/services/web.scm
>> ;;; newer than compiled
>> /home/natsu/src/guix-devel-nginx-test/gnu/services/web.go
>> GUILEC gnu/services/web.go
>> warning: failed to load '(gnu tests web)':
>> ERROR: In procedure allocate-struct: Wrong type argument in position 2: 9
>> Running 0 system tests...
>
> It’s also a case where the ABI breaks, and thus dependent modules need
> to be recompiled: “rm gnu/tests/web.go && make”.
>
> Does that make sense?
It does make, but doesn't work for me. Probably there were other *.go
files which needed to delete. So, I made ‘make clean-go’ and ‘make’.
It was overkill of course.
‘try-files’ are in ‘<nginx-server-configuration>’ in origin/master now,
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=4d14808af4c01b4fb0a4564584aa68f0e53c4ef4
> Minor issues:
>
>> address@hidden cgit service
>
> Please capitalize titles: “Cgit Service”
Done.
>> address@hidden://git.zx2c4.com/cgit/, cgit} is a hyperfast web
>> +frontend for git repositories written in C.
>
> “Git”, not “git”.
Done.
> Also, not hypersuperlatives please. :-)
Done.
> So what about this:
>
> @uref{https://git.zx2c4.com/cgit/, cgit} is a Web interface to Git
> repositories, written in C. It allows users to look at Git
> repository contents and history through their Web browsers.
>
>> +The following example will configure the service with default values.
>> +By default, cgit can be accessed on port 80 (@code{http://localhost:80}).
>> +
>> address@hidden
>> +(service nginx-service-type)
>> +(service fcgiwrap-service-type)
>> +(service cgit-service-type)
>> address@hidden example
>
> Please add a sentence above or below the example like “This example
> shows …”.
Sorry, I don't understand what do you mean. There is a sentence above
example that answers a question “What does example do?” and I guess
“What does example show?”.
>> address@hidden @asis
>> address@hidden @code{css} (default: @code{"/share/cgit/cgit.css"})
>> +Url which specifies the css document to include in all cgit pages.
>> +
>> address@hidden @code{logo} (default: @code{"/share/cgit/cgit.png"})
>> +Url which specifies the source of an image which will be used as a logo
>> +on all cgit pages.
>> +
>> address@hidden @code{virtual-root} (default: @code{"/"})
>> +Url which, if specified, will be used as root for all cgit links.
>
> s/Url/URL/
Done.
>> address@hidden @code{scan-path} (default: @code{"/srv/git"})
>> +A path which will be scanned for repositories.
>
> Rather: “Name of the directory to scan for repositories.”
Done.
> Can you also rename ‘scan-path’ to ‘repository-directory’ or something
> like that? (Not “path.”)
Done.
>> address@hidden @code{robots} (default: @code{(list "noindex" "nofollow")})
>> +Text used as content for the "robots" meta-tag.
>
> Write ``robots'' (literally) so that Texinfo typesets things correctly.
Done.
>> --- a/gnu/services/web.scm
>> +++ b/gnu/services/web.scm
>> @@ -99,6 +99,8 @@
>> (default '()))
>> (index nginx-server-configuration-index
>> (default (list "index.html")))
>> + (try-files nginx-server-configuration-try-files
>> + (default #f))
>> (ssl-certificate nginx-server-configuration-ssl-certificate
>> (default "/etc/nginx/cert.pem"))
>> (ssl-certificate-key nginx-server-configuration-ssl-certificate-key
>> @@ -179,6 +181,7 @@ of index files."
>> (nginx-server-configuration-ssl-certificate-key server))
>> (root (nginx-server-configuration-root server))
>> (index (nginx-server-configuration-index server))
>> + (try-files (nginx-server-configuration-try-files server))
>> (server-tokens? (nginx-server-configuration-server-tokens? server))
>> (locations (nginx-server-configuration-locations server)))
>> (define-syntax-parameter <> (syntax-rules ()))
>> @@ -207,6 +210,7 @@ of index files."
>> (and/l ssl-certificate-key " ssl_certificate_key " <> ";\n")
>> " root " root ";\n"
>> " index " (config-index-strings index) ";\n"
>> + " try_files " (config-index-strings try-files) ";\n"
>> " server_tokens " (if server-tokens? "on" "off") ";\n"
>> "\n"
>> (map emit-nginx-location-config locations)
>
> Could you submit these nginx changes separately for discussion? We’ll
> also need to document them. Maybe Cc Chris Baines and other nginx
> people.
Done with Julien Lepiller.
Attached a new patch.
0001-gnu-services-version-control-Add-cgit.patch
Description: gnu/services/version-control.scm
I also wrote a test, but I don't understand why Cgit cannot find
test repository.
;;; (response (404 "…No repositories found…"))
version-control.scm
Description: gnu/tests/version-control.scm
I wish to make a VM with ‘guix system vm gnu/tests/version-control.scm’,
but it's not working. It also doesn't work for ‘gnu/tests/web.scm’ and
‘gnu/tests/rsync.scm’. But I sure it worked with ‘gnu/tests/rsync.scm’.
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix system vm gnu/tests/web.scm
Backtrace:
5 (primitive-load
"/gnu/store/zh0lb2g15hirq7zw2477w7s5ww7dxkv0-guix-0.…")
In guix/ui.scm:
1375:12 4 (run-guix-command _ . _)
In ice-9/boot-9.scm:
837:9 3 (catch _ _ #<procedure 7fb95f8569d8 at guix/ui.scm:451:2 (key c)>
_)
837:9 2 (catch _ _ #<procedure 7fb95f8569f0 at guix/ui.scm:539:6 (key proc
…> …)
In guix/scripts/system.scm:
1034:8 1 (_)
904:28 0 (process-action vm _ ((argument . "gnu/tests/web.scm") (action .
#) …))
guix/scripts/system.scm:904:28: In procedure process-action:
guix/scripts/system.scm:904:28: In procedure struct_vtable: Wrong type argument
in position 1 (expecting struct): #<unspecified>
--8<---------------cut here---------------end--------------->8---
Then I prepared a VM declaration in system-cgit.scm. It works and I got
response 200. So, I have no idea why test fails.
system-cgit.scm
Description: system-cgit.scm
Thanks for review!