<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgit-70/.gitignore, branch v0.11.0</title>
<subtitle>a fork of cgit with a Gopher interface</subtitle>
<link rel='alternate' type='text/html' href='http://ns2.complex-space.net/cgit-70/'/>
<entry>
<title>tests/.gitignore: update for using Git's test infrastructure</title>
<updated>2013-04-08T20:27:53+00:00</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-04-08T19:12:34+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-space.net/cgit-70/commit/?id=9844c60755cbad8000bca759741bfe113035a8eb'/>
<id>9844c60755cbad8000bca759741bfe113035a8eb</id>
<content type='text'>
Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Makefile: re-use Git's Makefile where possible</title>
<updated>2013-03-20T20:08:32+00:00</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-03-06T21:22:06+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-space.net/cgit-70/commit/?id=5f323c1ff45c10d8f8b0a673d2fe7e98272f5d78'/>
<id>5f323c1ff45c10d8f8b0a673d2fe7e98272f5d78</id>
<content type='text'>
Git does quite a lot of platform-specific detection in its Makefile,
which can result in it defining preprocessor variables that are used in
its header files.  If CGit does not define the same variables it can
result in different sizes of some structures in different places in the
same application.

For example, on Solaris Git uses it's "compat" regex library which has a
different sized regex_t structure than that available in the platform
regex.h.  This has a knock-on effect on the size of "struct rev_info"
and leads to hard to diagnose runtime issues.

In order to avoid all of this, introduce a "cgit.mk" file that includes
Git's Makefile and make all of the existing logic apply to CGit's
objects as well.  This is slightly complicated because Git's Makefile
must run in Git's directory, so all references to CGit files need to be
prefixed with "../".

In addition, OBJECTS is a simply expanded variable in Git's Makefile so
we cannot just add our objects to it.  Instead we must copy the two
applicable rules into "cgit.mk".  This has the advantage that we can
split CGit-specific CFLAGS from Git's CFLAGS and hence avoid rebuilding
all of Git whenever a CGit-specific value changes.

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
Acked-by: Jamie Couture &lt;jamie.couture@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Git does quite a lot of platform-specific detection in its Makefile,
which can result in it defining preprocessor variables that are used in
its header files.  If CGit does not define the same variables it can
result in different sizes of some structures in different places in the
same application.

For example, on Solaris Git uses it's "compat" regex library which has a
different sized regex_t structure than that available in the platform
regex.h.  This has a knock-on effect on the size of "struct rev_info"
and leads to hard to diagnose runtime issues.

In order to avoid all of this, introduce a "cgit.mk" file that includes
Git's Makefile and make all of the existing logic apply to CGit's
objects as well.  This is slightly complicated because Git's Makefile
must run in Git's directory, so all references to CGit files need to be
prefixed with "../".

In addition, OBJECTS is a simply expanded variable in Git's Makefile so
we cannot just add our objects to it.  Instead we must copy the two
applicable rules into "cgit.mk".  This has the advantage that we can
split CGit-specific CFLAGS from Git's CFLAGS and hence avoid rebuilding
all of Git whenever a CGit-specific value changes.

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
Acked-by: Jamie Couture &lt;jamie.couture@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix doc-related glitches in Makefile and .gitignore</title>
<updated>2009-03-15T08:27:54+00:00</updated>
<author>
<name>Lars Hjemli</name>
<email>hjemli@gmail.com</email>
</author>
<published>2009-03-15T08:27:54+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-space.net/cgit-70/commit/?id=290c2a752fe2b338e6fd67f873bd80ff7e4665a2'/>
<id>290c2a752fe2b338e6fd67f873bd80ff7e4665a2</id>
<content type='text'>
Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Makefile: autobuild dependency rules</title>
<updated>2008-03-24T22:27:12+00:00</updated>
<author>
<name>Lars Hjemli</name>
<email>hjemli@gmail.com</email>
</author>
<published>2008-03-24T22:01:44+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-space.net/cgit-70/commit/?id=df90b51bafec24336cf30339b2978ff6df22b075'/>
<id>df90b51bafec24336cf30339b2978ff6df22b075</id>
<content type='text'>
This uses gcc to generate dependency rules for each `.o` file, based on the
corresponding `.c` file, into a new set of `.d` files (which are also defined
to depend on the same set of source files as their `.o` files).

Result:
* all objectfile dependencies are correctly calculated
* only the necessary dependencies are recalculated when a sourcefile is updated

Inspiration for the build rules:
* http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites
* http://make.paulandlesley.org/autodep.html

Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This uses gcc to generate dependency rules for each `.o` file, based on the
corresponding `.c` file, into a new set of `.d` files (which are also defined
to depend on the same set of source files as their `.o` files).

Result:
* all objectfile dependencies are correctly calculated
* only the necessary dependencies are recalculated when a sourcefile is updated

Inspiration for the build rules:
* http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites
* http://make.paulandlesley.org/autodep.html

Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add cgit.conf to .gitignore, remove *~</title>
<updated>2007-09-19T22:11:03+00:00</updated>
<author>
<name>Lars Hjemli</name>
<email>hjemli@gmail.com</email>
</author>
<published>2007-09-19T22:11:03+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-space.net/cgit-70/commit/?id=6df9c7028a489578bc8593e56298cd869fcdc1fc'/>
<id>6df9c7028a489578bc8593e56298cd869fcdc1fc</id>
<content type='text'>
Not having cgit.conf in .gitignore is a bug, while having *~ is a personal
preference.

Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not having cgit.conf in .gitignore is a bug, while having *~ is a personal
preference.

Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add version info from git-describe</title>
<updated>2007-06-18T08:38:40+00:00</updated>
<author>
<name>Lars Hjemli</name>
<email>hjemli@gmail.com</email>
</author>
<published>2007-06-18T07:42:10+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-space.net/cgit-70/commit/?id=f69250358a74efa5d7d9c562b2cdd80fad1430f1'/>
<id>f69250358a74efa5d7d9c562b2cdd80fad1430f1</id>
<content type='text'>
A new script, gen-version.sh, is now invoked from 'make version' to generate
the file VERSION. This file contains a version identifier generated by
git-describe and is included in the Makefile.

Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A new script, gen-version.sh, is now invoked from 'make version' to generate
the file VERSION. This file contains a version identifier generated by
git-describe and is included in the Makefile.

Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add caching infrastructure</title>
<updated>2006-12-10T21:31:36+00:00</updated>
<author>
<name>Lars Hjemli</name>
<email>hjemli@gmail.com</email>
</author>
<published>2006-12-10T21:31:36+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-space.net/cgit-70/commit/?id=25105d7ecaba474d4b7c364ebb586aac3dfc5abb'/>
<id>25105d7ecaba474d4b7c364ebb586aac3dfc5abb</id>
<content type='text'>
This enables internal caching of page output.

Page requests are split into four groups:
  1) repo listing (front page)
  2) repo summary
  3) repo pages w/symbolic references in query string
  4) repo pages w/constant sha1's in query string

Each group has a TTL specified in minutes. When a page is requested, a cached
filename is stat(2)'ed and st_mtime is compared to time(2). If TTL has expired
(or the file didn't exist), the cached file is regenerated.

When generating a cached file, locking is used to avoid parallell processing
of the request. If multiple processes tries to aquire the same lock, the ones
who fail to get the lock serves the (expired) cached file. If the cached file
don't exist, the process instead calls sched_yield(2) before restarting the
request processing.

Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This enables internal caching of page output.

Page requests are split into four groups:
  1) repo listing (front page)
  2) repo summary
  3) repo pages w/symbolic references in query string
  4) repo pages w/constant sha1's in query string

Each group has a TTL specified in minutes. When a page is requested, a cached
filename is stat(2)'ed and st_mtime is compared to time(2). If TTL has expired
(or the file didn't exist), the cached file is regenerated.

When generating a cached file, locking is used to avoid parallell processing
of the request. If multiple processes tries to aquire the same lock, the ones
who fail to get the lock serves the (expired) cached file. If the cached file
don't exist, the process instead calls sched_yield(2) before restarting the
request processing.

Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add .gitignore</title>
<updated>2006-12-09T21:21:43+00:00</updated>
<author>
<name>Lars Hjemli</name>
<email>hjemli@gmail.com</email>
</author>
<published>2006-12-09T21:21:43+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-space.net/cgit-70/commit/?id=856c026e221d8ed82c5b75bc8da4bd65e89ea953'/>
<id>856c026e221d8ed82c5b75bc8da4bd65e89ea953</id>
<content type='text'>
Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Lars Hjemli &lt;hjemli@gmail.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
