ceph/man/conf.py
Nathan Cutler e294dd5910 legal: remove doc license ambiguity
The license applicable to the files under doc/ was originally declared (in the
top-level file COPYING) to be "Creative Commons Attribution-ShareAlike (CC
BY-SA)" by ed0653b493a3f919a3abc37a0aa9b5aa29ae0b0e

This license declaration omitted a version number.

Some time later ef7418421b3748c712019c8aedd02b8005c1e1ea was merged, mentioning
CC-BY-SA-1.0 as one of the Ceph source code licenses. Although the purpose of that
commit was only to summarize the canonical license information from COPYING, it
unintentionally became the only place in the source code where the doc license
version was specified.

In March 2018, the Debian project warned that CC-BY-SA-1.0 does not meet its
criteria for inclusion in the "free" section of the Debian distribution. (For
that, at least version 3.0 must be used.)

This new commit removes the doc license ambiguity by setting it to CC-BY-SA-3.0
in all places where the license is mentioned.

The exact spelling of the license name is taken from https://spdx.org/licenses/

Fixes: http://tracker.ceph.com/issues/23336
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2018-03-13 18:59:02 +01:00

60 lines
1.8 KiB
Python

import os
project = u'Ceph'
copyright = u'2010-2014, Inktank Storage, Inc. and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0)'
version = 'dev'
release = 'dev'
exclude_patterns = ['**/.#*', '**/*~']
def _get_description(fname, base):
with open(fname) as f:
one = None
while True:
line = f.readline().rstrip('\n')
if not line:
continue
if line.startswith(':') and line.endswith(':'):
continue
one = line
break
two = f.readline().rstrip('\n')
three = f.readline().rstrip('\n')
assert one == three
assert all(c=='=' for c in one)
name, description = two.split('--', 1)
assert name.strip() == base
return description.strip()
def _get_manpages():
src_dir = os.path.dirname(__file__)
top_srcdir = os.path.dirname(src_dir)
man_dir = os.path.join(top_srcdir, 'doc', 'man')
sections = os.listdir(man_dir)
for section in sections:
section_dir = os.path.join(man_dir, section)
if not os.path.isdir(section_dir):
continue
for filename in os.listdir(section_dir):
base, ext = os.path.splitext(filename)
if ext != '.rst':
continue
if base == 'index':
continue
path = os.path.join(section_dir, filename)
description = _get_description(path, base)
yield (
os.path.join(section, base),
base,
description,
'',
section,
)
man_pages = list(_get_manpages())
# sphinx warns if no toc is found, so feed it with a random file
# which is also rendered in this run.
master_doc = '8/ceph'