Allow though submodules are a contentious topic, this adds a submodule_aware_builder
This can be used with the following config in tito.props:
```
[buildconfig]
builder = SubmoduleAwareBuilder
```
Enable it on all currently supported Fedora/EPEL architectures.
Packit doesn't support our way of preparing source RPMs via the command
'tito build --srpm --test', but creates it's own source RPM instead.
This doesn't seem to cause a practical problems, so we are good to go
for now till the Packit RFE is implemented:
https://github.com/packit/packit-service/issues/920Fixes: #395
The old output was missing filenames, e.g.
AssertionError: Found PEP8 errors that may break your code in Python 3:
2 E201 whitespace after '['
3 E202 whitespace before ']'
2 E203 whitespace before ':'
1 E221 multiple spaces before operator
1 E302 expected 2 blank lines, found 1
2 E303 too many blank lines (2)
That's now usefull at all. Where the heck should I search for these errors. The
new output is a little bit messy but contains more usefull information, e.g.
AssertionError: Found PEP8 errors that may break your code in Python 3:
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:9:1: E302 expected 2 blank lines, found 1
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:17:66: E202 whitespace before ']'
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:21:15: E203 whitespace before ':'
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:22:16: E203 whitespace before ':'
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:26:18: E201 whitespace after '['
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:26:32: E202 whitespace before ']'
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:29:15: E201 whitespace after '['
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:29:32: E202 whitespace before ']'
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:35:17: E221 multiple spaces before operator
/tito/test/unit/../../src/tito/release/LocalYumRepo.py:76:5: E303 too many blank lines (2)
See RHBZ 1784688
We are using unversioned python macros, such as `%__python` and
`%python_sitelib` which are not supported in Fedora rawhide
anymore. Instead, we should use `%__python3` and `%python3_sitelib`.
Without this change, the spectool output can look like this
[root@e15222e75294 pkg1]# spectool -S titotestpkg.spec | awk '{print $2}'
warning: Macro expanded in comment on line 37: %{python3_sitelib}/%{name}
titotestpkg-0.0.1.tar.gz
and then each of the lines is considered to be a SourceX file. We
should really ignore the warnings.
Fix#387
A build with a remote URL in its `SourceX` will work only with
%_disable_source_fetch 0
macro defined. It can be done either globally via `~/.rpmmacros` or by
using tito with following parameter
--rpmbuild-options="--define '%_disable_source_fetch 0'"
IMHO this macro should be set by default but we should also introduce
a switch to turn it off (like e.g. Mock or Copr do). Since it is not
related to fixing #387, I am not doing it in this commit.
* Extra source file can be copied/moved by some other tool
* When the source file already exists in destination path, then
do not try to copy it once again
* This issue was observed, when we tried to build
subscription-manager on Fedora 32 using tito
Fix#367
We accidentally introduced `copy_extra_sources` method as a part of
`BuilderBase` class. Which wouldn't be a problem, except for the fact
that its implementation uses properties, that are not a part of
that class but are rather defined in **some** of its descendats.
Let's define this method only abstractly and let more specific
builder classes to provide their own implementation if it makes
sense for them.
Fix#364
Previously all non-yes input was considered to be "no". Which is not
what we typically want. There should be expected "yes" inputs, expected
"no" inputs and everything else should be considered to be an uknown
input and should be treated this way.
I think that printing an error for unknown input is too verbose and have
no added value. Simply repeating the question is the way to go here:
##### Please review the above diff #####
Do you wish to proceed with commit? [y/n] foo
Do you wish to proceed with commit? [y/n] y
Proceeding with commit.
It's better to do the python2 and python3 compatibility magic on
one place rather than having having `if PY2` conditions everywhere
and figuring whether to use `builtins.foo` or `__builtin__.foo
over and over again.
Fix#358
Previously the bugzilla-specific code was implemented in `tito.common`
which is imported from everywhere. Therefore missing dependency
to `python3-bugzilla` resulted in failure even for simple commands
such as `tito build --tgz`.
Fix#331
Do not specify `_source_filedigest_algorithm`
and `_binary_filedigest_algorithm` anymore
EPEL5 did understand only MD5 checksums but since it is EOLed and
newer releases know SHA, we can probably safely remove it.