Commit Graph

195 Commits

Author SHA1 Message Date
Valerij Maljulin
8ee7168017 get_reusable_component now checks the architecture
Signed-off-by: Valerij Maljulin <vmaljuli@redhat.com>
2018-10-16 13:44:18 +02:00
Jan Kaluža
2c29d9095e Merge #1040 Fix wrong inclusion of non-multilib packages in final MMD. 2018-10-16 07:10:33 +00:00
Jan Kaluza
bcb104a16a Fix wrong inclusion of non-multilib packages in final MMD.
The original Pungi code, on which MBS code is based on, always passed only RPMs
with valid architectures to further decide if their subset should end up in a
final modulemd file.

In MBS, we pass RPMs with all architecture and there was no code to actually filter
out the RPMs which are from architectures which should never end up in a final MMD.

This commit checks that RPMs for completely different architectures will never
be considered to be included in a final MMD.
2018-10-16 09:08:14 +02:00
Valerij Maljulin
7f60db545a renaming koji_arches to arches
Signed-off-by: Valerij Maljulin <vmaljuli@redhat.com>
2018-10-15 15:29:50 +02:00
mprahl
a42dd0d58d Merge "MockModuleBuilder: Don't run the final createrepo if the module build failed" 2018-10-10 08:00:31 -04:00
Owen W. Taylor
b31fb65cef MockModuleBuilder: Don't run the final createrepo if the module build failed
The build steps assume that the the repository for the build is non-modular,
so after the final createrepo is run with include_module_yaml=True, it's
impossible to repeat a build steps. Running mock -c <failed_config> build is
quite useful for debugging a failed build (even though it's hard to find the
right config) - skipping the final createrepo step for failed module builds
makes it work as expected.
2018-10-06 10:33:37 -04:00
Matt Prahl
456ab29c8e Merge #1031 Fix filtering noarch RPMs 2018-10-02 16:58:54 +00:00
Chenxiong Qi
520a979d3d Add singleton system_resolver
system_resolver is created based on loaded configuration, which could
avoid calls like `GenericResolver.create(conf)` repeatedly in the code.

However, if some cases need to create a specific resolver explicitly,
`GenericResolver.create` could be called with addition argument, for
example db or mbs is passed to argument backend in tests.

Signed-off-by: Chenxiong Qi <cqi@redhat.com>
2018-09-28 11:00:52 +08:00
Lubomír Sedlář
388b31b693 Fix filtering noarch RPMs
The list of arches we compare against should not include multilib
arches. Otherwise excluding does not behave correctly.

Example:
A build has ExcludeArch: i686 (because it only works on 64 bit arches).
A noarch package is built there, but it would be excluded from x86_64.

Relates: https://pagure.io/pungi/pull-request/1050
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
2018-09-27 15:12:03 +02:00
Chenxiong Qi
2c58471630 Fix and reword some docstrings again
During I'm reading through the code base to learn MBS, I found out some
typos and minor issues in some other docstrings, and I also found some
docstrings with extra informative description could make it easier to
understand the code.

Signed-off-by: Chenxiong Qi <cqi@redhat.com>
2018-09-26 14:12:39 +08:00
Jan Kaluza
f0cdb5030d Set modulemd 'arch' field in arch-specific modulemd files imported to CG build. 2018-09-24 09:45:43 +02:00
Jan Kaluza
410f65ac3c Get the RPM license headers from Koji and use it to fill the MMD content licenses field. 2018-09-12 07:45:46 +02:00
Jan Kaluza
0d66adbc17 Add list of built RPMs to architecture specific modulemd files in CG builds. 2018-09-12 07:45:46 +02:00
Jan Kaluza
19e9febec9 Attach architecture specific mmd files to content generator build, for now without arch-specific data. 2018-09-12 07:45:46 +02:00
Ralph Bean
cfe32afcd0 Rename LocalBuilder to SRPMBuilder and change type detection.
First, rename LocalBuilder to SRPMBuilder.  Reading the manpage for mock tells
me that the `--rebuild` option is specifically for rebuilding a given srpm.
The class was just named poorly (imo).

Second, change the type detection.  The bug I'm trying to fix is if you try to
pass a string for the `repository:` in your modulemd like
`file:///home/user/repos/libfoo/`.  The old logic here would assume that it is
an srpm since it didn't start with "git" or "http", but that's not correct.  We
have people who want to experiment with building modules with components that
are not publicly accessible over the network - which are only local.  This
change allows that.
2018-09-07 09:23:11 -04:00
Jan Kaluza
56fe201c33 Fill in the 'filterer_rpms' in backend to not access Koji from frontend. 2018-08-21 07:58:52 +02:00
Ralph Bean
84762891f7 Close threadpools after use. 2018-08-15 12:47:18 -04:00
Jan Kaluza
f0b35be067 Add BASE_MODULE_KOJI_ARCHES to override default Koji arches. 2018-08-14 13:18:56 +02:00
mprahl
d54422adeb Don't filter RPMs of reused components from a module that depends on itself
If a module has filters set and it buildrequires itself, issues occur
during component reuse. In that event, the filtered RPMs from the
previous module build will not be available in the buildroot because the NVRs
in the filters will match the RPMs from the reused component.

Co-authored-by: Jan Kaluza <jkaluza@redhat.com>
2018-08-13 11:13:40 -04:00
Jan Kaluza
6d2e4bbffa Fix filters generation 2018-08-09 15:16:13 +02:00
mprahl
f08135352a Use the NVR instead of the component name when responding to a tag message
This addresses an issue when a module contains builds that have different
names in their NVR than the component name in MBS. This happens with
SCLs for instance. MBS wouldn't be able to find the component to mark
as tagged in the database since it was searching by the wrong name, so the
build would just stall. This uses the NVR now to find the correct build
in the database.
2018-08-07 11:54:28 -04:00
mprahl
042b677a01 Raise an exception if the build is not returned from Koji when checking if the buildroot is ready 2018-08-07 10:33:14 -04:00
mprahl
a78c564073 Revert "Store the component's build ID and use that to identify the build when acting on a tag message"
This reverts commit 9bd16beeef.
2018-08-07 10:32:50 -04:00
mprahl
9bd16beeef Store the component's build ID and use that to identify the build when acting on a tag message
This resolves an issue where the component name is different than the
package being tagged due to a macro such as those used for SCLs.
2018-08-03 20:45:00 -04:00
Martin Curlej
dfe7660519 Removed PDC dependency from MBS and replaced it with MBS prod instance.
Signed-off-by: Martin Curlej <mcurlej@redhat.com>

Removed pdc from comments.

Signed-off-by: Martin Curlej <mcurlej@redhat.com>

Adding missing files.

Signed-off-by: Martin Curlej <mcurlej@redhat.com>

Updated PR according to review.

Signed-off-by: Martin Curlej <mcurlej@redhat.com>

Local modules builds now

Signed-off-by: Martin Curlej <mcurlej@redhat.com>

Removed copr from config

Signed-off-by: Martin Curlej <mcurlej@redhat.com>

Fixed bugs

Signed-off-by: Martin Curlej <mcurlej@redhat.com>
2018-07-04 10:13:18 +02:00
Matt Prahl
e45863e8f4 Merge #967 Define %{_module_context} and %{disttag} 2018-06-29 15:28:20 +00:00
Mikolaj Izdebski
0d29633da9 Make repo_include_all setting configurable in xmd
Previously MBS configured all Koji build tags with
repo_include_all=True extra option.  But for some modules it was
desired to be able to have tags with repo_include_all=False.

Fixes #957
2018-06-29 17:06:58 +02:00
Petr Šabata
323880999b Define %{_module_context} and %{disttag}
No reason to hide module context from the consumers, plus it's useful to
keep it in the DISTTAG tag (not to be confused with the %{dist} tag) for
tracking.

The %{disttag} feature will do nothing until RPM supports it.  This is
planned in 4.14.2.

See https://bugzilla.redhat.com/show_bug.cgi?id=1596192.

Signed-off-by: Petr Šabata <contyk@redhat.com>
2018-06-29 16:36:01 +02:00
mprahl
36a9026ca8 Remove references to COPR 2018-06-28 10:00:06 -04:00
mprahl
eb2643703f Fix a syntax error that caused the Koji session to not be returned when the Koji CG is running 2018-06-27 10:44:41 -04:00
Matt Prahl
6e075951b8 Merge #962 Support the modulemd buildopts.rpms.whitelist option 2018-06-27 11:42:49 +00:00
mprahl
74e4c99984 Support the modulemd buildopts.rpms.whitelist option 2018-06-27 07:05:06 -04:00
Martin Curlej
0aa9f014ce Added search for modules by binary rpm.
Signed-off-by: Martin Curlej <mcurlej@redhat.com>

Updated PR according to review.

Signed-off-by: Martin Curlej <mcurlej@redhat.com>

Searching by multiple koji tags + tests

Signed-off-by: Martin Curlej <mcurlej@redhat.com>
2018-06-26 15:52:37 +02:00
Ralph Bean
6981449853 Fix local builds.
I discovered that local builds have been broken by recent (good) changes in
dnf.  At the end of every batch, we regenerate the local repo with createrepo
and we also call modifyrepo to include the modulemd file as we progress.  This
was added in #467.

What we really want, is for the modulemd file to be present at the *end* of the
build.

Recently, dnf started respecting the modulemd file natively, such that builds
we built in batch0 would not show up in batch1.  They would be present in the
repo, but they would be marked as belonging to a module which was not enabled,
and so could not be pulled in.  Every module build would fail because
module-srpm-macros was in a disabled module (the module being built at the
time).

This change makes it so that the module metadata is only added to the repo at
the very end of the build.  I moved it into a `finalize` method on the builder
which the copr builder was using, and for symmetry's sake I moved the koji
content generator code to the same method on that builder.

There was a circular import issue to solve between the koji module builder and
the koji content generator modules that generated a larger diff, but is mostly
cosmetic and mock changes.
2018-06-25 17:05:22 -04:00
Owen W. Taylor
827546dc9a module-build-macros: Use /etc instead of %_sysconfdir
Commit 42aef7d5d2 moved the macros installed by module-build-macros
from %_rpmconfdir (which is unaffected by %_prefix) to %_sysconfdir/rpm
(which follows %_prefix). This interacts badly with the Flatpak module
macros which change %_prefix to /app - when flatpak-rpm-macros is
in the buildroot while module-build-macros is built, module-build-macros
installs its macros to /app and they aren't found when building the
rest of the packages in the module.

Hardcoding /etc rather than using %_sysconfdir fixes this.
2018-05-31 17:52:04 -04:00
mprahl
2e6589ae41 Check the libmodulemd version instead of modulemd 2018-05-31 14:32:06 -04:00
Owen W. Taylor
ddee4f840b MockModuleBuilder: add artifacts to artifacts not components
The built RPM artifacts were being added to the components list (the
RPMs to build) instead of the proper artifacts section. Also, they
need to be in NEVRA format, so use 'rpm -qf' to query the epochs from
the built artifacts.
2018-05-30 15:47:14 -04:00
mprahl
aa98eb1cc2 Don't determine the buildroot_groups when cleaning up stale module builds 2018-05-14 13:55:56 -04:00
mprahl
15a7e322a6 Fallback to the old Koji tag format for the target when the tag name is too long 2018-05-08 09:11:22 -04:00
Jan Kaluza
9236133cd2 Fix wrong rebase of #919. 2018-04-13 13:07:00 +02:00
Jan Kaluza
c1c95fc963 Allow defining list of packages which are blocked in the -build tag until they are built in a module. 2018-04-13 12:57:27 +02:00
Jan Kaluza
5d91c97386 Allow defining list of packages which are blocked in the -build tag until they are built in a module. 2018-04-12 09:45:57 +02:00
mprahl
aa990d3de3 Use six instead of future 2018-04-05 11:32:21 -04:00
mprahl
19db295795 Fix flake8 errors 2018-04-03 09:58:57 -04:00
Jan Kaluza
e5e9a24fce Allow adding bool to XMD. Fix flake8 issues. 2018-04-03 09:58:57 -04:00
mprahl
f0852d9009 Port to libmodulemd and support v2 modulemd without module stream expansion 2018-04-03 09:58:57 -04:00
Yash Nanavati
ed25afd9ec Code changes for Python 3 support 2018-03-04 03:22:38 -05:00
Yash Nanavati
1d3fd2af64 Minor changes towards Python 3 Compatability 2018-02-28 09:01:51 -05:00
Matt Prahl
fb8e9cf02c Merge #851 Set the owner on Koji CG builds 2018-01-31 00:28:18 +00:00
Matt Prahl
83978c66df Merge #849 Use external repos tied to the Koji tags on local builds 2018-01-31 00:27:12 +00:00