-
Notifications
You must be signed in to change notification settings - Fork 12
/
HACKING
86 lines (67 loc) · 3.7 KB
/
HACKING
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Modifying oidentd
*****************
Copyright (c) 2018-2019 Janik Rabe
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without any warranty.
Introduction
============
This project uses the GNU Build System, also known as Autotools. The
instructions in this file assume that Autotools has already been installed;
specifically, it is assumed that autoconf, autoheader, automake and aclocal
are installed and available in '$PATH'. For more information on installing
and using the GNU Build System, please consult the documentation of autoconf
and automake, or run './autogen.sh'.
The command './autogen.sh' checks for the existence of these programs
and, if they are present, generates a './configure' script. This script can
then be used to configure the build and generate the files required to build
and install oidentd. For more information on installing oidentd, please
consult the INSTALL file.
Note that the source files generated by flex and bison are included only
in release tarballs. For this reason, flex and bison must be installed before
building oidentd from any source other than one of the published releases.
Please consult the documentation of flex and bison for more information.
Likewise, AsciiDoc is required for building the manual pages and must be
installed when building from git.
After modifying the sources, oidentd can be recompiled by issuing the
'make' command. When making changes to a file in the 'src/kernel/' directory,
the modified file must first be copied to 'src/os.c', and 'make' must be
issued on an operating system kernel corresponding to the changed file.
Source Tree
===========
.
|-- doc: Documentation and manual pages
`-- src: Source code
|-- kernel: Kernel-specific functions
`-- missing: Portable implementations of missing functions
Kernel Support
==============
The './configure' script copies the appropriate source file for the
current operating system from the 'src/kernel/' directory to 'src/os.c'.
This behavior can be modified by editing 'configure.ac'. The './configure'
script will automatically be regenerated the next time the 'make' command
is issued.
When making changes that affect kernel support, please ensure that the
'KERNEL_SUPPORT.md' file is updated to reflect these changes.
Releasing
=========
Before releasing a new version, please ensure that all documentation
is up-to-date. This includes the files 'AUTHORS', 'ChangeLog', 'HACKING',
'INSTALL', 'KERNEL_SUPPORT.md', 'README', and the manual pages in the 'doc/'
directory. New versions should be released only by the project maintainers.
In 'ChangeLog', add an entry '* Released as version <version>.' to the top
of the file, replacing '<version>' with the version number of the new release.
Prepend a summary of all significant changes to the 'NEWS' file. Each
change should be added as a separate line and prefixed with an asterisk and a
space character ('* '). The last change should be followed by a blank line to
separate the summary from that of the previous version. At the top of the
file, add the line "Changes in version <version>", replacing '<version>' with
the version number of the new release.
Update the version number in 'configure.ac', 'doc/book/book.toml', and
'README'. Change the date in each of the manual pages to the release date of
the new version.
Commit the changes and tag the commit with "v<version>", where '<version>'
is the version number of the release.
Finally, run 'make distcheck' to produce a set of release tarballs which
can then be distributed to users.