[libvirt] [PATCH jenkins-ci 0/2] Enable virt-viewer mingw build

Daniel P. Berrangé (2): Enable mingw build for libvirt-glib project Enable mingw build for virt-viewer project guests/vars/mappings.yml | 72 +++++++++++++++++++++++++++++++++++ guests/vars/projects/libvirt-glib.yml | 2 + guests/vars/projects/virt-viewer.yml | 24 ++++++++++++ projects/libvirt-glib.yaml | 4 ++ projects/virt-viewer.yaml | 4 ++ 5 files changed, 106 insertions(+) -- 2.14.3

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- guests/vars/mappings.yml | 6 ++++++ guests/vars/projects/libvirt-glib.yml | 2 ++ projects/libvirt-glib.yaml | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/guests/vars/mappings.yml b/guests/vars/mappings.yml index e074648..f4eb4a2 100644 --- a/guests/vars/mappings.yml +++ b/guests/vars/mappings.yml @@ -343,6 +343,9 @@ mappings: mingw32-gettext: FedoraRawhide: mingw32-gettext + mingw32-glib2: + FedoraRawhide: mingw32-glib2 + mingw32-gnutls: FedoraRawhide: mingw32-gnutls @@ -379,6 +382,9 @@ mappings: mingw64-gettext: FedoraRawhide: mingw64-gettext + mingw64-glib2: + FedoraRawhide: mingw64-glib2 + mingw64-gnutls: FedoraRawhide: mingw64-gnutls diff --git a/guests/vars/projects/libvirt-glib.yml b/guests/vars/projects/libvirt-glib.yml index 13a5128..bb21ae0 100644 --- a/guests/vars/projects/libvirt-glib.yml +++ b/guests/vars/projects/libvirt-glib.yml @@ -5,4 +5,6 @@ packages: - gtk-doc - intltool - libxml2 + - mingw32-glib2 + - mingw64-glib2 - vala diff --git a/projects/libvirt-glib.yaml b/projects/libvirt-glib.yaml index 74f7642..3873c40 100644 --- a/projects/libvirt-glib.yaml +++ b/projects/libvirt-glib.yaml @@ -26,3 +26,7 @@ - libvirt-fedora-26 - libvirt-fedora-27 - libvirt-fedora-rawhide + - autotools-mingw-job: + parent_jobs: + machines: + - libvirt-fedora-rawhide -- 2.14.3

On Thu, 2018-04-12 at 15:28 +0100, Daniel P. Berrangé wrote:
diff --git a/guests/vars/projects/libvirt-glib.yml b/guests/vars/projects/libvirt-glib.yml index 13a5128..bb21ae0 100644 --- a/guests/vars/projects/libvirt-glib.yml +++ b/guests/vars/projects/libvirt-glib.yml @@ -5,4 +5,6 @@ packages: - gtk-doc - intltool - libxml2 + - mingw32-glib2 + - mingw64-glib2 - vala
You're missing a lot of packages here, probably because they are already used for the libvirt MinGW build and you didn't reset your test machine between builds, thus masking the issue. The list of additional packages should look like: - mingw32-curl - mingw32-dbus - mingw32-dlfcn - mingw32-gcc - mingw32-gettext - mingw32-glib2 - mingw32-gnutls - mingw32-libssh2 - mingw32-libxml2 - mingw32-pkg-config - mingw32-portablexdr - mingw64-curl - mingw64-dbus - mingw64-dlfcn - mingw64-gcc - mingw64-gettext - mingw64-glib2 - mingw64-gnutls - mingw64-libssh2 - mingw64-libxml2 - mingw64-pkg-config - mingw64-portablexdr With that fixed, Reviewed-by: Andrea Bolognani <abologna@redhat.com> -- Andrea Bolognani / Red Hat / Virtualization

On Fri, Apr 13, 2018 at 02:17:45PM +0200, Andrea Bolognani wrote:
On Thu, 2018-04-12 at 15:28 +0100, Daniel P. Berrangé wrote:
diff --git a/guests/vars/projects/libvirt-glib.yml b/guests/vars/projects/libvirt-glib.yml index 13a5128..bb21ae0 100644 --- a/guests/vars/projects/libvirt-glib.yml +++ b/guests/vars/projects/libvirt-glib.yml @@ -5,4 +5,6 @@ packages: - gtk-doc - intltool - libxml2 + - mingw32-glib2 + - mingw64-glib2 - vala
You're missing a lot of packages here, probably because they are already used for the libvirt MinGW build and you didn't reset your test machine between builds, thus masking the issue.
No I didn't miss them, I only listed stuff that's unique to libvirt-glib - duplicating everything used by libvirt mingw builds, under libvirt-glib mingw builds is not required, as they're already present, and most are not even used by libvirt-glib
The list of additional packages should look like:
- mingw32-curl - mingw32-dbus - mingw32-dlfcn - mingw32-gcc - mingw32-gettext - mingw32-glib2 - mingw32-gnutls - mingw32-libssh2 - mingw32-libxml2 - mingw32-pkg-config - mingw32-portablexdr - mingw64-curl - mingw64-dbus - mingw64-dlfcn - mingw64-gcc - mingw64-gettext - mingw64-glib2 - mingw64-gnutls - mingw64-libssh2 - mingw64-libxml2 - mingw64-pkg-config - mingw64-portablexdr
With that fixed,
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
-- Andrea Bolognani / Red Hat / Virtualization
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Fri, 2018-04-13 at 13:20 +0100, Daniel P. Berrangé wrote:
On Fri, Apr 13, 2018 at 02:17:45PM +0200, Andrea Bolognani wrote:
On Thu, 2018-04-12 at 15:28 +0100, Daniel P. Berrangé wrote:
diff --git a/guests/vars/projects/libvirt-glib.yml b/guests/vars/projects/libvirt-glib.yml index 13a5128..bb21ae0 100644 --- a/guests/vars/projects/libvirt-glib.yml +++ b/guests/vars/projects/libvirt-glib.yml @@ -5,4 +5,6 @@ packages: - gtk-doc - intltool - libxml2 + - mingw32-glib2 + - mingw64-glib2 - vala
You're missing a lot of packages here, probably because they are already used for the libvirt MinGW build and you didn't reset your test machine between builds, thus masking the issue.
No I didn't miss them, I only listed stuff that's unique to libvirt-glib - duplicating everything used by libvirt mingw builds, under libvirt-glib mingw builds is not required, as they're already present, and most are not even used by libvirt-glib
The list of additional packages should look like:
- mingw32-curl - mingw32-dbus - mingw32-dlfcn - mingw32-gcc - mingw32-gettext - mingw32-glib2 - mingw32-gnutls - mingw32-libssh2 - mingw32-libxml2 - mingw32-pkg-config - mingw32-portablexdr - mingw64-curl - mingw64-dbus - mingw64-dlfcn - mingw64-gcc - mingw64-gettext - mingw64-glib2 - mingw64-gnutls - mingw64-libssh2 - mingw64-libxml2 - mingw64-pkg-config - mingw64-portablexdr
With that fixed,
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
-- Andrea Bolognani / Red Hat / Virtualization
Regards, Daniel -- Andrea Bolognani / Red Hat / Virtualization

On Fri, 2018-04-13 at 13:20 +0100, Daniel P. Berrangé wrote:
On Fri, Apr 13, 2018 at 02:17:45PM +0200, Andrea Bolognani wrote:
On Thu, 2018-04-12 at 15:28 +0100, Daniel P. Berrangé wrote:
- gtk-doc - intltool - libxml2 + - mingw32-glib2 + - mingw64-glib2 - vala
You're missing a lot of packages here, probably because they are already used for the libvirt MinGW build and you didn't reset your test machine between builds, thus masking the issue.
No I didn't miss them, I only listed stuff that's unique to libvirt-glib - duplicating everything used by libvirt mingw builds, under libvirt-glib mingw builds is not required, as they're already present, and most are not even used by libvirt-glib
Hm, I guess I see where you're coming from. One of the original ideas was that the dependencies listed here would be as comprehensive as possible, so that you would be able to skip building some parts of the stack (and installing the corresponding build dependencies) if you were only interested in higher-level projects such as virt-manager: in that case, you would just install libvirt-python from the vendor repositories and go ahead with your day. I guess we haven't been very consistent with that, though, as clearly shown by the fact that the list of requirements I offered for the MinGW build is way bigger than that of the native build! It's also unclear how useful being so strict about packages is, and how realistic it is that we will get it right all of the time :) So perhaps a reasonable compromise is indeed not to list packages again if one of the direct dependencies already needs them to build: libvirt-glib would only list packages libvirt doesn't already depend on, but there could be duplicates between libvirt and libosinfo because neither depends on the other. That would be much easier to get right. tl;dr go ahead with your version of the patch, and I might have some other cleaning up to do later :) -- Andrea Bolognani / Red Hat / Virtualization

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- guests/vars/mappings.yml | 66 ++++++++++++++++++++++++++++++++++++ guests/vars/projects/virt-viewer.yml | 24 +++++++++++++ projects/virt-viewer.yaml | 4 +++ 3 files changed, 94 insertions(+) diff --git a/guests/vars/mappings.yml b/guests/vars/mappings.yml index f4eb4a2..3d6a686 100644 --- a/guests/vars/mappings.yml +++ b/guests/vars/mappings.yml @@ -328,6 +328,9 @@ mappings: default: make FreeBSD: gmake + mingw32-adwaita-icon-theme: + FedoraRawhide: mingw32-adwaita-icon-theme + mingw32-curl: FedoraRawhide: mingw32-curl @@ -346,12 +349,33 @@ mappings: mingw32-glib2: FedoraRawhide: mingw32-glib2 + mingw32-glib-networking: + FedoraRawhide: mingw32-glib-networking + mingw32-gnutls: FedoraRawhide: mingw32-gnutls + mingw32-gstreamer1-plugins-bad-free: + FedoraRawhide: mingw32-gstreamer1-plugins-bad-free + + mingw32-gstreamer1-plugins-good: + FedoraRawhide: mingw32-gstreamer1-plugins-good + + mingw32-gtk3: + FedoraRawhide: mingw32-gtk3 + + mingw32-gtk-vnc: + FedoraRawhide: mingw32-gtk-vnc + + mingw32-libgovirt: + FedoraRawhide: mingw32-libgovirt + mingw32-libssh2: FedoraRawhide: mingw32-libssh2 + mingw32-libusbx: + FedoraRawhide: mingw32-libusbx + mingw32-libxml2: FedoraRawhide: mingw32-libxml2 @@ -367,6 +391,18 @@ mappings: mingw32-readline: FedoraRawhide: mingw32-readline + mingw32-rest: + FedoraRawhide: mingw32-rest + + mingw32-spice-gtk3: + FedoraRawhide: mingw32-spice-gtk3 + + mingw32-usbredir: + FedoraRawhide: mingw32-usbredir + + mingw64-adwaita-icon-theme: + FedoraRawhide: mingw64-adwaita-icon-theme + mingw64-curl: FedoraRawhide: mingw64-curl @@ -385,12 +421,33 @@ mappings: mingw64-glib2: FedoraRawhide: mingw64-glib2 + mingw64-glib-networking: + FedoraRawhide: mingw64-glib-networking + mingw64-gnutls: FedoraRawhide: mingw64-gnutls + mingw64-gstreamer1-plugins-bad-free: + FedoraRawhide: mingw64-gstreamer1-plugins-bad-free + + mingw64-gstreamer1-plugins-good: + FedoraRawhide: mingw64-gstreamer1-plugins-good + + mingw64-gtk3: + FedoraRawhide: mingw64-gtk3 + + mingw64-gtk-vnc: + FedoraRawhide: mingw64-gtk-vnc + + mingw64-libgovirt: + FedoraRawhide: mingw64-libgovirt + mingw64-libssh2: FedoraRawhide: mingw64-libssh2 + mingw64-libusbx: + FedoraRawhide: mingw64-libusbx + mingw64-libxml2: FedoraRawhide: mingw64-libxml2 @@ -406,6 +463,15 @@ mappings: mingw64-readline: FedoraRawhide: mingw64-readline + mingw64-rest: + FedoraRawhide: mingw64-rest + + mingw64-spice-gtk3: + FedoraRawhide: mingw64-spice-gtk3 + + mingw64-usbredir: + FedoraRawhide: mingw64-usbredir + nano: default: nano diff --git a/guests/vars/projects/virt-viewer.yml b/guests/vars/projects/virt-viewer.yml index 6f3dbf9..85d1589 100644 --- a/guests/vars/projects/virt-viewer.yml +++ b/guests/vars/projects/virt-viewer.yml @@ -6,5 +6,29 @@ packages: - intltool - libgovirt - libxml2 + - mingw32-adwaita-icon-theme + - mingw32-glib2 + - mingw32-glib-networking + - mingw32-gstreamer1-plugins-bad-free + - mingw32-gstreamer1-plugins-good + - mingw32-gtk3 + - mingw32-gtk-vnc + - mingw32-libgovirt + - mingw32-libusbx + - mingw32-rest + - mingw32-spice-gtk3 + - mingw32-usbredir + - mingw64-adwaita-icon-theme + - mingw64-glib2 + - mingw64-glib-networking + - mingw64-gstreamer1-plugins-bad-free + - mingw64-gstreamer1-plugins-good + - mingw64-gtk3 + - mingw64-gtk-vnc + - mingw64-libgovirt + - mingw64-libusbx + - mingw64-rest + - mingw64-spice-gtk3 + - mingw64-usbredir - spice-gtk3 - xmllint diff --git a/projects/virt-viewer.yaml b/projects/virt-viewer.yaml index 90cd787..2d8a6f9 100644 --- a/projects/virt-viewer.yaml +++ b/projects/virt-viewer.yaml @@ -25,3 +25,7 @@ - libvirt-fedora-26 - libvirt-fedora-27 - libvirt-fedora-rawhide + - autotools-mingw-job: + parent_jobs: + machines: + - libvirt-fedora-rawhide -- 2.14.3

On Thu, 2018-04-12 at 15:28 +0100, Daniel P. Berrangé wrote: [...]
+ mingw32-gtk-vnc: + FedoraRawhide: mingw32-gtk-vnc
This (and the corresponding mingw64 entry) will drag in the version of the library based on GTK+ 2 rather than the one based on GTK+ 3, which is not what we want. It should look like mingw32-gtk-vnc: FedoraRawhide: mingw32-gtk-vnc2 Because of the missing dependencies mentioned below, you also need mingw32-hicolor-icon-theme: FedoraRawhide: mingw32-hicolor-icon-theme mingw32-spice-glib: FedoraRawhide: mingw32-spice-glib plus of course the mingw64 equivalents. [...]
diff --git a/guests/vars/projects/virt-viewer.yml b/guests/vars/projects/virt-viewer.yml index 6f3dbf9..85d1589 100644 --- a/guests/vars/projects/virt-viewer.yml +++ b/guests/vars/projects/virt-viewer.yml @@ -6,5 +6,29 @@ packages: - intltool - libgovirt - libxml2 + - mingw32-adwaita-icon-theme + - mingw32-glib2 + - mingw32-glib-networking + - mingw32-gstreamer1-plugins-bad-free + - mingw32-gstreamer1-plugins-good + - mingw32-gtk3 + - mingw32-gtk-vnc + - mingw32-libgovirt + - mingw32-libusbx + - mingw32-rest + - mingw32-spice-gtk3 + - mingw32-usbredir + - mingw64-adwaita-icon-theme + - mingw64-glib2 + - mingw64-glib-networking + - mingw64-gstreamer1-plugins-bad-free + - mingw64-gstreamer1-plugins-good + - mingw64-gtk3 + - mingw64-gtk-vnc + - mingw64-libgovirt + - mingw64-libusbx + - mingw64-rest + - mingw64-spice-gtk3 + - mingw64-usbredir - spice-gtk3 - xmllint
Same as the previous patch, you need to include also the packages MinGW builds for libvirt and libvirt-glib already depend on. Additionally, a couple more (optional?) dependencies can be discovered thanks to the mingw-virt-viewer.spec.in file included in the repository. The full list should look like: - mingw32-adwaita-icon-theme - mingw32-glib2 - mingw32-curl - mingw32-dbus - mingw32-dlfcn - mingw32-gcc - mingw32-gettext - mingw32-glib-networking - mingw32-glib2 - mingw32-gstreamer1-plugins-bad-free - mingw32-gstreamer1-plugins-good - mingw32-gtk3 - mingw32-gtk-vnc - mingw32-gtk3 - mingw32-hicolor-icon-theme - mingw32-libgovirt - mingw32-libssh2 - mingw32-libusbx - mingw32-libxml2 - mingw32-pkg-config - mingw32-portablexdr - mingw32-readline - mingw32-rest - mingw32-spice-glib - mingw32-spice-gtk3 - mingw32-usbredir - mingw64-adwaita-icon-theme - mingw64-glib2 - mingw64-curl - mingw64-dbus - mingw64-dlfcn - mingw64-gcc - mingw64-gettext - mingw64-glib-networking - mingw64-glib2 - mingw64-gstreamer1-plugins-bad-free - mingw64-gstreamer1-plugins-good - mingw64-gtk3 - mingw64-gtk-vnc - mingw64-gtk3 - mingw64-hicolor-icon-theme - mingw64-libgovirt - mingw64-libssh2 - mingw64-libusbx - mingw64-libxml2 - mingw64-pkg-config - mingw64-portablexdr - mingw64-readline - mingw64-rest - mingw64-spice-glib - mingw64-spice-gtk3 - mingw64-usbredir The icotool command also becomes mandatory rather than optional when building with MinGW, but I have already posted a separate patch that takes care of the issue[1] so you should not concern yourself with that here. Provided you've taken care of all of the above, Reviewed-by: Andrea Bolognani <abologna@redhat.com> [1] https://www.redhat.com/archives/libvir-list/2018-April/msg01164.html -- Andrea Bolognani / Red Hat / Virtualization

On Fri, Apr 13, 2018 at 02:36:57PM +0200, Andrea Bolognani wrote:
On Thu, 2018-04-12 at 15:28 +0100, Daniel P. Berrangé wrote: [...]
+ mingw32-gtk-vnc: + FedoraRawhide: mingw32-gtk-vnc
This (and the corresponding mingw64 entry) will drag in the version of the library based on GTK+ 2 rather than the one based on GTK+ 3, which is not what we want. It should look like
mingw32-gtk-vnc: FedoraRawhide: mingw32-gtk-vnc2
Because of the missing dependencies mentioned below, you also need
mingw32-hicolor-icon-theme: FedoraRawhide: mingw32-hicolor-icon-theme
There's no such package AFAIK
mingw32-spice-glib: FedoraRawhide: mingw32-spice-glib
That's not required - it is a dependency of spice-gtk3
plus of course the mingw64 equivalents.
[...]
diff --git a/guests/vars/projects/virt-viewer.yml b/guests/vars/projects/virt-viewer.yml index 6f3dbf9..85d1589 100644 --- a/guests/vars/projects/virt-viewer.yml +++ b/guests/vars/projects/virt-viewer.yml @@ -6,5 +6,29 @@ packages: - intltool - libgovirt - libxml2 + - mingw32-adwaita-icon-theme + - mingw32-glib2 + - mingw32-glib-networking + - mingw32-gstreamer1-plugins-bad-free + - mingw32-gstreamer1-plugins-good + - mingw32-gtk3 + - mingw32-gtk-vnc + - mingw32-libgovirt + - mingw32-libusbx + - mingw32-rest + - mingw32-spice-gtk3 + - mingw32-usbredir + - mingw64-adwaita-icon-theme + - mingw64-glib2 + - mingw64-glib-networking + - mingw64-gstreamer1-plugins-bad-free + - mingw64-gstreamer1-plugins-good + - mingw64-gtk3 + - mingw64-gtk-vnc + - mingw64-libgovirt + - mingw64-libusbx + - mingw64-rest + - mingw64-spice-gtk3 + - mingw64-usbredir - spice-gtk3 - xmllint
Same as the previous patch, you need to include also the packages MinGW builds for libvirt and libvirt-glib already depend on.
Why would we want to duplicate that ? This job depends on tje libvirt job, so that will have already pulled in all those RPMs. Listing them again just creates the opportunity for the many duplicated listings to get out of date.
Additionally, a couple more (optional?) dependencies can be discovered thanks to the mingw-virt-viewer.spec.in file included in the repository.
The full list should look like:
- mingw32-adwaita-icon-theme - mingw32-glib2 - mingw32-curl - mingw32-dbus - mingw32-dlfcn - mingw32-gcc - mingw32-gettext - mingw32-glib-networking - mingw32-glib2 - mingw32-gstreamer1-plugins-bad-free - mingw32-gstreamer1-plugins-good - mingw32-gtk3 - mingw32-gtk-vnc - mingw32-gtk3 - mingw32-hicolor-icon-theme - mingw32-libgovirt - mingw32-libssh2 - mingw32-libusbx - mingw32-libxml2 - mingw32-pkg-config - mingw32-portablexdr - mingw32-readline - mingw32-rest - mingw32-spice-glib - mingw32-spice-gtk3 - mingw32-usbredir - mingw64-adwaita-icon-theme - mingw64-glib2 - mingw64-curl - mingw64-dbus - mingw64-dlfcn - mingw64-gcc - mingw64-gettext - mingw64-glib-networking - mingw64-glib2 - mingw64-gstreamer1-plugins-bad-free - mingw64-gstreamer1-plugins-good - mingw64-gtk3 - mingw64-gtk-vnc - mingw64-gtk3 - mingw64-hicolor-icon-theme - mingw64-libgovirt - mingw64-libssh2 - mingw64-libusbx - mingw64-libxml2 - mingw64-pkg-config - mingw64-portablexdr - mingw64-readline - mingw64-rest - mingw64-spice-glib - mingw64-spice-gtk3 - mingw64-usbredir
The icotool command also becomes mandatory rather than optional when building with MinGW, but I have already posted a separate patch that takes care of the issue[1] so you should not concern yourself with that here.
Provided you've taken care of all of the above,
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
[1] https://www.redhat.com/archives/libvir-list/2018-April/msg01164.html -- Andrea Bolognani / Red Hat / Virtualization
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Fri, 2018-04-13 at 13:44 +0100, Daniel P. Berrangé wrote:
Because of the missing dependencies mentioned below, you also need
mingw32-hicolor-icon-theme: FedoraRawhide: mingw32-hicolor-icon-theme
There's no such package AFAIK
There sure is: $ dnf info mingw32-hicolor-icon-theme Available Packages Name : mingw32-hicolor-icon-theme Version : 0.16 Release : 1.fc28 Arch : noarch Size : 45 k Source : mingw-hicolor-icon-theme-0.16-1.fc28.src.rpm Repo : rawhide Summary : MinGW hicolor icon theme for MingGW URL : http://icon-theme.freedesktop.org/releases/ License : GPLv2+ Description : Contains the basic directories and files needed for icon theme support. : This is the MinGW version of this package. It's also listed as BuildRequires in mingw-virt-viewer.spec.in... No, wait, actually its native variant is, but the same is true for the Adwaita icon theme. Weird. I don't see how we would need one of them to be native and the other to be MinGW, they should match.
mingw32-spice-glib: FedoraRawhide: mingw32-spice-glib
That's not required - it is a dependency of spice-gtk3
But virt-viewer includes spice-glib headers directly, so it's good practice not to rely on the transitive dependency and have a direct one instead.
Same as the previous patch, you need to include also the packages MinGW builds for libvirt and libvirt-glib already depend on.
Why would we want to duplicate that ? This job depends on tje libvirt job, so that will have already pulled in all those RPMs. Listing them again just creates the opportunity for the many duplicated listings to get out of date.
Please keep in mind the Ansible part is by design not tightly tied to the Jenkins part, and must be usable entirely on its own for development and debugging purposes. That said, I've already agreed in the other mail that we don't actually need to duplicate dependencies in this kind of scenario, so disregard any comments to that effect. -- Andrea Bolognani / Red Hat / Virtualization

On Fri, Apr 13, 2018 at 03:05:10PM +0200, Andrea Bolognani wrote:
On Fri, 2018-04-13 at 13:44 +0100, Daniel P. Berrangé wrote:
Because of the missing dependencies mentioned below, you also need
mingw32-hicolor-icon-theme: FedoraRawhide: mingw32-hicolor-icon-theme
There's no such package AFAIK
There sure is:
$ dnf info mingw32-hicolor-icon-theme Available Packages Name : mingw32-hicolor-icon-theme Version : 0.16 Release : 1.fc28 Arch : noarch Size : 45 k Source : mingw-hicolor-icon-theme-0.16-1.fc28.src.rpm Repo : rawhide Summary : MinGW hicolor icon theme for MingGW URL : http://icon-theme.freedesktop.org/releases/ License : GPLv2+ Description : Contains the basic directories and files needed for icon theme support. : This is the MinGW version of this package.
It's also listed as BuildRequires in mingw-virt-viewer.spec.in...
No, wait, actually its native variant is, but the same is true for the Adwaita icon theme. Weird. I don't see how we would need one of them to be native and the other to be MinGW, they should match.
I think that highcolor line is obsolete cruft leftover when when we added dep on mingw32 adwaita theme.
mingw32-spice-glib: FedoraRawhide: mingw32-spice-glib
That's not required - it is a dependency of spice-gtk3
But virt-viewer includes spice-glib headers directly, so it's good practice not to rely on the transitive dependency and have a direct one instead.
Same as the previous patch, you need to include also the packages MinGW builds for libvirt and libvirt-glib already depend on.
Why would we want to duplicate that ? This job depends on tje libvirt job, so that will have already pulled in all those RPMs. Listing them again just creates the opportunity for the many duplicated listings to get out of date.
Please keep in mind the Ansible part is by design not tightly tied to the Jenkins part, and must be usable entirely on its own for development and debugging purposes.
If we really need that, then it would be better if we expressed dependancies between the project vars files explicitly, rather than duplicating information many times over Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Fri, 2018-04-13 at 14:25 +0100, Daniel P. Berrangé wrote:
On Fri, Apr 13, 2018 at 03:05:10PM +0200, Andrea Bolognani wrote:
No, wait, actually its native variant is, but the same is true for the Adwaita icon theme. Weird. I don't see how we would need one of them to be native and the other to be MinGW, they should match.
I think that highcolor line is obsolete cruft leftover when when we added dep on mingw32 adwaita theme.
I just tried and it looks like neither mingw*-adwaita-* nor mingw*-hicolor-* seems to be required to build virt-viewer, actually. I think we can safely avoid listing them altogether.
Please keep in mind the Ansible part is by design not tightly tied to the Jenkins part, and must be usable entirely on its own for development and debugging purposes.
If we really need that, then it would be better if we expressed dependancies between the project vars files explicitly, rather than duplicating information many times over
Yeah, projects depending on each other would be neat. Until that's in place, implicit dependencies will do. -- Andrea Bolognani / Red Hat / Virtualization

On Fri, Apr 13, 2018 at 03:40:49PM +0200, Andrea Bolognani wrote:
On Fri, 2018-04-13 at 14:25 +0100, Daniel P. Berrangé wrote:
On Fri, Apr 13, 2018 at 03:05:10PM +0200, Andrea Bolognani wrote:
No, wait, actually its native variant is, but the same is true for the Adwaita icon theme. Weird. I don't see how we would need one of them to be native and the other to be MinGW, they should match.
I think that highcolor line is obsolete cruft leftover when when we added dep on mingw32 adwaita theme.
I just tried and it looks like neither mingw*-adwaita-* nor mingw*-hicolor-* seems to be required to build virt-viewer, actually. I think we can safely avoid listing them altogether.
That'll be because the icon theme is only needed when we build the MSI installer, and that's not part of the default "make" target we're running here. That is something I ought to fix :-) Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Thu, 2018-04-12 at 15:28 +0100, Daniel P. Berrangé wrote:
diff --git a/guests/vars/projects/virt-viewer.yml b/guests/vars/projects/virt-viewer.yml index 6f3dbf9..85d1589 100644 --- a/guests/vars/projects/virt-viewer.yml +++ b/guests/vars/projects/virt-viewer.yml @@ -6,5 +6,29 @@ packages: - intltool - libgovirt - libxml2 + - mingw32-adwaita-icon-theme + - mingw32-glib2
Forgot to mention: mingw*-glib2 is not necessary here based on our discussion, as it's already required to build libvirt-glib :) -- Andrea Bolognani / Red Hat / Virtualization

On Fri, Apr 13, 2018 at 03:24:09PM +0200, Andrea Bolognani wrote:
On Thu, 2018-04-12 at 15:28 +0100, Daniel P. Berrangé wrote:
diff --git a/guests/vars/projects/virt-viewer.yml b/guests/vars/projects/virt-viewer.yml index 6f3dbf9..85d1589 100644 --- a/guests/vars/projects/virt-viewer.yml +++ b/guests/vars/projects/virt-viewer.yml @@ -6,5 +6,29 @@ packages: - intltool - libgovirt - libxml2 + - mingw32-adwaita-icon-theme + - mingw32-glib2
Forgot to mention: mingw*-glib2 is not necessary here based on our discussion, as it's already required to build libvirt-glib :)
This falls into similar case as mingw-spice-glib you point out though. eg If it is directly used by virt-viewer, it is reasonable to include it. We just want drop the things which are indirect dependancies. eg mingw-gnutls as gnutls is used only by libvirt, not directly by virt-viewer/libvirt-glib so doesn't need listing separately. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Fri, 2018-04-13 at 14:28 +0100, Daniel P. Berrangé wrote:
On Fri, Apr 13, 2018 at 03:24:09PM +0200, Andrea Bolognani wrote:
+ - mingw32-glib2
Forgot to mention: mingw*-glib2 is not necessary here based on our discussion, as it's already required to build libvirt-glib :)
This falls into similar case as mingw-spice-glib you point out though. eg If it is directly used by virt-viewer, it is reasonable to include it. We just want drop the things which are indirect dependancies. eg mingw-gnutls as gnutls is used only by libvirt, not directly by virt-viewer/libvirt-glib so doesn't need listing separately.
Right. Fair enough then :) -- Andrea Bolognani / Red Hat / Virtualization

On Thu, 2018-04-12 at 15:28 +0100, Daniel P. Berrangé wrote:
Daniel P. Berrangé (2): Enable mingw build for libvirt-glib project Enable mingw build for virt-viewer project
guests/vars/mappings.yml | 72 +++++++++++++++++++++++++++++++++++ guests/vars/projects/libvirt-glib.yml | 2 + guests/vars/projects/virt-viewer.yml | 24 ++++++++++++ projects/libvirt-glib.yaml | 4 ++ projects/virt-viewer.yaml | 4 ++ 5 files changed, 106 insertions(+)
So, yesterday I posted a couple of series[1][2] that introduce the concept of "project variants" through the project+variant notation, which is meant to be used for cases where you can build a project in a way that is different enough from the usual native build case that an almost entirely different toolchain might be required. MinGW builds are obviously a prime example of this. You can still push your patches after you've addressed a few issues that I'm going to point out separately: I have follow-up patches to convert them to the new notation ready. I just wanted to give you a heads-up :) [1] https://www.redhat.com/archives/libvir-list/2018-April/msg01058.html [2] https://www.redhat.com/archives/libvir-list/2018-April/msg01051.html -- Andrea Bolognani / Red Hat / Virtualization
participants (2)
-
Andrea Bolognani
-
Daniel P. Berrangé