summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile15
-rw-r--r--cgitrc.5.txt4
2 files changed, 11 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 036fcd7..7793c0b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,152 +1,155 @@
1CGIT_VERSION = v0.8.1 1CGIT_VERSION = v0.8.1
2CGIT_SCRIPT_NAME = cgit.cgi 2CGIT_SCRIPT_NAME = cgit.cgi
3CGIT_SCRIPT_PATH = /var/www/htdocs/cgit 3CGIT_SCRIPT_PATH = /var/www/htdocs/cgit
4CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH)
4CGIT_CONFIG = /etc/cgitrc 5CGIT_CONFIG = /etc/cgitrc
5CACHE_ROOT = /var/cache/cgit 6CACHE_ROOT = /var/cache/cgit
6SHA1_HEADER = <openssl/sha.h> 7SHA1_HEADER = <openssl/sha.h>
7GIT_VER = 1.6.1 8GIT_VER = 1.6.1
8GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2 9GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2
10INSTALL = install
9 11
10# Define NO_STRCASESTR if you don't have strcasestr. 12# Define NO_STRCASESTR if you don't have strcasestr.
11# 13#
12# Define NEEDS_LIBICONV if linking with libc is not enough (eg. Darwin). 14# Define NEEDS_LIBICONV if linking with libc is not enough (eg. Darwin).
13# 15#
14 16
15#-include config.mak 17#-include config.mak
16 18
17# 19#
18# Platform specific tweaks 20# Platform specific tweaks
19# 21#
20 22
21uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') 23uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
22uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not') 24uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
23uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not') 25uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not')
24 26
25ifeq ($(uname_O),Cygwin) 27ifeq ($(uname_O),Cygwin)
26 NO_STRCASESTR = YesPlease 28 NO_STRCASESTR = YesPlease
27 NEEDS_LIBICONV = YesPlease 29 NEEDS_LIBICONV = YesPlease
28endif 30endif
29 31
30# 32#
31# Let the user override the above settings. 33# Let the user override the above settings.
32# 34#
33-include cgit.conf 35-include cgit.conf
34 36
35# 37#
36# Define a way to invoke make in subdirs quietly, shamelessly ripped 38# Define a way to invoke make in subdirs quietly, shamelessly ripped
37# from git.git 39# from git.git
38# 40#
39QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir 41QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
40QUIET_SUBDIR1 = 42QUIET_SUBDIR1 =
41 43
42ifneq ($(findstring $(MAKEFLAGS),w),w) 44ifneq ($(findstring $(MAKEFLAGS),w),w)
43PRINT_DIR = --no-print-directory 45PRINT_DIR = --no-print-directory
44else # "make -w" 46else # "make -w"
45NO_SUBDIR = : 47NO_SUBDIR = :
46endif 48endif
47 49
48ifndef V 50ifndef V
49 QUIET_CC = @echo ' ' CC $@; 51 QUIET_CC = @echo ' ' CC $@;
50 QUIET_MM = @echo ' ' MM $@; 52 QUIET_MM = @echo ' ' MM $@;
51 QUIET_SUBDIR0 = +@subdir= 53 QUIET_SUBDIR0 = +@subdir=
52 QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \ 54 QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
53 $(MAKE) $(PRINT_DIR) -C $$subdir 55 $(MAKE) $(PRINT_DIR) -C $$subdir
54endif 56endif
55 57
56# 58#
57# Define a pattern rule for automatic dependency building 59# Define a pattern rule for automatic dependency building
58# 60#
59%.d: %.c 61%.d: %.c
60 $(QUIET_MM)$(CC) $(CFLAGS) -MM $< | sed -e 's/\($*\)\.o:/\1.o $@:/g' >$@ 62 $(QUIET_MM)$(CC) $(CFLAGS) -MM $< | sed -e 's/\($*\)\.o:/\1.o $@:/g' >$@
61 63
62# 64#
63# Define a pattern rule for silent object building 65# Define a pattern rule for silent object building
64# 66#
65%.o: %.c 67%.o: %.c
66 $(QUIET_CC)$(CC) -o $*.o -c $(CFLAGS) $< 68 $(QUIET_CC)$(CC) -o $*.o -c $(CFLAGS) $<
67 69
68 70
69EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto 71EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto
70OBJECTS = 72OBJECTS =
71OBJECTS += cache.o 73OBJECTS += cache.o
72OBJECTS += cgit.o 74OBJECTS += cgit.o
73OBJECTS += cmd.o 75OBJECTS += cmd.o
74OBJECTS += configfile.o 76OBJECTS += configfile.o
75OBJECTS += html.o 77OBJECTS += html.o
76OBJECTS += parsing.o 78OBJECTS += parsing.o
77OBJECTS += scan-tree.o 79OBJECTS += scan-tree.o
78OBJECTS += shared.o 80OBJECTS += shared.o
79OBJECTS += ui-atom.o 81OBJECTS += ui-atom.o
80OBJECTS += ui-blob.o 82OBJECTS += ui-blob.o
81OBJECTS += ui-clone.o 83OBJECTS += ui-clone.o
82OBJECTS += ui-commit.o 84OBJECTS += ui-commit.o
83OBJECTS += ui-diff.o 85OBJECTS += ui-diff.o
84OBJECTS += ui-log.o 86OBJECTS += ui-log.o
85OBJECTS += ui-patch.o 87OBJECTS += ui-patch.o
86OBJECTS += ui-plain.o 88OBJECTS += ui-plain.o
87OBJECTS += ui-refs.o 89OBJECTS += ui-refs.o
88OBJECTS += ui-repolist.o 90OBJECTS += ui-repolist.o
89OBJECTS += ui-shared.o 91OBJECTS += ui-shared.o
90OBJECTS += ui-snapshot.o 92OBJECTS += ui-snapshot.o
91OBJECTS += ui-summary.o 93OBJECTS += ui-summary.o
92OBJECTS += ui-tag.o 94OBJECTS += ui-tag.o
93OBJECTS += ui-tree.o 95OBJECTS += ui-tree.o
94 96
95ifdef NEEDS_LIBICONV 97ifdef NEEDS_LIBICONV
96 EXTLIBS += -liconv 98 EXTLIBS += -liconv
97endif 99endif
98 100
99 101
100.PHONY: all libgit test install uninstall clean force-version get-git 102.PHONY: all libgit test install uninstall clean force-version get-git
101 103
102all: cgit 104all: cgit
103 105
104VERSION: force-version 106VERSION: force-version
105 @./gen-version.sh "$(CGIT_VERSION)" 107 @./gen-version.sh "$(CGIT_VERSION)"
106-include VERSION 108-include VERSION
107 109
108 110
109CFLAGS += -g -Wall -Igit 111CFLAGS += -g -Wall -Igit
110CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)' 112CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)'
111CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"' 113CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"'
112CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"' 114CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
113CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"' 115CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
114CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"' 116CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"'
115 117
116ifdef NO_ICONV 118ifdef NO_ICONV
117 CFLAGS += -DNO_ICONV 119 CFLAGS += -DNO_ICONV
118endif 120endif
119ifdef NO_STRCASESTR 121ifdef NO_STRCASESTR
120 CFLAGS += -DNO_STRCASESTR 122 CFLAGS += -DNO_STRCASESTR
121endif 123endif
122 124
123cgit: $(OBJECTS) libgit 125cgit: $(OBJECTS) libgit
124 $(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o cgit $(OBJECTS) $(EXTLIBS) 126 $(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o cgit $(OBJECTS) $(EXTLIBS)
125 127
126cgit.o: VERSION 128cgit.o: VERSION
127 129
128-include $(OBJECTS:.o=.d) 130-include $(OBJECTS:.o=.d)
129 131
130libgit: 132libgit:
131 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) NO_CURL=1 libgit.a 133 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) NO_CURL=1 libgit.a
132 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) NO_CURL=1 xdiff/lib.a 134 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) NO_CURL=1 xdiff/lib.a
133 135
134test: all 136test: all
135 $(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all 137 $(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all
136 138
137install: all 139install: all
138 mkdir -p $(DESTDIR)$(CGIT_SCRIPT_PATH) 140 $(INSTALL) -m 0755 -d $(DESTDIR)$(CGIT_SCRIPT_PATH)
139 install cgit $(DESTDIR)$(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME) 141 $(INSTALL) -m 0755 cgit $(DESTDIR)$(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
140 install -m 0644 cgit.css $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.css 142 $(INSTALL) -m 0755 -d $(DESTDIR)$(CGIT_DATA_PATH)
141 install -m 0644 cgit.png $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.png 143 $(INSTALL) -m 0644 cgit.css $(DESTDIR)$(CGIT_DATA_PATH)/cgit.css
144 $(INSTALL) -m 0644 cgit.png $(DESTDIR)$(CGIT_DATA_PATH)/cgit.png
142 145
143uninstall: 146uninstall:
144 rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME) 147 rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
145 rm -f $(CGIT_SCRIPT_PATH)/cgit.css 148 rm -f $(CGIT_DATA_PATH)/cgit.css
146 rm -f $(CGIT_SCRIPT_PATH)/cgit.png 149 rm -f $(CGIT_DATA_PATH)/cgit.png
147 150
148clean: 151clean:
149 rm -f cgit VERSION *.o *.d 152 rm -f cgit VERSION *.o *.d
150 153
151get-git: 154get-git:
152 curl $(GIT_URL) | tar -xj && rm -rf git && mv git-$(GIT_VER) git 155 curl $(GIT_URL) | tar -xj && rm -rf git && mv git-$(GIT_VER) git
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 7887b02..ab9ab66 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -195,173 +195,173 @@ virtual-root
195 value: none. 195 value: none.
196 NOTE: cgit has recently learned how to use PATH_INFO to achieve the 196 NOTE: cgit has recently learned how to use PATH_INFO to achieve the
197 same kind of virtual urls, so this option will probably be deprecated. 197 same kind of virtual urls, so this option will probably be deprecated.
198 198
199REPOSITORY SETTINGS 199REPOSITORY SETTINGS
200------------------- 200-------------------
201repo.clone-url 201repo.clone-url
202 A list of space-separated urls which can be used to clone this repo. 202 A list of space-separated urls which can be used to clone this repo.
203 Default value: none. 203 Default value: none.
204 204
205repo.defbranch 205repo.defbranch
206 The name of the default branch for this repository. If no such branch 206 The name of the default branch for this repository. If no such branch
207 exists in the repository, the first branch name (when sorted) is used 207 exists in the repository, the first branch name (when sorted) is used
208 as default instead. Default value: "master". 208 as default instead. Default value: "master".
209 209
210repo.desc 210repo.desc
211 The value to show as repository description. Default value: none. 211 The value to show as repository description. Default value: none.
212 212
213repo.enable-log-filecount 213repo.enable-log-filecount
214 A flag which can be used to disable the global setting 214 A flag which can be used to disable the global setting
215 `enable-log-filecount'. Default value: none. 215 `enable-log-filecount'. Default value: none.
216 216
217repo.enable-log-linecount 217repo.enable-log-linecount
218 A flag which can be used to disable the global setting 218 A flag which can be used to disable the global setting
219 `enable-log-linecount'. Default value: none. 219 `enable-log-linecount'. Default value: none.
220 220
221repo.name 221repo.name
222 The value to show as repository name. Default value: <repo.url>. 222 The value to show as repository name. Default value: <repo.url>.
223 223
224repo.owner 224repo.owner
225 A value used to identify the owner of the repository. Default value: 225 A value used to identify the owner of the repository. Default value:
226 none. 226 none.
227 227
228repo.path 228repo.path
229 An absolute path to the repository directory. For non-bare repositories 229 An absolute path to the repository directory. For non-bare repositories
230 this is the .git-directory. Default value: none. 230 this is the .git-directory. Default value: none.
231 231
232repo.readme 232repo.readme
233 A path (relative to <repo.path>) which specifies a file to include 233 A path (relative to <repo.path>) which specifies a file to include
234 verbatim as the "About" page for this repo. Default value: none. 234 verbatim as the "About" page for this repo. Default value: none.
235 235
236repo.snapshots 236repo.snapshots
237 A mask of allowed snapshot-formats for this repo, restricted by the 237 A mask of allowed snapshot-formats for this repo, restricted by the
238 "snapshots" global setting. Default value: <snapshots>. 238 "snapshots" global setting. Default value: <snapshots>.
239 239
240repo.url 240repo.url
241 The relative url used to access the repository. This must be the first 241 The relative url used to access the repository. This must be the first
242 setting specified for each repo. Default value: none. 242 setting specified for each repo. Default value: none.
243 243
244 244
245EXAMPLE CGITRC FILE 245EXAMPLE CGITRC FILE
246------------------- 246-------------------
247 247
248# Enable caching of up to 1000 output entriess 248# Enable caching of up to 1000 output entriess
249cache-size=1000 249cache-size=1000
250 250
251 251
252# Specify some default clone prefixes 252# Specify some default clone prefixes
253clone-prefix=git://foobar.com ssh://foobar.com/pub/git http://foobar.com/git 253clone-prefix=git://foobar.com ssh://foobar.com/pub/git http://foobar.com/git
254 254
255# Specify the css url 255# Specify the css url
256css=/css/cgit.css 256css=/css/cgit.css
257 257
258 258
259# Show extra links for each repository on the index page 259# Show extra links for each repository on the index page
260enable-index-links=1 260enable-index-links=1
261 261
262 262
263# Show number of affected files per commit on the log pages 263# Show number of affected files per commit on the log pages
264enable-log-filecount=1 264enable-log-filecount=1
265 265
266 266
267# Show number of added/removed lines per commit on the log pages 267# Show number of added/removed lines per commit on the log pages
268enable-log-linecount=1 268enable-log-linecount=1
269 269
270 270
271# Add a cgit favicon 271# Add a cgit favicon
272favicon=/favicon.ico 272favicon=/favicon.ico
273 273
274 274
275# Use a custom logo 275# Use a custom logo
276logo=/img/mylogo.png 276logo=/img/mylogo.png
277 277
278 278
279# Set the title and heading of the repository index page 279# Set the title and heading of the repository index page
280root-title=foobar.com git repositories 280root-title=foobar.com git repositories
281 281
282 282
283# Set a subheading for the repository index page 283# Set a subheading for the repository index page
284root-desc=tracking the foobar development 284root-desc=tracking the foobar development
285 285
286 286
287# Include some more info about foobar.com on the index page 287# Include some more info about foobar.com on the index page
288root-readme=/var/www/htdocs/about.html 288root-readme=/var/www/htdocs/about.html
289 289
290 290
291# Allow download of tar.gz, tar.bz and zip-files 291# Allow download of tar.gz, tar.bz2 and zip-files
292snapshots=tar.gz tar.bz zip 292snapshots=tar.gz tar.bz2 zip
293 293
294 294
295## 295##
296## List of repositories. 296## List of repositories.
297## PS: Any repositories listed when repo.group is unset will not be 297## PS: Any repositories listed when repo.group is unset will not be
298## displayed under a group heading 298## displayed under a group heading
299## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos') 299## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos')
300## and included like this: 300## and included like this:
301## include=/etc/cgitrepos 301## include=/etc/cgitrepos
302## 302##
303 303
304 304
305repo.url=foo 305repo.url=foo
306repo.path=/pub/git/foo.git 306repo.path=/pub/git/foo.git
307repo.desc=the master foo repository 307repo.desc=the master foo repository
308repo.owner=fooman@foobar.com 308repo.owner=fooman@foobar.com
309repo.readme=info/web/about.html 309repo.readme=info/web/about.html
310 310
311 311
312repo.url=bar 312repo.url=bar
313repo.path=/pub/git/bar.git 313repo.path=/pub/git/bar.git
314repo.desc=the bars for your foo 314repo.desc=the bars for your foo
315repo.owner=barman@foobar.com 315repo.owner=barman@foobar.com
316repo.readme=info/web/about.html 316repo.readme=info/web/about.html
317 317
318 318
319# The next repositories will be displayed under the 'extras' heading 319# The next repositories will be displayed under the 'extras' heading
320repo.group=extras 320repo.group=extras
321 321
322 322
323repo.url=baz 323repo.url=baz
324repo.path=/pub/git/baz.git 324repo.path=/pub/git/baz.git
325repo.desc=a set of extensions for bar users 325repo.desc=a set of extensions for bar users
326 326
327repo.url=wiz 327repo.url=wiz
328repo.path=/pub/git/wiz.git 328repo.path=/pub/git/wiz.git
329repo.desc=the wizard of foo 329repo.desc=the wizard of foo
330 330
331 331
332# Add some mirrored repositories 332# Add some mirrored repositories
333repo.group=mirrors 333repo.group=mirrors
334 334
335 335
336repo.url=git 336repo.url=git
337repo.path=/pub/git/git.git 337repo.path=/pub/git/git.git
338repo.desc=the dscm 338repo.desc=the dscm
339 339
340 340
341repo.url=linux 341repo.url=linux
342repo.path=/pub/git/linux.git 342repo.path=/pub/git/linux.git
343repo.desc=the kernel 343repo.desc=the kernel
344 344
345# Disable adhoc downloads of this repo 345# Disable adhoc downloads of this repo
346repo.snapshots=0 346repo.snapshots=0
347 347
348# Disable line-counts for this repo 348# Disable line-counts for this repo
349repo.enable-log-linecount=0 349repo.enable-log-linecount=0
350 350
351 351
352BUGS 352BUGS
353---- 353----
354Comments currently cannot appear on the same line as a setting; the comment 354Comments currently cannot appear on the same line as a setting; the comment
355will be included as part of the value. E.g. this line: 355will be included as part of the value. E.g. this line:
356 356
357 robots=index # allow indexing 357 robots=index # allow indexing
358 358
359will generate the following html element: 359will generate the following html element:
360 360
361 <meta name='robots' content='index # allow indexing'/> 361 <meta name='robots' content='index # allow indexing'/>
362 362
363 363
364 364
365AUTHOR 365AUTHOR
366------ 366------
367Lars Hjemli <hjemli@gmail.com> 367Lars Hjemli <hjemli@gmail.com>