Message ID | 20220109170612.574104-7-f4bug@amsat.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | host: Support macOS 12 | expand |
On 2022/01/10 2:06, Philippe Mathieu-Daudé wrote: > Add support for macOS 12 build on Cirrus-CI, similarly to commit > 0e103a65ba1 ("gitlab: support for ... macOS 11 via cirrus-run"). > > Disable deprecation warnings on Objective C to avoid: > > [2789/6622] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o > ui/cocoa.m:1411:16: error: 'setAllowedFileTypes:' is deprecated: first deprecated in macOS 12.0 - Use -allowedContentTypes instead [-Werror,-Wdeprecated-declarations] > [openPanel setAllowedFileTypes: supportedImageFileTypes]; > ^ > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: property 'allowedFileTypes' is declared deprecated here > @property (nullable, copy) NSArray<NSString *> *allowedFileTypes API_DEPRECATED("Use -allowedContentTypes instead", macos(10.3,12.0)); > ^ > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: 'setAllowedFileTypes:' has been explicitly marked deprecated here > FAILED: libcommon.fa.p/ui_cocoa.m.o > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Globally disabling deprecation warnings sounds bad. I came up with a few alternatives: - Just remove the call of [NSSavePanel allowedFileTypes:]. Actually I think it is harming the usability rather than improving it. An image file, which is being chosen by the panel, can be a raw file and have a variety of file extensions and many are not covered by the provided list (e.g. "udf"). Other platforms like GTK can provide an option to open a file with an extension not listed, but Cocoa can't. It forces the user to rename the file to give an extension in the list. Moreover, Cocoa does not tell which extensions are in the list so the user needs to read the source code, which is pretty bad. - Use a different method to provide the same functionality. - To locally disable the warning, enclose the statement with: #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" and #pragma clang diagnostic pop Regards, Akihiko Odaki > --- > Generated using lcitool from: > https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/210 > --- > .gitlab-ci.d/cirrus.yml | 16 ++++++++++++++++ > .gitlab-ci.d/cirrus/macos-12.vars | 16 ++++++++++++++++ > 2 files changed, 32 insertions(+) > create mode 100644 .gitlab-ci.d/cirrus/macos-12.vars > > diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml > index 19e6c21401b..719008b13ca 100644 > --- a/.gitlab-ci.d/cirrus.yml > +++ b/.gitlab-ci.d/cirrus.yml > @@ -90,6 +90,22 @@ x64-macos-11-base-build: > PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig > TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64 > > +x64-macos-12-base-build: > + extends: .cirrus_build_job > + variables: > + NAME: macos-12 > + CIRRUS_VM_INSTANCE_TYPE: osx_instance > + CIRRUS_VM_IMAGE_SELECTOR: image > + CIRRUS_VM_IMAGE_NAME: monterey-base > + CIRRUS_VM_CPUS: 12 > + CIRRUS_VM_RAM: 24G > + UPDATE_COMMAND: brew update > + INSTALL_COMMAND: brew install > + PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin > + PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig > + TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64 > + CONFIGURE_ARGS: --extra-objcflags=-Wno-deprecated-declarations > + > > # The following jobs run VM-based tests via KVM on a Linux-based Cirrus-CI job > .cirrus_kvm_job: > diff --git a/.gitlab-ci.d/cirrus/macos-12.vars b/.gitlab-ci.d/cirrus/macos-12.vars > new file mode 100644 > index 00000000000..997dbc762c8 > --- /dev/null > +++ b/.gitlab-ci.d/cirrus/macos-12.vars > @@ -0,0 +1,16 @@ > +# THIS FILE WAS AUTO-GENERATED > +# > +# $ lcitool variables macos-12 qemu > +# > +# https://gitlab.com/libvirt/libvirt-ci > + > +CCACHE='/usr/local/bin/ccache' > +CPAN_PKGS='Test::Harness' > +CROSS_PKGS='' > +MAKE='/usr/local/bin/gmake' > +NINJA='/usr/local/bin/ninja' > +PACKAGING_COMMAND='brew' > +PIP3='/usr/local/bin/pip3' > +PKGS='bash bc bzip2 capstone ccache cpanminus ctags curl dbus diffutils dtc gcovr gettext git glib gnu-sed gnutls gtk+3 jemalloc jpeg-turbo libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb libxml2 llvm lzo make meson ncurses nettle ninja perl pixman pkg-config python3 rpm2cpio sdl2 sdl2_image snappy sparse spice-protocol tesseract texinfo usbredir vde vte3 zlib zstd' > +PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme virtualenv' > +PYTHON='/usr/local/bin/python3'
On Sun, Jan 09, 2022 at 06:06:12PM +0100, Philippe Mathieu-Daudé wrote: > Add support for macOS 12 build on Cirrus-CI, similarly to commit > 0e103a65ba1 ("gitlab: support for ... macOS 11 via cirrus-run"). > > Disable deprecation warnings on Objective C to avoid: > > [2789/6622] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o > ui/cocoa.m:1411:16: error: 'setAllowedFileTypes:' is deprecated: first deprecated in macOS 12.0 - Use -allowedContentTypes instead [-Werror,-Wdeprecated-declarations] > [openPanel setAllowedFileTypes: supportedImageFileTypes]; > ^ > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: property 'allowedFileTypes' is declared deprecated here > @property (nullable, copy) NSArray<NSString *> *allowedFileTypes API_DEPRECATED("Use -allowedContentTypes instead", macos(10.3,12.0)); > ^ > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: 'setAllowedFileTypes:' has been explicitly marked deprecated here > FAILED: libcommon.fa.p/ui_cocoa.m.o > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > Generated using lcitool from: > https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/210 > --- > .gitlab-ci.d/cirrus.yml | 16 ++++++++++++++++ > .gitlab-ci.d/cirrus/macos-12.vars | 16 ++++++++++++++++ > 2 files changed, 32 insertions(+) > create mode 100644 .gitlab-ci.d/cirrus/macos-12.vars There's going to be a minor interaction with my patches that integrate lcitool more formally in QEMU. Alex has them queued here: https://lists.gnu.org/archive/html/qemu-devel/2022-01/msg00558.html could you rebase on top of that series - all it will really mean in this case is including the git submodule update on top, and updating the refresh script to include macos-12 too https://lists.gnu.org/archive/html/qemu-devel/2022-01/msg00571.html Regards, Daniel
diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml index 19e6c21401b..719008b13ca 100644 --- a/.gitlab-ci.d/cirrus.yml +++ b/.gitlab-ci.d/cirrus.yml @@ -90,6 +90,22 @@ x64-macos-11-base-build: PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64 +x64-macos-12-base-build: + extends: .cirrus_build_job + variables: + NAME: macos-12 + CIRRUS_VM_INSTANCE_TYPE: osx_instance + CIRRUS_VM_IMAGE_SELECTOR: image + CIRRUS_VM_IMAGE_NAME: monterey-base + CIRRUS_VM_CPUS: 12 + CIRRUS_VM_RAM: 24G + UPDATE_COMMAND: brew update + INSTALL_COMMAND: brew install + PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin + PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig + TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64 + CONFIGURE_ARGS: --extra-objcflags=-Wno-deprecated-declarations + # The following jobs run VM-based tests via KVM on a Linux-based Cirrus-CI job .cirrus_kvm_job: diff --git a/.gitlab-ci.d/cirrus/macos-12.vars b/.gitlab-ci.d/cirrus/macos-12.vars new file mode 100644 index 00000000000..997dbc762c8 --- /dev/null +++ b/.gitlab-ci.d/cirrus/macos-12.vars @@ -0,0 +1,16 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool variables macos-12 qemu +# +# https://gitlab.com/libvirt/libvirt-ci + +CCACHE='/usr/local/bin/ccache' +CPAN_PKGS='Test::Harness' +CROSS_PKGS='' +MAKE='/usr/local/bin/gmake' +NINJA='/usr/local/bin/ninja' +PACKAGING_COMMAND='brew' +PIP3='/usr/local/bin/pip3' +PKGS='bash bc bzip2 capstone ccache cpanminus ctags curl dbus diffutils dtc gcovr gettext git glib gnu-sed gnutls gtk+3 jemalloc jpeg-turbo libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb libxml2 llvm lzo make meson ncurses nettle ninja perl pixman pkg-config python3 rpm2cpio sdl2 sdl2_image snappy sparse spice-protocol tesseract texinfo usbredir vde vte3 zlib zstd' +PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme virtualenv' +PYTHON='/usr/local/bin/python3'
Add support for macOS 12 build on Cirrus-CI, similarly to commit 0e103a65ba1 ("gitlab: support for ... macOS 11 via cirrus-run"). Disable deprecation warnings on Objective C to avoid: [2789/6622] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o ui/cocoa.m:1411:16: error: 'setAllowedFileTypes:' is deprecated: first deprecated in macOS 12.0 - Use -allowedContentTypes instead [-Werror,-Wdeprecated-declarations] [openPanel setAllowedFileTypes: supportedImageFileTypes]; ^ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: property 'allowedFileTypes' is declared deprecated here @property (nullable, copy) NSArray<NSString *> *allowedFileTypes API_DEPRECATED("Use -allowedContentTypes instead", macos(10.3,12.0)); ^ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: 'setAllowedFileTypes:' has been explicitly marked deprecated here FAILED: libcommon.fa.p/ui_cocoa.m.o Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- Generated using lcitool from: https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/210 --- .gitlab-ci.d/cirrus.yml | 16 ++++++++++++++++ .gitlab-ci.d/cirrus/macos-12.vars | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 .gitlab-ci.d/cirrus/macos-12.vars