1TITO.PROPS(5) Tito User Manual TITO.PROPS(5)
2
3
4
6 tito.props - directives for tito(5) how to build package.
7
9 None
10
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
24 tito.props can contain several sections:
25
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
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
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
117 tito
118 If tito is older then specified version, it will refuse to
119 continue.
120
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
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
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
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
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
240 tito(8) titorc(5)
241
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 01/18/2019 TITO.PROPS(5)