For Python 3, we need to always encode what we are sending to the server as
utf-8; encoding strings that have only latin-1 as latin-1 causes us to
send something that the server can't parse. (When no encoding is specified
xmlclient.client.dumps creates an XML document with an xml declaration
for UTF-8.)
Prior to this change, if the following conditions were true:
1) A Koji client uses SSL authentication,
2) The user does not set the "serverca" option for their profile,
3) The user does not have a "~/.koji/serverca.crt" file present,
Then Koji did not use the default CA store to validate the hub's CA.
read_defaults() was setting the "serverca" value to an empty string ""
in these cases. This led to an AuthError in ssl_login() for the empty
string:
raise AuthError("Server CA %s doesn't exist or is not accessible" % serverca)
Update ssl_login() to ignore empty strings in this case, treating them
the same as None.
The code in _sendOneCall() already checks this value in a similar way,
with "if verify:", so we're matching that behavior here.
With this change, Koji clients will fall back to using the default CA
store.
This should catch issues with downloading RPMs early, so as to not break
the build in unknown ways.
Fixes: #290
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
If there are multiple e-mailes separated by comma of space, they should
be split for correct usage of smtplib.sendmail.
Fixes: https://pagure.io/koji/issue/1240
The Koji data model has been updated to support multiple checksum types. These are listed in the
CHECKSUM_TYPES enum in koji/__init__.py, but are not available in kojikamid.py. This change
copies the Enum class and the CHECKSUM_TYPES enum into kojikamid at build time, and uses it when
validating the checksums of downloaded files.
also fix unittest: test_profiles
notes: since the test won't read config files anymore, lift the loop number from 20 -> 256 to increase the probability of hitting the multithread issue
fixes: #1786
These functions are now fully provided by hashlib. Commit removes their
usage from koji's codebase and leaves deprecation message in lib.
Final removal from lib is scheduled to 1.21.
Fixes: https://pagure.io/koji/issue/1487
Discussions with Son_Goku (from Mageia) on IRC revealed that they need
per tag/target macro support in Koji. We store tag macros in 'Extra Options'
and macro has to start with '%'.
Example:
% koji taginfo f29
Tag: f29 [11]
Arches: riscv64
Groups:
Required permission: 'admin'
Tag options:
%mymacro : 'value123'
%packager : 'Fedora Project RISC-V'
mock.package_manager : 'dnf'
[..]
Tag macros can be added using koji edit-tag.
The tag macros are allowed to overwrite macros set in koji.genMockConfig.
For example, %packager is set in koji.genMockConfig by default. The mock
configuration generated by kojid was:
[..]
config_opts['macros']['%_host'] = 'riscv64-koji-linux-gnu'
config_opts['macros']['%mymacro'] = 'value123'
config_opts['macros']['%_host_cpu'] = 'riscv64'
config_opts['macros']['%vendor'] = 'Fedora Project'
config_opts['macros']['%distribution'] = 'Fedora Project'
config_opts['macros']['%_topdir'] = '/builddir/build'
config_opts['macros']['%_rpmfilename'] = '%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'
config_opts['macros']['%packager'] = 'Fedora Project RISC-V'
[..]
This two-line change was tested on Fedora RISC-V koji instance.
Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>