CocoaPods / CocoaPods-app

A full-featured and standalone installation of CocoaPods.
Other
1.23k stars 283 forks source link

Get the app building on 10.13 / Xcode 9.3 #401

Closed segiddins closed 5 years ago

segiddins commented 6 years ago

Builds on 10.13

orta commented 6 years ago

Trying this on a fresh clone, and I get a fail in compiling subversion related to apr

~/dev/projects/cocoapods/CocoaPods-app segiddins/high-sierra* 6m 17s
❯ rake app:prerequisites

[...]

cd tools/dev && /bin/sh /Users/orta/dev/projects/cocoapods/CocoaPods-app/workbench/subversion-1.8.13/libtool --tag=CC --silent --mode=link /usr/bin/clang -all-static -static  -Werror=unknown-warning-option -mmacosx-version-min=10.10 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk    -L/Users/orta/dev/projects/cocoapods/CocoaPods-app/destroot/dependencies/lib    -rpath /Users/orta/dev/projects/cocoapods/CocoaPods-app/destroot/bundle/lib  -o fsfs-reorg  fsfs-reorg.lo ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la -L/Users/orta/dev/projects/cocoapods/CocoaPods-app/destroot/dependencies/lib -lapr-1 -lpthread -framework CoreFoundation -framework Security -framework CoreServices
Undefined symbols for architecture x86_64:
  "_apr_file_info_get$INODE64", referenced from:
      _main in fsfs-access-map.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [tools/dev/fsfs-access-map] Error 1
make: *** Waiting for unfinished jobs....

Digging around now.

--

There is a --with-apr=[x] option to the configure part of svn, so I'm currently trying to figure out if I can match it to one we've compiled, e.g.

svn_tasks = SVNTasks.define do |t|
  t.url            = SVN_URL
  t.artefact_file  = 'subversion/svn/svn'
  t.installed_file = 'bin/svn'
  t.prefix         = BUNDLE_PREFIX
-  t.configure      = %w{ --disable-shared --enable-all-static --with-serf --without-apxs --without-jikes --without-swig } + ["CPPFLAGS=-I '#{DEPENDENCIES_PREFIX}/include/apr-1'"]  
+ t.configure      = %w{ --disable-shared --enable-all-static --with-serf --without-apxs --without-jikes --without-swig } + ["CPPFLAGS=-I '#{DEPENDENCIES_PREFIX}/include/apr-1'", "--with-apr=#{DEPENDENCIES_PREFIX}"]
  t.dependencies   = [installed_pkg_config, installed_serf, installed_libcurl]
end

Which doesn't end up making a difference in the end.

Is it possible you have apr installed globally, which the configure/install steps fall back to? Pretty sure that @alloy once said that it won't deploy unless all of these internal dependencies resolve from inside the destroot/workbench

segiddins commented 6 years ago

Dang, I’ll look into it

FullMetalFist commented 6 years ago

Got it compiling! First, to get past miniruby, I backtracked the Xcode CLI to version 8.3, does it work on 9.X for you?

screen shot 2018-05-12 at 12 23 23 pm

Next, @orta came over and he discovered that ruby/config.h because it uses header paths that refer to a specific version of Darwin

$ system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: macOS 10.12.6 (16G1314)
      Kernel Version: Darwin 16.7.0
      Boot Volume: Sun Wukong
      Boot Mode: Normal
      Computer Name: Michael’s MacBook Pro
      User Name: Michael Vilabrera (mvilabrera)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 42 days 4:00
screen shot 2018-05-12 at 12 16 29 pm

After that, we were able to compile successfully.

Can we make the header path a glob?

FullMetalFist commented 6 years ago

@orta says I don't have APR installed globally.

alloy commented 6 years ago

Is it possible you have apr installed globally, which the configure/install steps fall back to? Pretty sure that @alloy once said that it won't deploy unless all of these internal dependencies resolve from inside the destroot/workbench

It could also be possible that maybe apr is available globally now where it wasn’t previously?

Let me know if y’all want me to spend some time debugging too at some point or if you’re actively working through issues.

orta commented 6 years ago

I mean, travis works, but a fresh clone on my own computer now bails at a different point.

screen shot 2018-05-15 at 11 04 48 pm

That said, I'm happy to merge this, and we can put some effort into deploying on CI?

segiddins commented 6 years ago

Promise I haven’t forgotten this, just been swamped lately

amorde commented 6 years ago

Dang :( it builds on my local machine but I guess Travis doesn't like my changes

moonsmoon commented 5 years ago

D

segiddins commented 5 years ago

Oh wow, looks like this passed CI? WIll need to revert some of the debugging lines but if its building, let's get it merged?

amorde commented 5 years ago

Yeah, hopefully reverting the debug lines doesn't result in a failure 😂 if it passes then I'd say lets merge it

alloy commented 5 years ago

🚀 🤘