From 0afac135eae123c7101cbb7631dc721ec046b82a Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 18 Mar 2022 16:27:22 -0700 Subject: [PATCH] Backport MR #26 to fix UI files in GTK4 (#2060868) --- ...-compile-both-GTK3-and-GTK4-UI-files.patch | 2744 +++++++++++++++++ ...rate-UI-sources-for-GTK3-and-GTK4-li.patch | 56 + libnma.spec | 16 +- 3 files changed, 2814 insertions(+), 2 deletions(-) create mode 100644 0001-Ship-and-compile-both-GTK3-and-GTK4-UI-files.patch create mode 100644 0001-meson-build-separate-UI-sources-for-GTK3-and-GTK4-li.patch diff --git a/0001-Ship-and-compile-both-GTK3-and-GTK4-UI-files.patch b/0001-Ship-and-compile-both-GTK3-and-GTK4-UI-files.patch new file mode 100644 index 0000000..73696d1 --- /dev/null +++ b/0001-Ship-and-compile-both-GTK3-and-GTK4-UI-files.patch @@ -0,0 +1,2744 @@ +From fadd3096a2f621f2aafe16543abc64179b45dcb4 Mon Sep 17 00:00:00 2001 +From: Brandon Nielsen +Date: Thu, 10 Mar 2022 20:00:23 -0600 +Subject: [PATCH] Ship and compile both GTK3 and GTK4 UI files + +For layouts that used to use GtkButtonBox with packing[0], the packing was +removed because a matching layout was not immediately apparent. The UIs +should all be checked for correctness. + +This is an attempt to start fixing #10, and gnome-control-center issue +1688[1] (and matching Fedora downstream issues[2][3]). + +[0] - https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkcontainer-removal +[1] - https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1688 +[2] - https://bugzilla.redhat.com/show_bug.cgi?id=2062507 +[3] - https://bugzilla.redhat.com/show_bug.cgi?id=2060868 +--- + Makefile.am | 75 ++-- + po/POTFILES.in | 51 ++- + src/meson.build | 20 +- + src/nma-ws/meson.build | 14 - + src/{ => ui/gtk3}/nma-bar-code-widget.ui | 0 + src/{ => ui/gtk3}/nma-mobile-wizard.ui | 0 + .../gtk3}/nma-pkcs11-cert-chooser-dialog.ui | 0 + .../gtk3}/nma-pkcs11-token-login-dialog.ui | 0 + src/{ => ui/gtk3}/nma-vpn-password-dialog.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-eap-fast.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-eap-leap.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-eap-peap.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-eap-simple.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-eap-tls.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-eap-ttls.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-ws-802-1x.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-ws-leap.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-ws-sae.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-ws-wep-key.ui | 0 + src/{ => ui/gtk3}/nma-ws/nma-ws-wpa-psk.ui | 0 + src/{ => ui/gtk3}/nma.gresource.xml | 0 + src/{ => ui/gtk3}/wifi.ui | 0 + src/ui/gtk4/nma-bar-code-widget.ui | 30 ++ + src/ui/gtk4/nma-mobile-wizard.ui | 417 ++++++++++++++++++ + src/ui/gtk4/nma-pkcs11-cert-chooser-dialog.ui | 105 +++++ + src/ui/gtk4/nma-pkcs11-token-login-dialog.ui | 69 +++ + src/ui/gtk4/nma-vpn-password-dialog.ui | 186 ++++++++ + src/ui/gtk4/nma-ws/nma-eap-fast.ui | 196 ++++++++ + src/ui/gtk4/nma-ws/nma-eap-leap.ui | 70 +++ + src/ui/gtk4/nma-ws/nma-eap-peap.ui | 171 +++++++ + src/ui/gtk4/nma-ws/nma-eap-simple.ui | 117 +++++ + src/ui/gtk4/nma-ws/nma-eap-tls.ui | 77 ++++ + src/ui/gtk4/nma-ws/nma-eap-ttls.ui | 129 ++++++ + src/ui/gtk4/nma-ws/nma-ws-802-1x.ui | 62 +++ + src/ui/gtk4/nma-ws/nma-ws-leap.ui | 74 ++++ + src/ui/gtk4/nma-ws/nma-ws-sae.ui | 71 +++ + src/ui/gtk4/nma-ws/nma-ws-wep-key.ui | 142 ++++++ + src/ui/gtk4/nma-ws/nma-ws-wpa-psk.ui | 70 +++ + src/ui/gtk4/nma.gresource.xml | 22 + + src/ui/gtk4/wifi.ui | 187 ++++++++ + src/ui/meson.build | 11 + + 41 files changed, 2288 insertions(+), 78 deletions(-) + rename src/{ => ui/gtk3}/nma-bar-code-widget.ui (100%) + rename src/{ => ui/gtk3}/nma-mobile-wizard.ui (100%) + rename src/{ => ui/gtk3}/nma-pkcs11-cert-chooser-dialog.ui (100%) + rename src/{ => ui/gtk3}/nma-pkcs11-token-login-dialog.ui (100%) + rename src/{ => ui/gtk3}/nma-vpn-password-dialog.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-eap-fast.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-eap-leap.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-eap-peap.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-eap-simple.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-eap-tls.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-eap-ttls.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-ws-802-1x.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-ws-leap.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-ws-sae.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-ws-wep-key.ui (100%) + rename src/{ => ui/gtk3}/nma-ws/nma-ws-wpa-psk.ui (100%) + rename src/{ => ui/gtk3}/nma.gresource.xml (100%) + rename src/{ => ui/gtk3}/wifi.ui (100%) + create mode 100644 src/ui/gtk4/nma-bar-code-widget.ui + create mode 100644 src/ui/gtk4/nma-mobile-wizard.ui + create mode 100644 src/ui/gtk4/nma-pkcs11-cert-chooser-dialog.ui + create mode 100644 src/ui/gtk4/nma-pkcs11-token-login-dialog.ui + create mode 100644 src/ui/gtk4/nma-vpn-password-dialog.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-eap-fast.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-eap-leap.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-eap-peap.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-eap-simple.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-eap-tls.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-eap-ttls.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-ws-802-1x.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-ws-leap.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-ws-sae.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-ws-wep-key.ui + create mode 100644 src/ui/gtk4/nma-ws/nma-ws-wpa-psk.ui + create mode 100644 src/ui/gtk4/nma.gresource.xml + create mode 100644 src/ui/gtk4/wifi.ui + create mode 100644 src/ui/meson.build + +diff --git a/Makefile.am b/Makefile.am +index b60baf41..fa371080 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -128,20 +128,17 @@ EXTRA_DIST += src/utils/meson.build + + ############################################################################### + +-src/nma-resources.h: src/nma.gresource.xml +- $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir)/src --generate-header --internal ++src/nma-resources.h: src/ui/gtk3/nma.gresource.xml ++ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir)/src/ui/gtk3 --generate-header --internal + +-src/nma-resources.c: src/nma.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/src --generate-dependencies $(srcdir)/src/nma.gresource.xml) +- $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir)/src --generate-source --internal ++src/nma-resources.c: src/ui/gtk3/nma.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/src/ui/gtk3 --generate-dependencies $(srcdir)/src/ui/gtk3/nma.gresource.xml) ++ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir)/src/ui/gtk3 --generate-source --internal + +-src/libnma-gtk4/nma-resources.c: src/nma.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies $(srcdir)/src/nma.gresource.xml |sed "s,^,$(builddir)/src/libnma-gtk4/,") +- @mkdir -p $(builddir)/src/libnma-gtk4 $(builddir)/src/libnma-gtk4/nma-ws +- $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(builddir)/src/libnma-gtk4 --generate-source --internal ++src/libnma-gtk4/nma-resources.h: src/ui/gtk4/nma.gresource.xml ++ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir)/src/ui/gtk4 --generate-header --internal + +- +-src/libnma-gtk4/%.ui: src/%.ui +- @mkdir -p $(builddir)/src/libnma-gtk4 $(builddir)/src/libnma-gtk4/nma-ws +- gtk4-builder-tool simplify --3to4 $< |grep -v can.default >$@ ++src/libnma-gtk4/nma-resources.c: src/ui/gtk4/nma.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/src/ui/gtk4 --generate-dependencies $(srcdir)/src/ui/gtk4/nma.gresource.xml) ++ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir)/src/ui/gtk4 --generate-source --internal + + CLEANFILES += \ + $(libnma_h_priv_gen) \ +@@ -695,28 +692,46 @@ EXTRA_DIST += \ + src/libnma.ver \ + src/libnma-gtk4.deps \ + src/libnma.deps \ +- src/wifi.ui \ +- src/nma-mobile-wizard.ui \ +- src/nma-bar-code-widget.ui \ +- src/nma-pkcs11-token-login-dialog.ui \ +- src/nma-pkcs11-cert-chooser-dialog.ui \ +- src/nma-vpn-password-dialog.ui \ +- src/nma.gresource.xml \ ++ src/ui/meson.build \ ++ src/ui/gtk3/wifi.ui \ ++ src/ui/gtk3/nma-mobile-wizard.ui \ ++ src/ui/gtk3/nma-bar-code-widget.ui \ ++ src/ui/gtk3/nma-pkcs11-token-login-dialog.ui \ ++ src/ui/gtk3/nma-pkcs11-cert-chooser-dialog.ui \ ++ src/ui/gtk3/nma-vpn-password-dialog.ui \ ++ src/ui/gtk3/nma.gresource.xml \ ++ src/ui/gtk3/nma-ws/nma-eap-fast.ui \ ++ src/ui/gtk3/nma-ws/nma-eap-leap.ui \ ++ src/ui/gtk3/nma-ws/nma-eap-peap.ui \ ++ src/ui/gtk3/nma-ws/nma-eap-simple.ui \ ++ src/ui/gtk3/nma-ws/nma-eap-tls.ui \ ++ src/ui/gtk3/nma-ws/nma-eap-ttls.ui \ ++ src/ui/gtk3/nma-ws/nma-ws-802-1x.ui \ ++ src/ui/gtk3/nma-ws/nma-ws-leap.ui \ ++ src/ui/gtk3/nma-ws/nma-ws-sae.ui \ ++ src/ui/gtk3/nma-ws/nma-ws-wep-key.ui \ ++ src/ui/gtk3/nma-ws/nma-ws-wpa-psk.ui \ ++ src/ui/gtk4/wifi.ui \ ++ src/ui/gtk4/nma-mobile-wizard.ui \ ++ src/ui/gtk4/nma-bar-code-widget.ui \ ++ src/ui/gtk4/nma-pkcs11-token-login-dialog.ui \ ++ src/ui/gtk4/nma-pkcs11-cert-chooser-dialog.ui \ ++ src/ui/gtk4/nma-vpn-password-dialog.ui \ ++ src/ui/gtk4/nma.gresource.xml \ ++ src/ui/gtk4/nma-ws/nma-eap-fast.ui \ ++ src/ui/gtk4/nma-ws/nma-eap-leap.ui \ ++ src/ui/gtk4/nma-ws/nma-eap-peap.ui \ ++ src/ui/gtk4/nma-ws/nma-eap-simple.ui \ ++ src/ui/gtk4/nma-ws/nma-eap-tls.ui \ ++ src/ui/gtk4/nma-ws/nma-eap-ttls.ui \ ++ src/ui/gtk4/nma-ws/nma-ws-802-1x.ui \ ++ src/ui/gtk4/nma-ws/nma-ws-leap.ui \ ++ src/ui/gtk4/nma-ws/nma-ws-sae.ui \ ++ src/ui/gtk4/nma-ws/nma-ws-wep-key.ui \ ++ src/ui/gtk4/nma-ws/nma-ws-wpa-psk.ui \ + src/meson.build \ + src/tests/meson.build \ +- \ + src/nma-ws/meson.build \ +- src/nma-ws/nma-eap-fast.ui \ +- src/nma-ws/nma-eap-leap.ui \ +- src/nma-ws/nma-eap-peap.ui \ +- src/nma-ws/nma-eap-simple.ui \ +- src/nma-ws/nma-eap-tls.ui \ +- src/nma-ws/nma-eap-ttls.ui \ +- src/nma-ws/nma-ws-802-1x.ui \ +- src/nma-ws/nma-ws-leap.ui \ +- src/nma-ws/nma-ws-sae.ui \ +- src/nma-ws/nma-ws-wep-key.ui \ +- src/nma-ws/nma-ws-wpa-psk.ui \ + $(NULL) + + ############################################################################### +diff --git a/po/POTFILES.in b/po/POTFILES.in +index 8a3b2136..87c8b2bf 100644 +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -3,45 +3,62 @@ + org.gnome.nm-applet.gschema.xml.in + shared/nm-utils/nm-shared-utils.c + src/nma-bar-code-widget.c +-src/nma-bar-code-widget.ui + src/nma-cert-chooser-button.c + src/nma-mobile-providers.c + src/nma-mobile-wizard.c +-src/nma-mobile-wizard.ui + src/nma-pkcs11-cert-chooser-dialog.c +-src/nma-pkcs11-cert-chooser-dialog.ui + src/nma-pkcs11-token-login-dialog.c +-src/nma-pkcs11-token-login-dialog.ui + src/nma-ui-utils.c + src/nma-vpn-password-dialog.c +-src/nma-vpn-password-dialog.ui + src/nma-wifi-dialog.c + src/nma-ws/nma-eap-fast.c +-src/nma-ws/nma-eap-fast.ui + src/nma-ws/nma-eap-leap.c +-src/nma-ws/nma-eap-leap.ui + src/nma-ws/nma-eap-peap.c +-src/nma-ws/nma-eap-peap.ui + src/nma-ws/nma-eap-simple.c +-src/nma-ws/nma-eap-simple.ui + src/nma-ws/nma-eap-tls.c +-src/nma-ws/nma-eap-tls.ui + src/nma-ws/nma-eap-ttls.c +-src/nma-ws/nma-eap-ttls.ui + src/nma-ws/nma-eap.c + src/nma-ws/nma-ws-802-1x.c +-src/nma-ws/nma-ws-802-1x.ui + src/nma-ws/nma-ws-dynamic-wep.c + src/nma-ws/nma-ws-helpers.c + src/nma-ws/nma-ws-leap.c +-src/nma-ws/nma-ws-leap.ui + src/nma-ws/nma-ws-sae.c +-src/nma-ws/nma-ws-sae.ui + src/nma-ws/nma-ws-wep-key.c +-src/nma-ws/nma-ws-wep-key.ui + src/nma-ws/nma-ws-wpa-eap.c + src/nma-ws/nma-ws-wpa-psk.c +-src/nma-ws/nma-ws-wpa-psk.ui + src/nma-ws/nma-ws.c ++src/ui/gtk3/nma-bar-code-widget.ui ++src/ui/gtk3/nma-mobile-wizard.ui ++src/ui/gtk3/nma-pkcs11-cert-chooser-dialog.ui ++src/ui/gtk3/nma-pkcs11-token-login-dialog.ui ++src/ui/gtk3/nma-vpn-password-dialog.ui ++src/ui/gtk3/nma-ws/nma-eap-fast.ui ++src/ui/gtk3/nma-ws/nma-eap-leap.ui ++src/ui/gtk3/nma-ws/nma-eap-peap.ui ++src/ui/gtk3/nma-ws/nma-eap-simple.ui ++src/ui/gtk3/nma-ws/nma-eap-tls.ui ++src/ui/gtk3/nma-ws/nma-eap-ttls.ui ++src/ui/gtk3/nma-ws/nma-ws-802-1x.ui ++src/ui/gtk3/nma-ws/nma-ws-leap.ui ++src/ui/gtk3/nma-ws/nma-ws-sae.ui ++src/ui/gtk3/nma-ws/nma-ws-wep-key.ui ++src/ui/gtk3/nma-ws/nma-ws-wpa-psk.ui ++src/ui/gtk3/wifi.ui ++src/ui/gtk4/nma-bar-code-widget.ui ++src/ui/gtk4/nma-mobile-wizard.ui ++src/ui/gtk4/nma-pkcs11-cert-chooser-dialog.ui ++src/ui/gtk4/nma-pkcs11-token-login-dialog.ui ++src/ui/gtk4/nma-vpn-password-dialog.ui ++src/ui/gtk4/nma-ws/nma-eap-fast.ui ++src/ui/gtk4/nma-ws/nma-eap-leap.ui ++src/ui/gtk4/nma-ws/nma-eap-peap.ui ++src/ui/gtk4/nma-ws/nma-eap-simple.ui ++src/ui/gtk4/nma-ws/nma-eap-tls.ui ++src/ui/gtk4/nma-ws/nma-eap-ttls.ui ++src/ui/gtk4/nma-ws/nma-ws-802-1x.ui ++src/ui/gtk4/nma-ws/nma-ws-leap.ui ++src/ui/gtk4/nma-ws/nma-ws-sae.ui ++src/ui/gtk4/nma-ws/nma-ws-wep-key.ui ++src/ui/gtk4/nma-ws/nma-ws-wpa-psk.ui ++src/ui/gtk4/wifi.ui + src/utils/utils.c +-src/wifi.ui +diff --git a/src/meson.build b/src/meson.build +index 2064ddb0..6e1a15e4 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -16,21 +16,7 @@ version_header = configure_file( + + subdir('utils') + subdir('nma-ws') +- +-resource_data = nma_ws_resource_data + files( +- 'nma-bar-code-widget.ui', +- 'nma-mobile-wizard.ui', +- 'nma-pkcs11-cert-chooser-dialog.ui', +- 'nma-pkcs11-token-login-dialog.ui', +- 'nma-vpn-password-dialog.ui', +- 'wifi.ui' +-) +- +-built_sources = gnome.compile_resources( +- 'nma-resources', +- 'nma.gresource.xml', +- dependencies: resource_data +-) ++subdir('ui') + + gir_headers = nma_ws_headers + files( + 'nma-bar-code-widget.h', +@@ -87,7 +73,7 @@ cflags = [ + symbol_map = join_paths(meson.current_source_dir(), 'libnma.ver') + + nma_deps = [ deps, gtk_dep ] +-nma_sources = [ gir_sources, built_sources ] ++nma_sources = [ gir_sources, ui_sources ] + if enable_gcr + nma_sources += files( + 'nma-pkcs11-cert-chooser-dialog.c', +@@ -117,7 +103,7 @@ libnma_dep = declare_dependency( + if enable_libnma_gtk4 + libnma_gtk4 = shared_library( + 'nma-gtk4', +- sources: gir_sources + built_sources, ++ sources: gir_sources + ui_sources, + version: libversion, + include_directories: incs, + dependencies: [ deps, gtk4_dep ], +diff --git a/src/nma-ws/meson.build b/src/nma-ws/meson.build +index 7b94d4be..01db916e 100644 +--- a/src/nma-ws/meson.build ++++ b/src/nma-ws/meson.build +@@ -1,19 +1,5 @@ + nma_ws_inc = include_directories('.') + +-nma_ws_resource_data = files( +- 'nma-eap-fast.ui', +- 'nma-eap-leap.ui', +- 'nma-eap-peap.ui', +- 'nma-eap-simple.ui', +- 'nma-eap-tls.ui', +- 'nma-eap-ttls.ui', +- 'nma-ws-802-1x.ui', +- 'nma-ws-leap.ui', +- 'nma-ws-sae.ui', +- 'nma-ws-wep-key.ui', +- 'nma-ws-wpa-psk.ui', +-) +- + nma_ws_headers = files( + 'nma-ws-802-1x.h', + 'nma-ws-dynamic-wep.h', +diff --git a/src/nma-bar-code-widget.ui b/src/ui/gtk3/nma-bar-code-widget.ui +similarity index 100% +rename from src/nma-bar-code-widget.ui +rename to src/ui/gtk3/nma-bar-code-widget.ui +diff --git a/src/nma-mobile-wizard.ui b/src/ui/gtk3/nma-mobile-wizard.ui +similarity index 100% +rename from src/nma-mobile-wizard.ui +rename to src/ui/gtk3/nma-mobile-wizard.ui +diff --git a/src/nma-pkcs11-cert-chooser-dialog.ui b/src/ui/gtk3/nma-pkcs11-cert-chooser-dialog.ui +similarity index 100% +rename from src/nma-pkcs11-cert-chooser-dialog.ui +rename to src/ui/gtk3/nma-pkcs11-cert-chooser-dialog.ui +diff --git a/src/nma-pkcs11-token-login-dialog.ui b/src/ui/gtk3/nma-pkcs11-token-login-dialog.ui +similarity index 100% +rename from src/nma-pkcs11-token-login-dialog.ui +rename to src/ui/gtk3/nma-pkcs11-token-login-dialog.ui +diff --git a/src/nma-vpn-password-dialog.ui b/src/ui/gtk3/nma-vpn-password-dialog.ui +similarity index 100% +rename from src/nma-vpn-password-dialog.ui +rename to src/ui/gtk3/nma-vpn-password-dialog.ui +diff --git a/src/nma-ws/nma-eap-fast.ui b/src/ui/gtk3/nma-ws/nma-eap-fast.ui +similarity index 100% +rename from src/nma-ws/nma-eap-fast.ui +rename to src/ui/gtk3/nma-ws/nma-eap-fast.ui +diff --git a/src/nma-ws/nma-eap-leap.ui b/src/ui/gtk3/nma-ws/nma-eap-leap.ui +similarity index 100% +rename from src/nma-ws/nma-eap-leap.ui +rename to src/ui/gtk3/nma-ws/nma-eap-leap.ui +diff --git a/src/nma-ws/nma-eap-peap.ui b/src/ui/gtk3/nma-ws/nma-eap-peap.ui +similarity index 100% +rename from src/nma-ws/nma-eap-peap.ui +rename to src/ui/gtk3/nma-ws/nma-eap-peap.ui +diff --git a/src/nma-ws/nma-eap-simple.ui b/src/ui/gtk3/nma-ws/nma-eap-simple.ui +similarity index 100% +rename from src/nma-ws/nma-eap-simple.ui +rename to src/ui/gtk3/nma-ws/nma-eap-simple.ui +diff --git a/src/nma-ws/nma-eap-tls.ui b/src/ui/gtk3/nma-ws/nma-eap-tls.ui +similarity index 100% +rename from src/nma-ws/nma-eap-tls.ui +rename to src/ui/gtk3/nma-ws/nma-eap-tls.ui +diff --git a/src/nma-ws/nma-eap-ttls.ui b/src/ui/gtk3/nma-ws/nma-eap-ttls.ui +similarity index 100% +rename from src/nma-ws/nma-eap-ttls.ui +rename to src/ui/gtk3/nma-ws/nma-eap-ttls.ui +diff --git a/src/nma-ws/nma-ws-802-1x.ui b/src/ui/gtk3/nma-ws/nma-ws-802-1x.ui +similarity index 100% +rename from src/nma-ws/nma-ws-802-1x.ui +rename to src/ui/gtk3/nma-ws/nma-ws-802-1x.ui +diff --git a/src/nma-ws/nma-ws-leap.ui b/src/ui/gtk3/nma-ws/nma-ws-leap.ui +similarity index 100% +rename from src/nma-ws/nma-ws-leap.ui +rename to src/ui/gtk3/nma-ws/nma-ws-leap.ui +diff --git a/src/nma-ws/nma-ws-sae.ui b/src/ui/gtk3/nma-ws/nma-ws-sae.ui +similarity index 100% +rename from src/nma-ws/nma-ws-sae.ui +rename to src/ui/gtk3/nma-ws/nma-ws-sae.ui +diff --git a/src/nma-ws/nma-ws-wep-key.ui b/src/ui/gtk3/nma-ws/nma-ws-wep-key.ui +similarity index 100% +rename from src/nma-ws/nma-ws-wep-key.ui +rename to src/ui/gtk3/nma-ws/nma-ws-wep-key.ui +diff --git a/src/nma-ws/nma-ws-wpa-psk.ui b/src/ui/gtk3/nma-ws/nma-ws-wpa-psk.ui +similarity index 100% +rename from src/nma-ws/nma-ws-wpa-psk.ui +rename to src/ui/gtk3/nma-ws/nma-ws-wpa-psk.ui +diff --git a/src/nma.gresource.xml b/src/ui/gtk3/nma.gresource.xml +similarity index 100% +rename from src/nma.gresource.xml +rename to src/ui/gtk3/nma.gresource.xml +diff --git a/src/wifi.ui b/src/ui/gtk3/wifi.ui +similarity index 100% +rename from src/wifi.ui +rename to src/ui/gtk3/wifi.ui +diff --git a/src/ui/gtk4/nma-bar-code-widget.ui b/src/ui/gtk4/nma-bar-code-widget.ui +new file mode 100644 +index 00000000..a3c97e5b +--- /dev/null ++++ b/src/ui/gtk4/nma-bar-code-widget.ui +@@ -0,0 +1,30 @@ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-mobile-wizard.ui b/src/ui/gtk4/nma-mobile-wizard.ui +new file mode 100644 +index 00000000..f1264e9e +--- /dev/null ++++ b/src/ui/gtk4/nma-mobile-wizard.ui +@@ -0,0 +1,417 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ country_store ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ providers_store ++ ++ ++ New Mobile Broadband Connection ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ intro ++ Set up a Mobile Broadband Connection ++ 1 ++ ++ ++ 0 ++ 12 ++ 12 ++ 12 ++ 12 ++ vertical ++ 6 ++ ++ ++ 0 ++ This assistant helps you easily set up a mobile broadband connection to a cellular (3G) network. ++ 1 ++ 60 ++ 0 ++ ++ ++ ++ ++ 0 ++ You will need the following information: ++ 1 ++ 0 ++ ++ ++ ++ ++ 0 ++ 25 ++ Your broadband provider’s name ++ 0 ++ ++ ++ ++ ++ 0 ++ 25 ++ Your broadband billing plan name ++ 0 ++ ++ ++ ++ ++ 0 ++ 25 ++ (in some cases) Your broadband billing plan APN (Access Point Name) ++ 0 ++ ++ ++ ++ ++ 0 ++ end ++ 1 ++ Create a connection for _this mobile broadband device: ++ 1 ++ 0 ++ ++ ++ ++ ++ 0 ++ 0 ++ dev_store ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Choose your Provider’s Country or Region ++ ++ ++ 0 ++ 12 ++ 12 ++ 12 ++ 12 ++ vertical ++ 6 ++ ++ ++ 0 ++ Country or region: ++ 0 ++ ++ ++ ++ ++ 0 ++ 1 ++ 1 ++ never ++ ++ ++ 0 ++ 1 ++ 1 ++ 1 ++ country_sort ++ 0 ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Choose your Provider ++ ++ ++ 0 ++ 12 ++ 12 ++ 12 ++ 12 ++ vertical ++ 6 ++ ++ ++ 0 ++ Select your provider from a _list: ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ 0 ++ 140 ++ 1 ++ 25 ++ 1 ++ never ++ ++ ++ 0 ++ 1 ++ providers_sort ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ I can’t find my provider and I wish to set up the connection _manually: ++ 1 ++ providers_view_radio ++ ++ ++ ++ ++ 0 ++ 25 ++ 0 ++ ++ My provider uses GSM technology (GPRS, EDGE, UMTS, HSPA) ++ My provider uses CDMA technology (1xRTT, EVDO) ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Choose your Billing Plan ++ ++ ++ 0 ++ 12 ++ 12 ++ 12 ++ 12 ++ vertical ++ 6 ++ ++ ++ 0 ++ _Select your plan: ++ 1 ++ 0 ++ ++ ++ ++ ++ 0 ++ plan_store ++ ++ ++ ++ ++ ++ 0 ++ Selected plan _APN (Access Point Name): ++ 1 ++ 0 ++ ++ ++ ++ ++ 0 ++ 1 ++ 64 ++ ++ ++ ++ ++ ++ ++ 0 ++ end ++ 1 ++ 6 ++ ++ ++ 0 ++ start ++ dialog-warning ++ 6 ++ ++ ++ ++ ++ 0 ++ 500 ++ Warning: Selecting an incorrect plan may result in billing issues for your broadband account or may prevent connectivity. ++ ++If you are unsure of your plan please ask your provider for your plan’s APN. ++ 1 ++ 60 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ confirm ++ Confirm Mobile Broadband Settings ++ 1 ++ ++ ++ 0 ++ 12 ++ 12 ++ 12 ++ 12 ++ vertical ++ 6 ++ ++ ++ 0 ++ 500 ++ Your mobile broadband connection is configured with the following settings: ++ 1 ++ 0 ++ ++ ++ ++ ++ 0 ++ Your Device: ++ 0 ++ ++ ++ ++ ++ 0 ++ 25 ++ 0 ++ ++ ++ ++ ++ 0 ++ Your Provider: ++ 0 ++ ++ ++ ++ ++ 0 ++ 25 ++ 0 ++ ++ ++ ++ ++ 0 ++ Your Plan: ++ 0 ++ ++ ++ ++ ++ 0 ++ vertical ++ 6 ++ ++ ++ 0 ++ 25 ++ 0 ++ ++ ++ ++ ++ 0 ++ 25 ++ 0 ++ ++ ++ ++ ++ ++ ++ 0 ++ 500 ++ end ++ 1 ++ A connection will now be made to your mobile broadband provider using the settings you selected. If the connection fails or you cannot access network resources, double-check your settings. To modify your mobile broadband connection settings, choose “Network Connections” from the System → Preferences menu. ++ 1 ++ 60 ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 0 ++ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-pkcs11-cert-chooser-dialog.ui b/src/ui/gtk4/nma-pkcs11-cert-chooser-dialog.ui +new file mode 100644 +index 00000000..0327dea3 +--- /dev/null ++++ b/src/ui/gtk4/nma-pkcs11-cert-chooser-dialog.ui +@@ -0,0 +1,105 @@ ++ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-pkcs11-token-login-dialog.ui b/src/ui/gtk4/nma-pkcs11-token-login-dialog.ui +new file mode 100644 +index 00000000..f095361b +--- /dev/null ++++ b/src/ui/gtk4/nma-pkcs11-token-login-dialog.ui +@@ -0,0 +1,69 @@ ++ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-vpn-password-dialog.ui b/src/ui/gtk4/nma-vpn-password-dialog.ui +new file mode 100644 +index 00000000..e94fc92d +--- /dev/null ++++ b/src/ui/gtk4/nma-vpn-password-dialog.ui +@@ -0,0 +1,186 @@ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-eap-fast.ui b/src/ui/gtk4/nma-ws/nma-eap-fast.ui +new file mode 100644 +index 00000000..1c3621cc +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-eap-fast.ui +@@ -0,0 +1,196 @@ ++ ++ ++ ++ ++ ++ cancel_button ++ open_button ++ ++ ++ ++ ++ ++ Choose a PAC file ++ ++ ++ ++ ++ ++ _Cancel ++ 1 ++ 1 ++ 1 ++ ++ ++ ++ ++ _Open ++ 1 ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Anonymous ++ ++ ++ Authenticated ++ ++ ++ Both ++ ++ ++ ++ ++ 6 ++ 6 ++ ++ ++ Anony_mous identity ++ 1 ++ eap_fast_anon_identity_entry ++ 1 ++ ++ 0 ++ 0 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ ++ PAC _file ++ 1 ++ eap_fast_pac_file_button ++ 1 ++ ++ 0 ++ 2 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ document-open-symbolic ++ ++ ++ ++ ++ ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ vertical ++ ++ ++ ++ ++ 0 ++ 4 ++ 2 ++ ++ ++ ++ ++ ++ _Inner authentication ++ 1 ++ eap_fast_inner_auth_combo ++ 1 ++ ++ 0 ++ 3 ++ ++ ++ ++ ++ ++ model8 ++ ++ ++ ++ 0 ++ ++ ++ ++ 1 ++ 3 ++ ++ ++ ++ ++ ++ Allow automatic PAC pro_visioning ++ 1 ++ 1 ++ ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ model9 ++ ++ ++ ++ 0 ++ ++ ++ ++ 1 ++ 1 ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-eap-leap.ui b/src/ui/gtk4/nma-ws/nma-eap-leap.ui +new file mode 100644 +index 00000000..89f6f4f2 +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-eap-leap.ui +@@ -0,0 +1,70 @@ ++ ++ ++ ++ ++ start ++ 6 ++ 6 ++ ++ ++ _Username ++ 1 ++ eap_leap_username_entry ++ 1 ++ ++ 0 ++ 0 ++ ++ ++ ++ ++ ++ _Password ++ 1 ++ eap_leap_password_entry ++ 1 ++ ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 0 ++ 1 ++ ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ Sho_w password ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-eap-peap.ui b/src/ui/gtk4/nma-ws/nma-eap-peap.ui +new file mode 100644 +index 00000000..2673f9ed +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-eap-peap.ui +@@ -0,0 +1,171 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Automatic ++ ++ ++ Version 0 ++ ++ ++ Version 1 ++ ++ ++ ++ ++ 6 ++ 6 ++ ++ ++ Anony_mous identity ++ 1 ++ eap_peap_anon_identity_entry ++ 1 ++ ++ 0 ++ 0 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ ++ No CA certificate is _required ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 3 ++ ++ ++ ++ ++ ++ PEAP _version ++ 1 ++ eap_peap_version_combo ++ 1 ++ ++ 0 ++ 4 ++ ++ ++ ++ ++ ++ 1 ++ model9 ++ ++ ++ ++ 0 ++ ++ ++ ++ 1 ++ 4 ++ ++ ++ ++ ++ ++ _Inner authentication ++ 1 ++ eap_peap_inner_auth_combo ++ 1 ++ ++ 0 ++ 5 ++ ++ ++ ++ ++ ++ 1 ++ model8 ++ ++ ++ ++ 0 ++ ++ ++ ++ 1 ++ 5 ++ ++ ++ ++ ++ ++ vertical ++ ++ ++ ++ ++ 0 ++ 6 ++ 2 ++ ++ ++ ++ ++ ++ Suffix of the server certificate name. ++ _Domain ++ 1 ++ eap_peap_domain_entry ++ 1 ++ ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-eap-simple.ui b/src/ui/gtk4/nma-ws/nma-eap-simple.ui +new file mode 100644 +index 00000000..fab6fdb0 +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-eap-simple.ui +@@ -0,0 +1,117 @@ ++ ++ ++ ++ ++ start ++ 6 ++ 6 ++ ++ ++ _Username ++ 1 ++ eap_simple_username_entry ++ 1 ++ ++ 0 ++ 0 ++ ++ ++ ++ ++ ++ _Password ++ 1 ++ eap_simple_password_entry ++ 1 ++ ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 0 ++ 1 ++ ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ ++ vertical ++ ++ ++ 1 ++ Sho_w password ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ P_rivate Key Passphrase ++ 1 ++ eap_simple_pkey_passphrase_entry ++ 1 ++ ++ 0 ++ 3 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 0 ++ 1 ++ ++ 1 ++ 3 ++ ++ ++ ++ ++ ++ Sh_ow passphrase ++ 1 ++ 1 ++ ++ 1 ++ 4 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-eap-tls.ui b/src/ui/gtk4/nma-ws/nma-eap-tls.ui +new file mode 100644 +index 00000000..07126fb9 +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-eap-tls.ui +@@ -0,0 +1,77 @@ ++ ++ ++ ++ ++ 6 ++ 6 ++ ++ ++ I_dentity ++ 1 ++ eap_tls_identity_entry ++ 1 ++ ++ 0 ++ 0 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ ++ No CA certificate is _required ++ 1 ++ start ++ 1 ++ 1 ++ ++ 1 ++ 3 ++ ++ ++ ++ ++ ++ Suffix of the server certificate name. ++ _Domain ++ 1 ++ eap_tls_domain_entry ++ 1 ++ ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-eap-ttls.ui b/src/ui/gtk4/nma-ws/nma-eap-ttls.ui +new file mode 100644 +index 00000000..04f726c6 +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-eap-ttls.ui +@@ -0,0 +1,129 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 6 ++ 6 ++ ++ ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ ++ vertical ++ 6 ++ ++ ++ ++ ++ 0 ++ 5 ++ 2 ++ ++ ++ ++ ++ ++ 1 ++ model6 ++ ++ ++ ++ 0 ++ ++ ++ ++ 1 ++ 4 ++ ++ ++ ++ ++ ++ _Inner authentication ++ 1 ++ eap_ttls_inner_auth_combo ++ 1 ++ ++ 0 ++ 4 ++ ++ ++ ++ ++ ++ No CA certificate is _required ++ 1 ++ start ++ 1 ++ 1 ++ ++ 1 ++ 3 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ 1 ++ ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ Anony_mous identity ++ 1 ++ eap_ttls_anon_identity_entry ++ 1 ++ ++ 0 ++ 0 ++ ++ ++ ++ ++ ++ Suffix of the server certificate name. ++ _Domain ++ 1 ++ eap_ttls_domain_entry ++ 1 ++ ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-ws-802-1x.ui b/src/ui/gtk4/nma-ws/nma-ws-802-1x.ui +new file mode 100644 +index 00000000..8baaab99 +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-ws-802-1x.ui +@@ -0,0 +1,62 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-ws-leap.ui b/src/ui/gtk4/nma-ws/nma-ws-leap.ui +new file mode 100644 +index 00000000..167ecc68 +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-ws-leap.ui +@@ -0,0 +1,74 @@ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-ws-sae.ui b/src/ui/gtk4/nma-ws/nma-ws-sae.ui +new file mode 100644 +index 00000000..9f01eaf7 +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-ws-sae.ui +@@ -0,0 +1,71 @@ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-ws-wep-key.ui b/src/ui/gtk4/nma-ws/nma-ws-wep-key.ui +new file mode 100644 +index 00000000..18901cd4 +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-ws-wep-key.ui +@@ -0,0 +1,142 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Open System ++ ++ ++ Shared Key ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 1 (Default) ++ ++ ++ 2 ++ ++ ++ 3 ++ ++ ++ 4 ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma-ws/nma-ws-wpa-psk.ui b/src/ui/gtk4/nma-ws/nma-ws-wpa-psk.ui +new file mode 100644 +index 00000000..c8d0749c +--- /dev/null ++++ b/src/ui/gtk4/nma-ws/nma-ws-wpa-psk.ui +@@ -0,0 +1,70 @@ ++ ++ ++ ++ ++ +diff --git a/src/ui/gtk4/nma.gresource.xml b/src/ui/gtk4/nma.gresource.xml +new file mode 100644 +index 00000000..5c75f112 +--- /dev/null ++++ b/src/ui/gtk4/nma.gresource.xml +@@ -0,0 +1,22 @@ ++ ++ ++ ++ wifi.ui ++ nma-pkcs11-token-login-dialog.ui ++ nma-pkcs11-cert-chooser-dialog.ui ++ nma-mobile-wizard.ui ++ nma-vpn-password-dialog.ui ++ nma-bar-code-widget.ui ++ nma-ws/nma-ws-802-1x.ui ++ nma-ws/nma-ws-leap.ui ++ nma-ws/nma-ws-sae.ui ++ nma-ws/nma-ws-wep-key.ui ++ nma-ws/nma-ws-wpa-psk.ui ++ nma-ws/nma-eap-fast.ui ++ nma-ws/nma-eap-leap.ui ++ nma-ws/nma-eap-peap.ui ++ nma-ws/nma-eap-simple.ui ++ nma-ws/nma-eap-tls.ui ++ nma-ws/nma-eap-ttls.ui ++ ++ +diff --git a/src/ui/gtk4/wifi.ui b/src/ui/gtk4/wifi.ui +new file mode 100644 +index 00000000..bddd30a3 +--- /dev/null ++++ b/src/ui/gtk4/wifi.ui +@@ -0,0 +1,187 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ 12 ++ 12 ++ 12 ++ 12 ++ 12 ++ 12 ++ ++ ++ start ++ 12 ++ 12 ++ 12 ++ 12 ++ network-wireless ++ 6 ++ ++ 0 ++ 0 ++ ++ ++ ++ ++ ++ 12 ++ 12 ++ 12 ++ 12 ++ 1 ++ 1 ++ 50 ++ 0 ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ ++ 6 ++ 6 ++ ++ ++ 1 ++ vertical ++ ++ ++ ++ ++ 0 ++ 4 ++ 2 ++ ++ ++ ++ ++ ++ Wi-Fi _security ++ 1 ++ security_combo ++ 1 ++ ++ 0 ++ 3 ++ ++ ++ ++ ++ ++ 1 ++ model1 ++ ++ ++ ++ 0 ++ ++ ++ ++ 1 ++ 3 ++ ++ ++ ++ ++ ++ _Network name ++ 1 ++ network_name_entry ++ 1 ++ ++ 0 ++ 2 ++ ++ ++ ++ ++ ++ 1 ++ 1 ++ ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ C_onnection ++ 1 ++ connection_combo ++ 1 ++ ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ 1 ++ ++ 1 ++ 1 ++ ++ ++ ++ ++ ++ Wi-Fi _adapter ++ 1 ++ device_combo ++ 1 ++ ++ 0 ++ 0 ++ ++ ++ ++ ++ ++ 1 ++ model2 ++ ++ ++ ++ 0 ++ ++ ++ ++ 1 ++ 0 ++ ++ ++ ++ ++ 0 ++ 1 ++ 2 ++ ++ ++ ++ ++ +diff --git a/src/ui/meson.build b/src/ui/meson.build +new file mode 100644 +index 00000000..2f8eec99 +--- /dev/null ++++ b/src/ui/meson.build +@@ -0,0 +1,11 @@ ++if enable_libnma_gtk4 ++ ui_dir = 'gtk4' ++else ++ ui_dir = 'gtk3' ++endif ++ ++ui_sources = gnome.compile_resources( ++ 'nma-resources', ++ join_paths(ui_dir, 'nma.gresource.xml'), ++ source_dir: ui_dir ++) +-- +2.35.1 + diff --git a/0001-meson-build-separate-UI-sources-for-GTK3-and-GTK4-li.patch b/0001-meson-build-separate-UI-sources-for-GTK3-and-GTK4-li.patch new file mode 100644 index 0000000..926cb82 --- /dev/null +++ b/0001-meson-build-separate-UI-sources-for-GTK3-and-GTK4-li.patch @@ -0,0 +1,56 @@ +From 40b591aaa0fcbc2bf37f89909477d59a102a5fa4 Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Fri, 18 Mar 2022 15:56:12 -0700 +Subject: [PATCH] meson: build separate UI sources for GTK3 and GTK4 libraries + +We can't just do one or the other, each build of the library +needs the correct respective UI resources. + +Signed-off-by: Adam Williamson +--- + src/meson.build | 2 +- + src/ui/meson.build | 18 ++++++++++-------- + 2 files changed, 11 insertions(+), 9 deletions(-) + +diff --git a/src/meson.build b/src/meson.build +index 6e1a15e4..efe3fb03 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -103,7 +103,7 @@ libnma_dep = declare_dependency( + if enable_libnma_gtk4 + libnma_gtk4 = shared_library( + 'nma-gtk4', +- sources: gir_sources + ui_sources, ++ sources: gir_sources + ui_sources4, + version: libversion, + include_directories: incs, + dependencies: [ deps, gtk4_dep ], +diff --git a/src/ui/meson.build b/src/ui/meson.build +index 2f8eec99..60dbaeef 100644 +--- a/src/ui/meson.build ++++ b/src/ui/meson.build +@@ -1,11 +1,13 @@ +-if enable_libnma_gtk4 +- ui_dir = 'gtk4' +-else +- ui_dir = 'gtk3' +-endif +- + ui_sources = gnome.compile_resources( + 'nma-resources', +- join_paths(ui_dir, 'nma.gresource.xml'), +- source_dir: ui_dir ++ join_paths('gtk3', 'nma.gresource.xml'), ++ source_dir: 'gtk3' + ) ++ ++if enable_libnma_gtk4 ++ ui_sources4 = gnome.compile_resources( ++ 'nma-resources4', ++ join_paths('gtk4', 'nma.gresource.xml'), ++ source_dir: 'gtk4' ++ ) ++endif +-- +2.35.1 + diff --git a/libnma.spec b/libnma.spec index 10b7d2a..ba30fc9 100644 --- a/libnma.spec +++ b/libnma.spec @@ -7,7 +7,7 @@ %global rpm_version 1.8.34 %global real_version 1.8.34 -%global release_version 1 +%global release_version 2 %global real_version_major %(printf '%s' '%{real_version}' | sed -n 's/^\\([1-9][0-9]*\\.[1-9][0-9]*\\)\\.[1-9][0-9]*$/\\1/p') @@ -20,13 +20,22 @@ Name: libnma Summary: NetworkManager GUI library Version: %{rpm_version} -Release: %{release_version}%{?dist}.1 +Release: %{release_version}%{?dist} # The entire source code is GPLv2+ except some files in shared/ which are LGPLv2+ License: GPLv2+ and LGPLv2+ URL: https://gitlab.gnome.org/GNOME/libnma/ Source0: https://download.gnome.org/sources/libnma/%{real_version_major}/%{name}-%{real_version}.tar.xz Patch1: 0001-nm-applet-no-notifications.patch +# Include working UI resources for GTK4 so UI elements in GNOME +# Control Center provided by this package work +# https://bugzilla.redhat.com/show_bug.cgi?id=2060868 +# https://gitlab.gnome.org/GNOME/libnma/-/merge_requests/26 +# Rebased and squashed +Patch2: 0001-Ship-and-compile-both-GTK3-and-GTK4-UI-files.patch +# Fixup to build GTK3 and GTK4 ui sources separately for each lib +# https://gitlab.gnome.org/GNOME/libnma/-/merge_requests/26#note_1411364 +Patch3: 0001-meson-build-separate-UI-sources-for-GTK3-and-GTK4-li.patch Requires: mobile-broadband-provider-info >= %{mbp_version} @@ -149,6 +158,9 @@ files to be used for integrating GUI tools with NetworkManager. %changelog +* Fri Mar 18 2022 Adam Williamson - 1.8.34-2 +- Backport MR #26 to fix UI files in GTK4 (#2060868) + * Thu Jan 20 2022 Fedora Release Engineering - 1.8.34-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild