1TITO.PROPS(5)                  Tito User Manual                  TITO.PROPS(5)
2
3
4

NAME

6       tito.props - directives for tito(5) how to build package.
7

SYNOPSIS

9       None
10

DESCRIPTION

12       Project settings can be stored in files:
13
14       GITROOT/.tito/tito.props
15
16       GITROOT/SOME/PACKAGE/tito.props
17
18       The global .tito/tito.props is generally where settings are defined.
19       For some multi-project git repositories, individual packages can
20       override these settings by placing a tito.props in the project
21       directory. (i.e. same location as it’s .spec file)
22

SECTIONS

24       tito.props can contain several sections:
25

BUILDCONFIG

27       This section and a couple of it’s properties are required. You can use
28       following variables:
29
30       builder
31           The fully qualified Builder class implementation to use. You can
32           either specify builders shipped with tito(5) (see BUILDERS section
33           below), or a custom builder located within the directory your
34           lib_dir option points to. This property is required.
35
36       tagger
37           The fully qualified Tagger class implementation to use. You can
38           either specify taggers shipped with tito(5) (see TAGGERS section
39           below), or a custom tagger located within the directory your
40           lib_dir option points to. This property is required.
41
42       lib_dir
43           Optional property defining a directory to be added to the Python
44           path when executing tito. Allows you to store custom
45           implementations of Builder, Tagger, and Releaser.
46
47       changelog_format
48           This option is used to control the formatting of entries when
49           generating changelog entries. The default value is "%s (%ae)". See
50           PRETTY FORMATS in git-log(1) for more information.
51
52       changelog_with_email
53           If set to 0, then entries in changelog (subject of commits) are not
54           followed by email of committer. Default is 1. This option is
55           deprecated and provided for backwards-compatibility only. New
56           configurations should consider changelog_format instead.
57
58       changelog_do_not_remove_cherrypick
59           If set to 0, it will not remove from cherry picked commits the part
60           "(cherry picked from commit ...)"
61
62       tag_suffix
63           An optional specification of a suffix to append to all tags created
64           by tito for this repo. Can be useful for situations where one git
65           repository is inheriting from another, but tags are created in
66           both. The suffix will be an indicator as to which repo the tag
67           originated in. (i.e. tag_suffix = -mysuffix)
68
69       tag_commit_message_format
70           This option is used control the text of git commit message that is
71           used when new tag is generated. You can use "%(name)s",
72           "%(release_type)s" and "%(version)s" placeholders.
73
74       tag_format
75           This option controls the format used in VersionTagger. If not
76           specified other taggers.
77

KOJI AND COPR

79       disttag
80           Dist tag variable, which is passed to rpmbuild for packages build
81           in this tag.
82
83       blacklist
84           Space separated list of packages, which should not be built in this
85           tag.
86
87       whitelist
88           If whitelist is present, only packages listed here can be built in
89           this tag. This also override blacklist.
90
91       scl
92           Specify name of Software Collection into which package should be
93           build.
94

VERSION_TEMPLATE

96       Allows the user to write out a template file containing version and/or
97       release and add it to git during the tagging process.
98
99       template_file
100           Path to a file conforming to a Python string.Template, as described
101           at http://docs.python.org/2/library/string.html#template-strings.
102           Path is relative to root of the entire git checkout, as this is
103           likely to be stored in the top level .tito directory. The variables
104           $version and $release are available inside the template.
105
106       destination_file
107           Specifies a file to write, relative to the directory for the
108           package being tagged.
109
110       Example:
111
112           [version_template]
113           destination_file = version.txt
114           template_file = .tito/templates/version.rb
115

REQUIREMENTS

117       tito
118           If tito is older then specified version, it will refuse to
119           continue.
120

TAGCONFIG

122       require_package
123           Comma separated list of packages, which needs to be installed prior
124           tagging. If those packages are not installed, tito will refuse to
125           continue.
126

BUILDERS

128       tito.builder.Builder
129           Basic package builder. It create tar.gz of whole directory and
130           create src.rpm and build rpm using some supported method.
131
132       tito.builder.NoTgzBuilder
133           Builder for packages that do not require the creation of tarball.
134           Usually these package have source files checked directly into git.
135
136       tito.builder.UpstreamBuilder
137           Builder for packages that are based off an upstream git tag.
138           Commits applied in downstream git become patches applied to the
139           upstream tarball. For example - you are building package
140           foo-1.2-3... Tar.gz file is created from commit, which is tagged by
141           foo-1.2-1 and the diff between release 1 and 3 is put in spec file
142           as Patch0.
143
144       tito.builder.GemBuilder
145           Builder for packages that list a .gem as Source0, the .gemspec
146           shares a directory hierarchy with the .spec file and the upstream
147           does not want to check .gem files into their git repository.
148
149       tito.distributionbuilder.DistributionBuilder
150           Behave similar as tito.builder.UpstreamBuilder, but patch is
151           created for every release. Therefore package from previous example
152           will end up with tar.gz file created from tag foo-1.2-1 and with
153           Patch0: foo-1.2-1-to-foo-1.2-2.patch Patch1:
154           foo-1.2-1-to-foo-1.2-3.patch
155
156       tito.builder.FetchBuilder
157           See doc/builders.mkd.
158
159           [builder]
160           fetch_strategy = tito.builder.fetch.ArgSourceStrategy
161
162       ArgSourceStrategy here could be replaced with a custom strategy if you
163       were to have one in your lib_dir.
164
165       tito.builder.GitAnnexBuilder
166           See doc/builders.mkd.
167
168       Builder for packages with existing tarballs checked in using git-annex,
169       e.g. referencing an external source (web remote). This builder will
170       "unlock" the source files to get the real contents, include them in the
171       SRPM, then restore the automatic git-annex symlinks on completion.
172

TAGGERS

174       All taggers which inherit from tito.tagger.VersionTagger (all to this
175       date), will update file GITROOT/.tito/packages/name-of-package and put
176       there one line which consist of version-release of package, space
177       delimiter, path to package directory relative to GITROOT.
178
179       tito.tagger.VersionTagger
180           Standard tagger class, used for tagging packages build from source
181           in git. Release will be tagged by incrementing the package version,
182           and the actual "Release" will be always set to 1.
183
184       tito.tagger.ReleaseTagger
185           Keep version and increment release.
186
187       tito.zstreamtagger.zStreamTagger
188           It is used for EUS packages.
189
190       tito.rheltagger.RHELTagger
191           Tagger which is based on ReleaseTagger and uses Red Hat Enterprise
192           Linux changelog format:
193
194           ·   Resolves: #1111 - description
195
196           ·   Related: #1111 - description
197

RELEASER

199       You can create section with the name same as releaser target and there
200       you can specify this option:
201
202       remote_git_name
203           This is useful for FedoraGitReleaser and DistGitReleaser and will
204           allow you to specify name of remote dist-git branch.
205
206           For example let say you have in releaser.conf: [git-sat] releaser =
207           tito.release.DistGitReleaser branches = satellite-6.0-rhel-6
208
209           and then you can add remote_git_name: [git-sat] releaser =
210           tito.release.DistGitReleaser branches = satellite-6.0-rhel-6
211           remote_git_name = ruby193-rubygem-simple-navigation And it will
212           push package into ruby193-rubygem-simple-navigation dist-git
213           despite the fact that it is in /rubygem-simple-navigation
214           directory. And project name (as taken from spec file) is
215           rubygem-simple-navigation.
216

EXAMPLE

218           [buildconfig]
219           builder = tito.builder.Builder
220           tagger = tito.tagger.VersionTagger
221
222           [koji]
223           autobuild_tags = dist-5E-sw-1.2-candidate dist-f12-sw-1.2-candidate dist-f13-sw-1.2-candidate
224
225           [dist-5E-sw-1.2-candidate]
226           disttag = .el5
227
228           [dist-f12-sw-1.2-candidate]
229           disttag = .fc12
230           blacklist=jabberd-selinux
231
232           [dist-f13-sw-1.2-candidate]
233           disttag = .fc13
234           blacklist=jabberd-selinux
235
236           [requirements]
237           tito=0.3.0
238

SEE ALSO

240       tito(8) titorc(5)
241

AUTHORS

243       Devan Goodwin <dgoodwin@rm-rf.ca>
244
245       James Bowes <jbowes@repl.ca>
246
247       Jan Pazdziora
248
249       Jesus M Rodriguez <jesusr@redhat.com>
250
251       Pall Sigurdsson <palli@opensource.is>
252
253       Miroslav Suchý <msuchy@redhat.com>
254
255       and: Adam Miller, Alex Wood, Aron Parsons, Brenton Leanhardt, Ivan
256       Nečas, John Eckersberg, Kenny MacDermid, Lukáš Zapletal, Luke Meyer,
257       Marian Csontos, Martin Bačovský, Michael Stead, Mike McCune, mscherer,
258       Paul Morgan, Sean P. Kane, Steve Ashcrow Milner
259
260
261
262tito                              07/27/2019                     TITO.PROPS(5)
Impressum