[MDBF-48] Merge macOS .pkg scripts and add to buildbot Created: 2017-06-19  Updated: 2022-02-17

Status: Open
Project: MariaDB Foundation Development
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Kolbe Kegel (Inactive) Assignee: Vlad Bogolin
Resolution: Unresolved Votes: 0
Labels: buildbot, foundation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
PartOf
includes MDBF-171 macOS pkg re-creation on older macOS ... Closed
includes MDBF-173 Gnutls missing from macOS pkg Open
includes MDBF-342 Add macOS builder to buildbot Closed
is part of MDBF-41 Milestone 5: Desirable fixes Open
is part of MDEV-9180 Provide macOS packages for download a... Open
Relates
relates to MDEV-15139 Wrong mysql binary in Mac OS distribu... Open

 Description   

This task has a few parts:

  1. Create builder in buildbot to build the macOS .pkg package
  2. Test building macOS .pkg from macOSpkg-pr branch
  3. Merge macOSpkg-pr branch to mainline
  4. Add .pkg builds to standard buildbot
  5. Add .pkg packages to server release process


 Comments   
Comment by Daniel Bartholomew [ 2017-06-30 ]
  • installed custom-built gnutls on mac-1012 builder
  • Added builder to buildbot

Still need to run tests from macOSpkg-pr branch, will do that next.

Comment by Kolbe Kegel (Inactive) [ 2017-06-30 ]

Note that my recommended CMake line won't package tests at all (to save space). If you want to run them, which is probably not a bad idea, I suppose you'll need to keep them in with CMake and then remove them some other way before building the .pkg?

Comment by Kolbe Kegel (Inactive) [ 2017-09-15 ]

dbart have you made any progress on this?

Comment by Daniel Bartholomew [ 2017-09-30 ]

Status update.

The merge hasn't happened yet, so I did a workaround and finally got a successful build on 10.0 and 10.1:

kolbe: Can you test the packages to verify that they are built correctly?

10.2 builds are still failing:

kolbe: I assume you're the one working on getting your macOSpkg dir and scripts merged into mainline?

Comment by Kolbe Kegel (Inactive) [ 2017-10-06 ]

We only need to do 10.2 builds, actually — we're not distributing the macOS package for 10.0 or 10.1.

There were a couple different RocksDB build problems for 10.2.9 (MDEV-13928, MDEV-13974). Hopefully those will be fixed for 10.2.10.

I am not sure exactly what is causing the problem related to GnuTLS and libmariadb, unfortunately. I can reproduce that locally after upgrading GnuTLS to 3.5.15, but it doesn't happen with an older build of GnuTLS 3.4.17. For reference, here's the issue:

[ 75%] Linking C shared library libmariadb.dylib
Undefined symbols for architecture x86_64:
  "_UC_CATEGORY_Cc", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Ll", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Lm", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Lo", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Lt", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Lu", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Mc", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Me", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Mn", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Nd", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Nl", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_No", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Pc", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Pd", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Pe", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Pf", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Pi", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Po", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Ps", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Sc", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Sk", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Sm", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_So", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_UC_CATEGORY_Zs", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_u16_normalize", referenced from:
      __gnutls_utf8_to_ucs2 in libgnutls.a(str-iconv.o)
  "_u16_to_u8", referenced from:
      __gnutls_ucs2_to_utf8 in libgnutls.a(str-iconv.o)
  "_u32_normalize", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_u32_to_u8", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_u8_check", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_u8_to_u16", referenced from:
      __gnutls_utf8_to_ucs2 in libgnutls.a(str-iconv.o)
  "_u8_to_u32", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_uc_general_category_and_not", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_uc_general_category_or", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_uc_is_general_category", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_uc_is_property_default_ignorable_code_point", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_uc_is_property_join_control", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_uc_is_property_not_a_character", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_uninorm_nfc", referenced from:
      __gnutls_utf8_to_ucs2 in libgnutls.a(str-iconv.o)
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
  "_uninorm_nfkc", referenced from:
      _gnutls_utf8_password_normalize in libgnutls.a(str-unicode.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Comment by Kolbe Kegel (Inactive) [ 2017-10-06 ]

Alright, looks like this is a simple issue of GnuTLS adding a dependency on another library to do some Unicode stuff. The solution is to link to /usr/local/lib/libunistring.a in addition to the growing list of other libraries.

-
DGNUTLS_LIBRARY="/usr/local/lib/libgnutls.a;/usr/local/lib/libnettle.a;/usr/local/lib/libtasn1.a;/usr/local/lib/libgmp.a;/usr/local/lib/libhogweed.a;/usr/local/lib/libunistring.a"

Comment by Daniel Bartholomew [ 2017-10-11 ]

I've updated the -DGNUTLS_LIBRARY line in the builder config. Now just need to wait and see how the next 10.2 build goes.

Comment by Daniel Bartholomew [ 2017-10-12 ]

Still failing with '/usr/local/lib/libunistring.a' added:
http://buildbot.askmonty.org/buildbot/builders/mac-1012-pkg/builds/581/steps/compile/logs/stdio

Comment by Daniel Bartholomew [ 2020-02-18 ]

Nothing to report on this as I don't know what needs to be done. We need someone with MacOS packaging experience to take this and fix.

Comment by Julien Fritsch [ 2020-02-18 ]

abychko are you the one?

Comment by Alexey Bychko (Inactive) [ 2020-02-19 ]

I can prepare a patch, but need to have MacOS buildable first

Comment by Alexey Bychko (Inactive) [ 2020-02-26 ]

the link from description doesn't work, 404. please point me to the source to merge.
julien.fritsch ^^^

Generated at Thu Feb 08 03:35:04 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.