Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gobject-introspection broken on darwin #70300

Closed
marsam opened this issue Oct 3, 2019 · 2 comments · Fixed by #70304
Closed

gobject-introspection broken on darwin #70300

marsam opened this issue Oct 3, 2019 · 2 comments · Fixed by #70304
Labels
0.kind: bug 6.topic: darwin Running or building packages on Darwin

Comments

@marsam
Copy link
Contributor

marsam commented Oct 3, 2019

Describe the bug
gobject-introspection is broken on Darwin.

git bisect shows 1e3e782 (part of #68608) as the first failing commit

To Reproduce

Try to build gobject-introspection on Darwin at 7e89933

nix-build -A gobject-introspection
$ nix-build -A gobject-introspection
these derivations will be built:
  /nix/store/22arx4i2kzpwj37x4qvr6v94qpzrf4xi-gobject-introspection-1.60.2.drv
building '/nix/store/22arx4i2kzpwj37x4qvr6v94qpzrf4xi-gobject-introspection-1.60.2.drv'...
unpacking sources
unpacking source archive /nix/store/5px0d51dzwniysqkl0kf47ayfa23gl4z-gobject-introspection-1.60.2.tar.xz
source root is gobject-introspection-1.60.2
setting SOURCE_DATE_EPOCH to timestamp 1560622978 of file gobject-introspection-1.60.2/docs/reference/html/up.png
patching sources
applying patch /nix/store/xwq0d4bbdnyd86f7cycix1wjni2fnxa2-test_shlibs.patch
patching file tests/scanner/test_shlibs.py
applying patch /nix/store/x3f8mpa58pxcdk201qw233vqsrx2aldw-absolute_shlib_path.patch
patching file giscanner/scannermain.py
patching file giscanner/shlibs.py
patching file giscanner/utils.py
applying patch /nix/store/h1174varb9s1z0q8cg0ifv7kzdg5ixs2-absolute_gir_path.patch
patching file gir/cairo-1.0.gir.in
Hunk #1 succeeded at 6 with fuzz 2 (offset 1 line).
configuring
meson flags: --buildtype=plain         --libdir=/nix/store/hy1gyhc3ypapsj6i99clc3nqiv4l4kj5-gobject-introspection-1.60.2/lib --libexecdir=/nix/store/hy1gyhc3ypapsj6i99clc3nqiv4l4kj5-gobject-introspection-1.60.2/libexec         --bindir=/nix/store/a7gylq8nnz8cn2ivrk6zafvczwkph95x-gobject-introspection-1.60.2-dev/bin --sbindir=/nix/store/a7gylq8nnz8cn2ivrk6zafvczwkph95x-gobject-introspection-1.60.2-dev/sbin         --includedir=/nix/store/a7gylq8nnz8cn2ivrk6zafvczwkph95x-gobject-introspection-1.60.2-dev/include         --mandir=/nix/store/yld05fz7r51a3pnyxlr750r9k3697vmm-gobject-introspection-1.60.2-man/share/man --infodir=/nix/store/a7gylq8nnz8cn2ivrk6zafvczwkph95x-gobject-introspection-1.60.2-dev/share/info         --localedir=/nix/store/hy1gyhc3ypapsj6i99clc3nqiv4l4kj5-gobject-introspection-1.60.2/share/locale         -Dauto_features=enabled         -Dwrap_mode=nodownload         --prefix=/nix/store/hy1gyhc3ypapsj6i99clc3nqiv4l4kj5-gobject-introspection-1.60.2 --datadir=/nix/store/a7gylq8nnz8cn2ivrk6zafvczwkph95x-gobject-introspection-1.60.2-dev/share
The Meson build system
Version: 0.51.2
Source dir: /private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2
Build dir: /private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build
Build type: native build
DEPRECATION: Duplicated values in array option is deprecated. This will become a hard error in the future.
DEPRECATION: Duplicated values in array option is deprecated. This will become a hard error in the future.
DEPRECATION: Duplicated values in array option is deprecated. This will become a hard error in the future.
Project name: gobject-introspection
Project version: 1.60.2
C compiler for the host machine: /nix/store/z298gvhxk2z8l0asyn1dxhbfgkyqbdzw-clang-wrapper-7.1.0/bin/cc (clang 7.1.0 "clang version 7.1.0 (tags/RELEASE_710/final)")
DEPRECATION: Duplicated values in array option is deprecated. This will become a hard error in the future.
Build machine cpu family: x86_64
Build machine cpu: x86_64
Program python3 found: YES (/nix/store/611gq7s9s11w5ri95fbq2adi9ifrhkmn-python3-3.7.4/bin/python3)
Compiler for C supports arguments -Wall: YES
Compiler for C supports arguments -Warray-bounds: YES
Compiler for C supports arguments -Wcast-align: YES
Compiler for C supports arguments -Wdeclaration-after-statement: YES
Compiler for C supports arguments -Wduplicated-branches: NO
Compiler for C supports arguments -Wextra: YES
Compiler for C supports arguments -Wformat=2: YES
Compiler for C supports arguments -Wformat-nonliteral: YES
Compiler for C supports arguments -Wformat-security: YES
Compiler for C supports arguments -Wimplicit-function-declaration: YES
Compiler for C supports arguments -Winit-self: YES
Compiler for C supports arguments -Wjump-misses-init: NO
Compiler for C supports arguments -Wlogical-op: NO
Compiler for C supports arguments -Wmissing-declarations: YES
Compiler for C supports arguments -Wmissing-format-attribute: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wmissing-noreturn: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Wnested-externs: YES
Compiler for C supports arguments -Wnull-dereference: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wpacked: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wrestrict: NO
Compiler for C supports arguments -Wreturn-type: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wsign-compare: YES
Compiler for C supports arguments -Wstrict-aliasing: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wunused-but-set-variable: NO
Compiler for C supports arguments -Wwrite-strings: YES
Compiler for C supports arguments -fno-strict-aliasing: YES
Checking for size of "char" : 1
Checking for size of "short" : 2
Checking for size of "int" : 4
Checking for size of "long" : 8
Configuring config.h using configuration
Found pkg-config: /nix/store/n9d7fw2n8ckbnm1dxmi4qmkxwxpij4nv-pkg-config-0.29.2/bin/pkg-config (0.29.2)
Run-time dependency glib-2.0 found: YES 2.62.0
Run-time dependency gobject-2.0 found: YES 2.62.0
Run-time dependency gio-2.0 found: YES 2.62.0
Run-time dependency gmodule-2.0 found: YES 2.62.0
Run-time dependency gio-unix-2.0 found: YES 2.62.0
Run-time dependency libffi found: YES 3.2.1
meson.build:159: WARNING: Not building with cairo support, not all tests will be run
meson.build:164: WARNING: Not building with doctool support, not all tests will be run
Library m found: YES
Compiler for C supports arguments -Wno-implicit-fallthrough: YES
Compiler for C supports arguments -Wno-old-style-definition: YES
Compiler for C supports arguments -Wno-suggest-attribute=noreturn: NO
Compiler for C supports arguments -Wno-type-limits: YES
Compiler for C supports arguments -Wno-undef: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -Wno-cast-align: YES
Compiler for C supports arguments -Wno-unused-function: YES
Compiler for C supports arguments -Wno-return-type: YES
Compiler for C supports arguments -Wno-old-style-definition: YES (cached)
Compiler for C supports arguments -Wno-type-limits: YES (cached)
Compiler for C supports arguments -Wno-old-style-definition: YES (cached)
Compiler for C supports arguments -Wno-cast-align: YES (cached)
Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
Compiler for C supports arguments -Wno-duplicated-branches: NO
Compiler for C supports arguments -Wno-cast-align: YES (cached)
Configuring giversion.h using configuration
Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
Compiler for C supports arguments -Wno-duplicated-branches: NO (cached)
Compiler for C supports arguments -Wno-type-limits: YES (cached)
Compiler for C supports arguments -Wno-cast-align: YES (cached)
Compiler for C supports arguments -Wno-missing-field-initializers: YES
WARNING: Project targetting '>= 0.47.0' but tried to use feature introduced in '0.50.0': install arg in configure_file
Configuring g-ir-scanner using configuration
Program /private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tools/g-ir-scanner found: YES (/private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tools/g-ir-scanner)
Configuring g-ir-annotation-tool using configuration
Program /private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tools/g-ir-annotation-tool found: YES (/private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tools/g-ir-annotation-tool)
Compiler for C supports arguments -Wno-missing-field-initializers: YES (cached)
Configuring _version.py using configuration
Configuring __init__.py using configuration
Configuring annotationmain.py using configuration
Configuring annotationparser.py using configuration
Configuring ast.py using configuration
Configuring cachestore.py using configuration
Configuring ccompiler.py using configuration
Configuring codegen.py using configuration
Configuring docmain.py using configuration
Configuring docwriter.py using configuration
Configuring dumper.py using configuration
Configuring introspectablepass.py using configuration
Configuring girparser.py using configuration
Configuring girwriter.py using configuration
Configuring gdumpparser.py using configuration
Configuring libtoolimporter.py using configuration
Configuring maintransformer.py using configuration
Configuring mdextensions.py using configuration
Configuring message.py using configuration
Configuring msvccompiler.py using configuration
Configuring pkgconfig.py using configuration
Configuring shlibs.py using configuration
Configuring scannermain.py using configuration
Configuring sectionparser.py using configuration
Configuring sourcescanner.py using configuration
Configuring testcodegen.py using configuration
Configuring transformer.py using configuration
Configuring utils.py using configuration
Configuring xmlwriter.py using configuration
giscanner/meson.build:54: WARNING: Custom target input 'doctemplates' can't be converted to File object(s).
This will become a hard error in the future.
Program flex found: YES (/nix/store/b13pfk0pfakspw8498k5sm4i5spkvq8r-flex-2.6.4/bin/flex)
Program bison found: YES (/nix/store/d5gzq8y0c1g39fhv8cn8ipdfygbzwc2i-bison-3.4.1/bin/bison)
Has header "unistd.h" : YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES (cached)
Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
Dependency python found: YES (pkgconfig)
Configuring cairo-1.0.gir using configuration
Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
Compiler for C supports arguments -Wno-old-style-definition: YES (cached)
Compiler for C supports arguments -Wno-missing-field-initializers: YES (cached)
Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
WARNING: pkgconfig variable 'Cflags' not defined for dependency libffi.
WARNING: pkgconfig variable 'Libs' not defined for dependency libffi.
Configuring gobject-introspection-no-export-1.0.pc using configuration
Configuring gobject-introspection-1.0.pc using configuration
Build targets in project: 83
WARNING: Project specifies a minimum meson_version '>= 0.47.0' but uses features which were added in newer versions:
 * 0.50.0: {'install arg in configure_file'}
Option buildtype is: plain [default: debugoptimized]
Found ninja-1.9.0 at /nix/store/6m2r9iw3l7x736zgd1xcafjm9xbpphyz-ninja-1.9.0/bin/ninja
meson: enabled parallel building
building
build flags: -j8 -l8
[58/164] Generating scannerparser with a custom command.xe/glib-print.c.o'.o'.nnermodule.c.o'.
../giscanner/scannerparser.y:249.1-14: warning: deprecated directive, use ‘%define parse.error verbose’ [-Wdeprecated]
  249 | %error-verbose
      | ^~~~~~~~~~~~~~
../giscanner/scannerparser.y: warning: 7 shift/reduce conflicts [-Wconflicts-sr]
../giscanner/scannerparser.y: warning: fix-its can be applied.  Rerun with option '--update'. [-Wother]
[164/164] Generating generate-typelib-regress with a custom command.everything_cus_____nix_store_611gq7s9s11w5ri95fbq2adi9ifrhkmn_python3_3_7_4_bin_python3____File__tools_g_ir_scanner______quiet______output__OUTPUT_______no_libtool______reparse_validate______add_include_path_____private_tmp_nix_build_gobject_introspection_1_60_2_drv_0_gobject_introspection_1_60_2_gir______add_include_path_____private_tmp_nix_build_gobject_introspection_1_60_2_drv_0_gobject_introspection_1_60_2_build_gir______warn_all______warn_error______namespace_Everything______nsversion_1_0______include_Gio_2_0______library_everything_1_0_____L_____private_tmp_nix_build_gobject_introspection_1_60_2_drv_0_gobject_introspection_1_60_2_build_tests_____I_____private_tmp_nix_build_gobject_introspection_1_60_2_drv_0_gobject_introspection_1_60_2_tests_____INPUT____ with a custom command.[Kh______c_include_gio_gunixinputstream_h______c_include_gio_gunixmounts_h______c_include_gio_gunixoutputstream_h______c_include_gio_gunixsocketaddress_h______include_uninstalled__private_tmp_nix_build_gobject_introspection_1_60_2_drv_0_gobject_introspection_1_60_2_build_gir_GObject_2_0_gir______cflags_begin_____I_nix_store_6m9iaz1jqp2127cfflkygazw3ap4x1a3_glib_2_62_0_dev_include_glib_2_0_____I_nix_store_sd92z32y7zqxkghxg65ibq3qarf3p9gx_glib_2_62_0_lib_glib_2_0_include_____DGIO_COMPILATION_____DG_SETTINGS_ENABLE_BACKEND______cflags_end_____INPUT____ with a custom command.mmand.
running tests
check flags: -j8 -l8 test
[0/1] Running all tests.
 1/60 cmph-bdz-test                           OK       0.05 s
 2/60 gthash-test                             OK       0.07 s
 3/60 gi-testerEverything-1.0.typelib         OK       0.13 s
 4/60 gi-testerGIMarshallingTests-1.0.typelib  OK       0.11 s
 5/60 test_offsets.py                         OK       0.23 s
 6/60 warn-annotationparser                   OK       0.99 s
 7/60 warn-callback-invalid-scope             OK       0.88 s
 8/60 warn-callback-missing-scope             OK       0.88 s
 9/60 warn-invalid-allow-none                 OK       0.83 s
10/60 warn-invalid-array                      OK       0.77 s
11/60 warn-invalid-closure                    OK       0.61 s
12/60 warn-invalid-constructor                OK       0.71 s
13/60 warn-invalid-element-type               OK       0.67 s
14/60 warn-invalid-method                     OK       0.71 s
15/60 warn-invalid-nullable                   OK       0.71 s
16/60 warn-invalid-optional                   OK       0.71 s
17/60 warn-invalid-option                     OK       0.61 s
18/60 warn-invalid-out                        OK       0.55 s
19/60 warn-invalid-return                     OK       0.71 s
20/60 warn-invalid-transfer                   OK       0.70 s
21/60 warn-missing-element-type               OK       0.76 s
22/60 warn-return-gobject                     OK       0.72 s
23/60 warn-unknown-parameter                  OK       0.62 s
24/60 warn-unresolved-type                    OK       0.72 s
25/60 test_ccompiler.py                       OK       0.30 s
26/60 test_shlibs.py                          OK       0.20 s
27/60 test_sourcescanner.py                   OK       0.66 s
28/60 test_transformer.py                     OK       1.82 s
29/60 test_xmlwriter.py                       OK       0.19 s
30/60 test_pkgconfig.py                       OK       0.45 s
31/60 test_docwriter.py                       OK       0.13 s
32/60 test_scanner.py                         OK       0.29 s
33/60 test_maintransformer.py                 OK       0.46 s
34/60 gi-tester-Typedefs-1.0.gir              OK       0.08 s
35/60 gi-tester-Bar-1.0.gir                   OK       0.08 s
36/60 gi-tester-SLetter-1.0.gir               OK       0.13 s
37/60 gi-tester-WarnLib-1.0.gir               OK       0.14 s
38/60 gi-tester-Utility-1.0.gir               OK       0.09 s
39/60 gi-tester-GtkFrob-1.0.gir               OK       0.09 s
40/60 gi-tester-GetType-1.0.gir               OK       0.13 s
41/60 gi-tester-Symbolfilter-1.0.gir          OK       0.08 s
42/60 gi-tester-Identfilter-1.0.gir           OK       0.09 s
43/60 gi-tester-Headeronly-1.0.gir            OK       0.08 s
44/60 gi-tester-Typedefs-1.0.typelib          OK       0.08 s
45/60 gi-tester-Bar-1.0.typelib               OK       0.08 s
46/60 gi-tester-SLetter-1.0.typelib           OK       0.08 s
47/60 gi-tester-WarnLib-1.0.typelib           OK       0.08 s
48/60 gi-tester-Utility-1.0.typelib           OK       0.08 s
49/60 gi-tester-GtkFrob-1.0.typelib           OK       0.08 s
50/60 gi-tester-GetType-1.0.typelib           OK       0.08 s
51/60 gi-tester-Symbolfilter-1.0.typelib      OK       0.08 s
52/60 gi-tester-Identfilter-1.0.typelib       OK       0.08 s
53/60 gi-tester-Headeronly-1.0.typelib        OK       0.08 s
54/60 gi-tester-Regress-1.0.typelib           OK       0.08 s
55/60 test_patterns.py                        OK       0.14 s
56/60 test_parser.py                          OK       0.50 s
57/60 gitestrepo                              FAIL     0.03 s (killed by signal 6 SIGABRT)
58/60 giteststructinfo                        OK       0.03 s
59/60 gitestthrows                            FAIL     0.03 s (killed by signal 5 SIGTRAP)
60/60 gitypelibtest                           OK       0.03 s

Ok:                   58
Expected Fail:         0
Fail:                  2
Unexpected Pass:       0
Skipped:               0
Timeout:               0


The output from the failed tests:

57/60 gitestrepo                              FAIL     0.03 s (killed by signal 6 SIGABRT)

--- command ---
GI_TYPELIB_PATH='/private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/gir:/private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tests:/private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tests/scanner' /private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tests/repository/gitestrepo
--- stdout ---
Bail out! ERROR:../tests/repository/gitestrepo.c:88:main: assertion failed: (g_type_is_a (gtype, G_TYPE_OBJECT))
--- stderr ---

** (process:45706): WARNING **: 03:18:24.620: Failed to load shared library '/nix/store/sd92z32y7zqxkghxg65ibq3qarf3p9gx-glib-2.62.0/lib/libgio-2.0.0.dylib' referenced by the typelib: /nix/store/sd92z32y7zqxkghxg65ibq3qarf3p9gx-glib-2.62.0/lib/libgio-2.0.0.dylib is not a loadable module
**
ERROR:../tests/repository/gitestrepo.c:88:main: assertion failed: (g_type_is_a (gtype, G_TYPE_OBJECT))
-------

59/60 gitestthrows                            FAIL     0.03 s (killed by signal 5 SIGTRAP)

--- command ---
GI_TYPELIB_PATH='/private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/gir:/private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tests:/private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tests/scanner' /private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tests/repository/gitestthrows
--- stdout ---
# random seed: R02S871f26c1425907a5c8c8ad7473f17c68
1..3
# Start of girepository tests
# Start of throws tests
Bail out! FATAL-WARNING: Failed to load shared library '/nix/store/sd92z32y7zqxkghxg65ibq3qarf3p9gx-glib-2.62.0/lib/libgobject-2.0.0.dylib' referenced by the typelib: /nix/store/sd92z32y7zqxkghxg65ibq3qarf3p9gx-glib-2.62.0/lib/libgobject-2.0.0.dylib is not a loadable module
--- stderr ---

** (/private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/tests/repository/gitestthrows:45714): WARNING **: 03:18:24.651: Failed to load shared library '/nix/store/sd92z32y7zqxkghxg65ibq3qarf3p9gx-glib-2.62.0/lib/libgobject-2.0.0.dylib' referenced by the typelib: /nix/store/sd92z32y7zqxkghxg65ibq3qarf3p9gx-glib-2.62.0/lib/libgobject-2.0.0.dylib is not a loadable module
-------

Full log written to /private/tmp/nix-build-gobject-introspection-1.60.2.drv-0/gobject-introspection-1.60.2/build/meson-logs/testlog.txt
FAILED: meson-test
/nix/store/zab5grgnf35bmwjjsl08lm9gfbqsjq05-meson-0.51.2/bin/meson test --no-rebuild --print-errorlogs
ninja: build stopped: subcommand failed.
builder for '/nix/store/22arx4i2kzpwj37x4qvr6v94qpzrf4xi-gobject-introspection-1.60.2.drv' failed with exit code 1
error: build of '/nix/store/22arx4i2kzpwj37x4qvr6v94qpzrf4xi-gobject-introspection-1.60.2.drv' failed

Expected behavior
Able to build gobject-introspection on Darwin

Additional context

Metadata

 - system: `"x86_64-darwin"`
 - host os: `Darwin 16.7.0, macOS 10.12.6`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.3`
 - channels(marsam): `"home-manager-path"`
 - channels(root): `""`
 - nixpkgs: `/Users/marsam/code/nix-config/nixpkgs`

Maintainer information:

# a list of nixpkgs attributes affected by the problem
attribute: gobject-introspection
# a list of nixos modules affected by the problem
module:

cc: @hedning

@marsam marsam added 0.kind: bug 6.topic: darwin Running or building packages on Darwin labels Oct 3, 2019
@hedning
Copy link
Contributor

hedning commented Oct 3, 2019

Looks like this upstream issue: glib 2.62.0 breaks loading dylibs as modules. It's fixed on master so we should probably pick the patches.

@worldofpeace
Copy link
Contributor

Our jobset needs to be building on the darwin platform if we don't want things breaking like this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: bug 6.topic: darwin Running or building packages on Darwin
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants