mirror of
https://git.zx2c4.com/cgit/
synced 2024-11-13 19:12:05 +00:00
859d106d5e
Conflicts: cgitrc.5.txt
667 lines
21 KiB
Plaintext
667 lines
21 KiB
Plaintext
:man source: cgit
|
|
:man manual: cgit
|
|
|
|
CGITRC(5)
|
|
========
|
|
|
|
|
|
NAME
|
|
----
|
|
cgitrc - runtime configuration for cgit
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
Cgitrc contains all runtime settings for cgit, including the list of git
|
|
repositories, formatted as a line-separated list of NAME=VALUE pairs. Blank
|
|
lines, and lines starting with '#', are ignored.
|
|
|
|
|
|
LOCATION
|
|
--------
|
|
The default location of cgitrc, defined at compile time, is /etc/cgitrc. At
|
|
runtime, cgit will consult the environment variable CGIT_CONFIG and, if
|
|
defined, use its value instead.
|
|
|
|
|
|
GLOBAL SETTINGS
|
|
---------------
|
|
about-filter::
|
|
Specifies a command which will be invoked to format the content of
|
|
about pages (both top-level and for each repository). The command will
|
|
get the content of the about-file on its STDIN, and the STDOUT from the
|
|
command will be included verbatim on the about page. Default value:
|
|
none. See also: "FILTER API".
|
|
|
|
agefile::
|
|
Specifies a path, relative to each repository path, which can be used
|
|
to specify the date and time of the youngest commit in the repository.
|
|
The first line in the file is used as input to the "parse_date"
|
|
function in libgit. Recommended timestamp-format is "yyyy-mm-dd
|
|
hh:mm:ss". Default value: "info/web/last-modified".
|
|
|
|
cache-root::
|
|
Path used to store the cgit cache entries. Default value:
|
|
"/var/cache/cgit". See also: "MACRO EXPANSION".
|
|
|
|
cache-dynamic-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of repository pages accessed without a fixed SHA1. Default
|
|
value: "5".
|
|
|
|
cache-repo-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of the repository summary page. Default value: "5".
|
|
|
|
cache-root-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of the repository index page. Default value: "5".
|
|
|
|
cache-scanrc-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the result
|
|
of scanning a path for git repositories. Default value: "15".
|
|
|
|
cache-size::
|
|
The maximum number of entries in the cgit cache. Default value: "0"
|
|
(i.e. caching is disabled).
|
|
|
|
cache-static-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of repository pages accessed with a fixed SHA1. Default value:
|
|
"5".
|
|
|
|
clone-prefix::
|
|
Space-separated list of common prefixes which, when combined with a
|
|
repository url, generates valid clone urls for the repository. This
|
|
setting is only used if `repo.clone-url` is unspecified. Default value:
|
|
none.
|
|
|
|
commit-filter::
|
|
Specifies a command which will be invoked to format commit messages.
|
|
The command will get the message on its STDIN, and the STDOUT from the
|
|
command will be included verbatim as the commit message, i.e. this can
|
|
be used to implement bugtracker integration. Default value: none.
|
|
See also: "FILTER API".
|
|
|
|
css::
|
|
Url which specifies the css document to include in all cgit pages.
|
|
Default value: "/cgit.css".
|
|
|
|
embedded::
|
|
Flag which, when set to "1", will make cgit generate a html fragment
|
|
suitable for embedding in other html pages. Default value: none. See
|
|
also: "noheader".
|
|
|
|
enable-commit-graph::
|
|
Flag which, when set to "1", will make cgit print an ASCII-art commit
|
|
history graph to the left of the commit messages in the repository
|
|
log page. Default value: "0".
|
|
|
|
enable-filter-overrides::
|
|
Flag which, when set to "1", allows all filter settings to be
|
|
overridden in repository-specific cgitrc files. Default value: none.
|
|
|
|
enable-gitweb-owner::
|
|
If set to "1" and scan-path is enabled, we first check each repository
|
|
for the git config value "gitweb.owner" to determine the owner.
|
|
Default value: "1". See also: scan-path.
|
|
|
|
enable-http-clone::
|
|
If set to "1", cgit will act as an dumb HTTP endpoint for git clones.
|
|
If you use an alternate way of serving git repositories, you may wish
|
|
to disable this. Default value: "1".
|
|
|
|
enable-index-links::
|
|
Flag which, when set to "1", will make cgit generate extra links for
|
|
each repo in the repository index (specifically, to the "summary",
|
|
"commit" and "tree" pages). Default value: "0".
|
|
|
|
enable-log-filecount::
|
|
Flag which, when set to "1", will make cgit print the number of
|
|
modified files for each commit on the repository log page. Default
|
|
value: "0".
|
|
|
|
enable-log-linecount::
|
|
Flag which, when set to "1", will make cgit print the number of added
|
|
and removed lines for each commit on the repository log page. Default
|
|
value: "0".
|
|
|
|
enable-remote-branches::
|
|
Flag which, when set to "1", will make cgit display remote branches
|
|
in the summary and refs views. Default value: "0". See also:
|
|
"repo.enable-remote-branches".
|
|
|
|
enable-subject-links::
|
|
Flag which, when set to "1", will make cgit use the subject of the
|
|
parent commit as link text when generating links to parent commits
|
|
in commit view. Default value: "0". See also:
|
|
"repo.enable-subject-links".
|
|
|
|
enable-tree-linenumbers::
|
|
Flag which, when set to "1", will make cgit generate linenumber links
|
|
for plaintext blobs printed in the tree view. Default value: "1".
|
|
|
|
favicon::
|
|
Url used as link to a shortcut icon for cgit. If specified, it is
|
|
suggested to use the value "/favicon.ico" since certain browsers will
|
|
ignore other values. Default value: none.
|
|
|
|
footer::
|
|
The content of the file specified with this option will be included
|
|
verbatim at the bottom of all pages (i.e. it replaces the standard
|
|
"generated by..." message. Default value: none.
|
|
|
|
head-include::
|
|
The content of the file specified with this option will be included
|
|
verbatim in the html HEAD section on all pages. Default value: none.
|
|
|
|
header::
|
|
The content of the file specified with this option will be included
|
|
verbatim at the top of all pages. Default value: none.
|
|
|
|
include::
|
|
Name of a configfile to include before the rest of the current config-
|
|
file is parsed. Default value: none. See also: "MACRO EXPANSION".
|
|
|
|
index-header::
|
|
The content of the file specified with this option will be included
|
|
verbatim above the repository index. This setting is deprecated, and
|
|
will not be supported by cgit-1.0 (use root-readme instead). Default
|
|
value: none.
|
|
|
|
index-info::
|
|
The content of the file specified with this option will be included
|
|
verbatim below the heading on the repository index page. This setting
|
|
is deprecated, and will not be supported by cgit-1.0 (use root-desc
|
|
instead). Default value: none.
|
|
|
|
local-time::
|
|
Flag which, if set to "1", makes cgit print commit and tag times in the
|
|
servers timezone. Default value: "0".
|
|
|
|
logo::
|
|
Url which specifies the source of an image which will be used as a logo
|
|
on all cgit pages. Default value: "/cgit.png".
|
|
|
|
logo-link::
|
|
Url loaded when clicking on the cgit logo image. If unspecified the
|
|
calculated url of the repository index page will be used. Default
|
|
value: none.
|
|
|
|
max-atom-items::
|
|
Specifies the number of items to display in atom feeds view. Default
|
|
value: "10".
|
|
|
|
max-commit-count::
|
|
Specifies the number of entries to list per page in "log" view. Default
|
|
value: "50".
|
|
|
|
max-message-length::
|
|
Specifies the maximum number of commit message characters to display in
|
|
"log" view. Default value: "80".
|
|
|
|
max-repo-count::
|
|
Specifies the number of entries to list per page on the repository
|
|
index page. Default value: "50".
|
|
|
|
max-repodesc-length::
|
|
Specifies the maximum number of repo description characters to display
|
|
on the repository index page. Default value: "80".
|
|
|
|
max-blob-size::
|
|
Specifies the maximum size of a blob to display HTML for in KBytes.
|
|
Default value: "0" (limit disabled).
|
|
|
|
max-stats::
|
|
Set the default maximum statistics period. Valid values are "week",
|
|
"month", "quarter" and "year". If unspecified, statistics are
|
|
disabled. Default value: none. See also: "repo.max-stats".
|
|
|
|
mimetype.<ext>::
|
|
Set the mimetype for the specified filename extension. This is used
|
|
by the `plain` command when returning blob content.
|
|
|
|
module-link::
|
|
Text which will be used as the formatstring for a hyperlink when a
|
|
submodule is printed in a directory listing. The arguments for the
|
|
formatstring are the path and SHA1 of the submodule commit. Default
|
|
value: "./?repo=%s&page=commit&id=%s"
|
|
|
|
nocache::
|
|
If set to the value "1" caching will be disabled. This settings is
|
|
deprecated, and will not be honored starting with cgit-1.0. Default
|
|
value: "0".
|
|
|
|
noplainemail::
|
|
If set to "1" showing full author email adresses will be disabled.
|
|
Default value: "0".
|
|
|
|
noheader::
|
|
Flag which, when set to "1", will make cgit omit the standard header
|
|
on all pages. Default value: none. See also: "embedded".
|
|
|
|
project-list::
|
|
A list of subdirectories inside of scan-path, relative to it, that
|
|
should loaded as git repositories. This must be defined prior to
|
|
scan-path. Default value: none. See also: scan-path, "MACRO
|
|
EXPANSION".
|
|
|
|
readme::
|
|
Text which will be used as default value for "repo.readme". Default
|
|
value: none.
|
|
|
|
remove-suffix::
|
|
If set to "1" and scan-path is enabled, if any repositories are found
|
|
with a suffix of ".git", this suffix will be removed for the url and
|
|
name. Default value: "0". See also: scan-path.
|
|
|
|
renamelimit::
|
|
Maximum number of files to consider when detecting renames. The value
|
|
"-1" uses the compiletime value in git (for further info, look at
|
|
`man git-diff`). Default value: "-1".
|
|
|
|
repo.group::
|
|
Legacy alias for "section". This option is deprecated and will not be
|
|
supported in cgit-1.0.
|
|
|
|
robots::
|
|
Text used as content for the "robots" meta-tag. Default value:
|
|
"index, nofollow".
|
|
|
|
root-desc::
|
|
Text printed below the heading on the repository index page. Default
|
|
value: "a fast webinterface for the git dscm".
|
|
|
|
root-readme::
|
|
The content of the file specified with this option will be included
|
|
verbatim below the "about" link on the repository index page. Default
|
|
value: none.
|
|
|
|
root-title::
|
|
Text printed as heading on the repository index page. Default value:
|
|
"Git Repository Browser".
|
|
|
|
scan-hidden-path::
|
|
If set to "1" and scan-path is enabled, scan-path will recurse into
|
|
directories whose name starts with a period ('.'). Otherwise,
|
|
scan-path will stay away from such directories (considered as
|
|
"hidden"). Note that this does not apply to the ".git" directory in
|
|
non-bare repos. This must be defined prior to scan-path.
|
|
Default value: 0. See also: scan-path.
|
|
|
|
scan-path::
|
|
A path which will be scanned for repositories. If caching is enabled,
|
|
the result will be cached as a cgitrc include-file in the cache
|
|
directory. If project-list has been defined prior to scan-path,
|
|
scan-path loads only the directories listed in the file pointed to by
|
|
project-list. Be advised that only the global settings taken
|
|
before the scan-path directive will be applied to each repository.
|
|
Default value: none. See also: cache-scanrc-ttl, project-list,
|
|
"MACRO EXPANSION".
|
|
|
|
section::
|
|
The name of the current repository section - all repositories defined
|
|
after this option will inherit the current section name. Default value:
|
|
none.
|
|
|
|
section-from-path::
|
|
A number which, if specified before scan-path, specifies how many
|
|
path elements from each repo path to use as a default section name.
|
|
If negative, cgit will discard the specified number of path elements
|
|
above the repo directory. Default value: 0.
|
|
|
|
side-by-side-diffs::
|
|
If set to "1" shows side-by-side diffs instead of unidiffs per
|
|
default. Default value: "0".
|
|
|
|
snapshots::
|
|
Text which specifies the default set of snapshot formats generated by
|
|
cgit. The value is a space-separated list of zero or more of the
|
|
values "tar", "tar.gz", "tar.bz2", "tar.xz" and "zip". Default value:
|
|
none.
|
|
|
|
source-filter::
|
|
Specifies a command which will be invoked to format plaintext blobs
|
|
in the tree view. The command will get the blob content on its STDIN
|
|
and the name of the blob as its only command line argument. The STDOUT
|
|
from the command will be included verbatim as the blob contents, i.e.
|
|
this can be used to implement e.g. syntax highlighting. Default value:
|
|
none. See also: "FILTER API".
|
|
|
|
summary-branches::
|
|
Specifies the number of branches to display in the repository "summary"
|
|
view. Default value: "10".
|
|
|
|
summary-log::
|
|
Specifies the number of log entries to display in the repository
|
|
"summary" view. Default value: "10".
|
|
|
|
summary-tags::
|
|
Specifies the number of tags to display in the repository "summary"
|
|
view. Default value: "10".
|
|
|
|
strict-export::
|
|
Filename which, if specified, needs to be present within the repository
|
|
for cgit to allow access to that repository. This can be used to emulate
|
|
gitweb's EXPORT_OK and STRICT_EXPORT functionality and limit cgit's
|
|
repositories to match those exported by git-daemon. This option MUST come
|
|
before 'scan-path'.
|
|
|
|
virtual-root::
|
|
Url which, if specified, will be used as root for all cgit links. It
|
|
will also cause cgit to generate 'virtual urls', i.e. urls like
|
|
'/cgit/tree/README' as opposed to '?r=cgit&p=tree&path=README'. Default
|
|
value: none.
|
|
NOTE: cgit has recently learned how to use PATH_INFO to achieve the
|
|
same kind of virtual urls, so this option will probably be deprecated.
|
|
|
|
REPOSITORY SETTINGS
|
|
-------------------
|
|
repo.about-filter::
|
|
Override the default about-filter. Default value: none. See also:
|
|
"enable-filter-overrides". See also: "FILTER API".
|
|
|
|
repo.clone-url::
|
|
A list of space-separated urls which can be used to clone this repo.
|
|
Default value: none.
|
|
|
|
repo.commit-filter::
|
|
Override the default commit-filter. Default value: none. See also:
|
|
"enable-filter-overrides". See also: "FILTER API".
|
|
|
|
repo.defbranch::
|
|
The name of the default branch for this repository. If no such branch
|
|
exists in the repository, the first branch name (when sorted) is used
|
|
as default instead. Default value: "master".
|
|
|
|
repo.desc::
|
|
The value to show as repository description. Default value: none.
|
|
|
|
repo.enable-commit-graph::
|
|
A flag which can be used to disable the global setting
|
|
`enable-commit-graph'. Default value: none.
|
|
|
|
repo.enable-log-filecount::
|
|
A flag which can be used to disable the global setting
|
|
`enable-log-filecount'. Default value: none.
|
|
|
|
repo.enable-log-linecount::
|
|
A flag which can be used to disable the global setting
|
|
`enable-log-linecount'. Default value: none.
|
|
|
|
repo.enable-remote-branches::
|
|
Flag which, when set to "1", will make cgit display remote branches
|
|
in the summary and refs views. Default value: <enable-remote-branches>.
|
|
|
|
repo.enable-subject-links::
|
|
A flag which can be used to override the global setting
|
|
`enable-subject-links'. Default value: none.
|
|
|
|
repo.logo::
|
|
Url which specifies the source of an image which will be used as a logo
|
|
on this repo's pages. Default value: global logo.
|
|
|
|
repo.logo-link::
|
|
Url loaded when clicking on the cgit logo image. If unspecified the
|
|
calculated url of the repository index page will be used. Default
|
|
value: global logo-link.
|
|
|
|
repo.max-stats::
|
|
Override the default maximum statistics period. Valid values are equal
|
|
to the values specified for the global "max-stats" setting. Default
|
|
value: none.
|
|
|
|
repo.name::
|
|
The value to show as repository name. Default value: <repo.url>.
|
|
|
|
repo.owner::
|
|
A value used to identify the owner of the repository. Default value:
|
|
none.
|
|
|
|
repo.path::
|
|
An absolute path to the repository directory. For non-bare repositories
|
|
this is the .git-directory. Default value: none.
|
|
|
|
repo.readme::
|
|
A path (relative to <repo.path>) which specifies a file to include
|
|
verbatim as the "About" page for this repo. You may also specify a
|
|
git refspec by head or by hash by prepending the refspec followed by
|
|
a colon. For example, "master:docs/readme.mkd" Default value: <readme>.
|
|
|
|
repo.snapshots::
|
|
A mask of allowed snapshot-formats for this repo, restricted by the
|
|
"snapshots" global setting. Default value: <snapshots>.
|
|
|
|
repo.section::
|
|
Override the current section name for this repository. Default value:
|
|
none.
|
|
|
|
repo.source-filter::
|
|
Override the default source-filter. Default value: none. See also:
|
|
"enable-filter-overrides". See also: "FILTER API".
|
|
|
|
repo.url::
|
|
The relative url used to access the repository. This must be the first
|
|
setting specified for each repo. Default value: none.
|
|
|
|
|
|
REPOSITORY-SPECIFIC CGITRC FILE
|
|
-------------------------------
|
|
When the option "scan-path" is used to auto-discover git repositories, cgit
|
|
will try to parse the file "cgitrc" within any found repository. Such a
|
|
repo-specific config file may contain any of the repo-specific options
|
|
described above, except "repo.url" and "repo.path". Additionally, the "filter"
|
|
options are only acknowledged in repo-specific config files when
|
|
"enable-filter-overrides" is set to "1".
|
|
|
|
Note: the "repo." prefix is dropped from the option names in repo-specific
|
|
config files, e.g. "repo.desc" becomes "desc".
|
|
|
|
|
|
FILTER API
|
|
----------
|
|
- about filter::
|
|
This filter is given no arguments.
|
|
The about text that is to be filtered is available on standard input and the
|
|
filtered text is expected on standard output.
|
|
- commit filter::
|
|
This filter is given no arguments.
|
|
The commit message text that is to be filtered is available on standard input
|
|
and the filtered text is expected on standard output.
|
|
- source filter::
|
|
This filter is given a single parameter: the filename of the source file to
|
|
filter. The filter can use the filename to determine (for example) the syntax
|
|
highlighting mode.
|
|
The contents of the source file that is to be filtered is available on
|
|
standard input and the filtered contents is expected on standard output.
|
|
|
|
Also, all filters are handed the following environment variables:
|
|
- CGIT_REPO_URL ( = repo.url setting )
|
|
- CGIT_REPO_NAME ( = repo.name setting )
|
|
- CGIT_REPO_PATH ( = repo.path setting )
|
|
- CGIT_REPO_OWNER ( = repo.owner setting )
|
|
- CGIT_REPO_DEFBRANCH ( = repo.defbranch setting )
|
|
- CGIT_REPO_SECTION ( = section setting )
|
|
- CGIT_REPO_CLONE_URL ( = repo.clone-url setting )
|
|
|
|
If a setting is not defined for a repository and the corresponding global
|
|
setting is also not defined (if applicable), then the corresponding
|
|
environment variable will be an empty string.
|
|
|
|
Note that under normal circumstance all these environment variables are
|
|
defined. If however the total size of the defined settings exceed the
|
|
allocated buffer within cgit then only the environment variables that fit
|
|
in the allocated buffer are handed to the filter.
|
|
|
|
|
|
MACRO EXPANSION
|
|
---------------
|
|
The following cgitrc options supports a simple macro expansion feature,
|
|
where tokens prefixed with "$" are replaced with the value of a similary
|
|
named environment variable:
|
|
|
|
- cache-root
|
|
- include
|
|
- project-list
|
|
- scan-path
|
|
|
|
Macro expansion will also happen on the content of $CGIT_CONFIG, if
|
|
defined.
|
|
|
|
One usage of this feature is virtual hosting, which in its simplest form
|
|
can be accomplished by adding the following line to /etc/cgitrc:
|
|
|
|
include=/etc/cgitrc.d/$HTTP_HOST
|
|
|
|
|
|
EXAMPLE CGITRC FILE
|
|
-------------------
|
|
|
|
....
|
|
# Enable caching of up to 1000 output entriess
|
|
cache-size=1000
|
|
|
|
|
|
# Specify some default clone prefixes
|
|
clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git
|
|
|
|
# Specify the css url
|
|
css=/css/cgit.css
|
|
|
|
|
|
# Show extra links for each repository on the index page
|
|
enable-index-links=1
|
|
|
|
|
|
# Enable ASCII art commit history graph on the log pages
|
|
enable-commit-graph=1
|
|
|
|
|
|
# Show number of affected files per commit on the log pages
|
|
enable-log-filecount=1
|
|
|
|
|
|
# Show number of added/removed lines per commit on the log pages
|
|
enable-log-linecount=1
|
|
|
|
|
|
# Add a cgit favicon
|
|
favicon=/favicon.ico
|
|
|
|
|
|
# Use a custom logo
|
|
logo=/img/mylogo.png
|
|
|
|
|
|
# Enable statistics per week, month and quarter
|
|
max-stats=quarter
|
|
|
|
|
|
# Set the title and heading of the repository index page
|
|
root-title=example.com git repositories
|
|
|
|
|
|
# Set a subheading for the repository index page
|
|
root-desc=tracking the foobar development
|
|
|
|
|
|
# Include some more info about example.com on the index page
|
|
root-readme=/var/www/htdocs/about.html
|
|
|
|
|
|
# Allow download of tar.gz, tar.bz2 and zip-files
|
|
snapshots=tar.gz tar.bz2 zip
|
|
|
|
|
|
##
|
|
## List of common mimetypes
|
|
##
|
|
|
|
mimetype.gif=image/gif
|
|
mimetype.html=text/html
|
|
mimetype.jpg=image/jpeg
|
|
mimetype.jpeg=image/jpeg
|
|
mimetype.pdf=application/pdf
|
|
mimetype.png=image/png
|
|
mimetype.svg=image/svg+xml
|
|
|
|
|
|
##
|
|
## List of repositories.
|
|
## PS: Any repositories listed when section is unset will not be
|
|
## displayed under a section heading
|
|
## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos')
|
|
## and included like this:
|
|
## include=/etc/cgitrepos
|
|
##
|
|
|
|
|
|
repo.url=foo
|
|
repo.path=/pub/git/foo.git
|
|
repo.desc=the master foo repository
|
|
repo.owner=fooman@example.com
|
|
repo.readme=info/web/about.html
|
|
|
|
|
|
repo.url=bar
|
|
repo.path=/pub/git/bar.git
|
|
repo.desc=the bars for your foo
|
|
repo.owner=barman@example.com
|
|
repo.readme=info/web/about.html
|
|
|
|
|
|
# The next repositories will be displayed under the 'extras' heading
|
|
section=extras
|
|
|
|
|
|
repo.url=baz
|
|
repo.path=/pub/git/baz.git
|
|
repo.desc=a set of extensions for bar users
|
|
|
|
repo.url=wiz
|
|
repo.path=/pub/git/wiz.git
|
|
repo.desc=the wizard of foo
|
|
|
|
|
|
# Add some mirrored repositories
|
|
section=mirrors
|
|
|
|
|
|
repo.url=git
|
|
repo.path=/pub/git/git.git
|
|
repo.desc=the dscm
|
|
|
|
|
|
repo.url=linux
|
|
repo.path=/pub/git/linux.git
|
|
repo.desc=the kernel
|
|
|
|
# Disable adhoc downloads of this repo
|
|
repo.snapshots=0
|
|
|
|
# Disable line-counts for this repo
|
|
repo.enable-log-linecount=0
|
|
|
|
# Restrict the max statistics period for this repo
|
|
repo.max-stats=month
|
|
....
|
|
|
|
|
|
BUGS
|
|
----
|
|
Comments currently cannot appear on the same line as a setting; the comment
|
|
will be included as part of the value. E.g. this line:
|
|
|
|
robots=index # allow indexing
|
|
|
|
will generate the following html element:
|
|
|
|
<meta name='robots' content='index # allow indexing'/>
|
|
|
|
|
|
|
|
AUTHOR
|
|
------
|
|
Lars Hjemli <hjemli@gmail.com>
|
|
Jason A. Donenfeld <Jason@zx2c4.com>
|