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 its 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       changelog_date_with_time
63           By default, changelog dates don’t contain time (e.g. Wed Nov 1
64           2017). When this option is set to True, changelog entries are
65           generated in a datetime format (e.g. Wed Nov 1 11:08:13 EDT 2017).
66           This feature requires RPM 4.14, therefore it is supported only on
67           Fedora 27, EPEL8, openSUSE Leap 15 and higher.
68
69       tag_suffix
70           An optional specification of a suffix to append to all tags created
71           by tito for this repo. Can be useful for situations where one git
72           repository is inheriting from another, but tags are created in
73           both. The suffix will be an indicator as to which repo the tag
74           originated in. (i.e. tag_suffix = -mysuffix)
75
76       tag_commit_message_format
77           This option is used control the text of git commit message that is
78           used when new tag is generated. You can use "%(name)s",
79           "%(release_type)s" and "%(version)s" placeholders.
80
81       tag_format
82           This option controls the format used in VersionTagger. If not
83           specified other taggers.
84
85       sign_tag
86           This boolean enables GnuPG signed tags using git tag -s.
87
88       fetch_sources
89           If true, download sources from predefined Source<N> addresses to
90           the SOURCE folder.
91

KOJI AND COPR

93       disttag
94           Dist tag variable, which is passed to rpmbuild for packages build
95           in this tag.
96
97       blacklist
98           Space separated list of packages, which should not be built in this
99           tag.
100
101       whitelist
102           If whitelist is present, only packages listed here can be built in
103           this tag. This also override blacklist.
104
105       scl
106           Specify name of Software Collection into which package should be
107           build.
108

VERSION_TEMPLATE

110       Allows the user to write out a template file containing version and/or
111       release and add it to git during the tagging process.
112
113       template_file
114           Path to a file conforming to a Python string.Template, as described
115           at http://docs.python.org/2/library/string.html#template-strings.
116           Path is relative to root of the entire git checkout, as this is
117           likely to be stored in the top level .tito directory. The variables
118           $version and $release are available inside the template.
119
120       destination_file
121           Specifies a file to write, relative to the directory for the
122           package being tagged.
123
124       Example:
125
126           [version_template]
127           destination_file = version.txt
128           template_file = .tito/templates/version.rb
129

REQUIREMENTS

131       tito
132           If tito is older then specified version, it will refuse to
133           continue.
134

TAGCONFIG

136       require_package
137           Comma separated list of packages, which needs to be installed prior
138           tagging. If those packages are not installed, tito will refuse to
139           continue.
140

BUILDERS

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

TAGGERS

192       All taggers which inherit from tito.tagger.VersionTagger (all to this
193       date), will update file GITROOT/.tito/packages/name-of-package and put
194       there one line which consist of version-release of package, space
195       delimiter, path to package directory relative to GITROOT.
196
197       tito.tagger.VersionTagger
198           Standard tagger class, used for tagging packages build from source
199           in git. Release will be tagged by incrementing the package version,
200           and the actual "Release" will be always set to 1.
201
202       tito.tagger.ReleaseTagger
203           Keep version and increment release.
204
205       tito.zstreamtagger.zStreamTagger
206           It is used for EUS packages.
207
208       tito.rheltagger.RHELTagger
209           Tagger which is based on ReleaseTagger and uses Red Hat Enterprise
210           Linux changelog format:
211
212           •   Resolves: #1111 - description
213
214           •   Related: #1111 - description
215

RELEASER

217       You can create section with the name same as releaser target and there
218       you can specify this option:
219
220       remote_git_name
221           This is useful for FedoraGitReleaser and DistGitReleaser and will
222           allow you to specify name of remote dist-git branch.
223
224           For example let say you have in releaser.conf: [git-sat] releaser =
225           tito.release.DistGitReleaser branches = satellite-6.0-rhel-6
226
227           and then you can add remote_git_name: [git-sat] releaser =
228           tito.release.DistGitReleaser branches = satellite-6.0-rhel-6
229           remote_git_name = ruby193-rubygem-simple-navigation And it will
230           push package into ruby193-rubygem-simple-navigation dist-git
231           despite the fact that it is in /rubygem-simple-navigation
232           directory. And project name (as taken from spec file) is
233           rubygem-simple-navigation.
234
235       tito.susetagger.SUSETagger
236           Tagger which is based on VersionTagger and deal with SUSE / OBS
237           specific separate changes file and format.
238

EXAMPLE

240           [buildconfig]
241           builder = tito.builder.Builder
242           tagger = tito.tagger.VersionTagger
243
244           [koji]
245           autobuild_tags = dist-5E-sw-1.2-candidate dist-f12-sw-1.2-candidate dist-f13-sw-1.2-candidate
246
247           [dist-5E-sw-1.2-candidate]
248           disttag = .el5
249
250           [dist-f12-sw-1.2-candidate]
251           disttag = .fc12
252           blacklist=jabberd-selinux
253
254           [dist-f13-sw-1.2-candidate]
255           disttag = .fc13
256           blacklist=jabberd-selinux
257
258           [requirements]
259           tito=0.3.0
260

SEE ALSO

262       tito(8) titorc(5)
263

AUTHORS

265       Devan Goodwin <dgoodwin@rm-rf.ca>
266
267       James Bowes <jbowes@repl.ca>
268
269       Jan Pazdziora
270
271       Jesus M Rodriguez <jesusr@redhat.com>
272
273       Pall Sigurdsson <palli@opensource.is>
274
275       Miroslav Suchý <msuchy@redhat.com>
276
277       and: Adam Miller, Alex Wood, Aron Parsons, Brenton Leanhardt, Ivan
278       Nečas, John Eckersberg, Kenny MacDermid, Lukáš Zapletal, Luke Meyer,
279       Marian Csontos, Martin Bačovský, Michael Stead, Mike McCune, mscherer,
280       Paul Morgan, Sean P. Kane, Steve Ashcrow Milner
281
282
283
284tito                              07/22/2023                     TITO.PROPS(5)
Impressum