Opened 8 years ago

Closed 7 years ago

Last modified 7 years ago

#51983 closed defect (fixed)

iTerm2 upgrade fails

Reported by: watsodw Owned by: markemer (Mark Anderson)
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: mountainlion mavericks yosemite Cc: Schamschula (Marius Schamschula), myint (Steven Myint), EJFielding (Eric Fielding)
Port: iTerm2

Description

Please see log.

Attachments (1)

main.log (152.0 KB) - added by watsodw 8 years ago.

Download all attachments as: .zip

Change History (14)

Changed 8 years ago by watsodw

Attachment: main.log added

comment:1 Changed 8 years ago by mf2k (Frank Schima)

Cc: emer@… removed
Owner: changed from macports-tickets@… to emer@…
Port: iTerm2 added; iterm2 removed

comment:2 Changed 8 years ago by Schamschula (Marius Schamschula)

Cc: mps@… added

Cc Me!

comment:3 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: mountainlion mavericks yosemite added

As I mentioned in comment:ticket:47965:10, iTerm2 @3.0.5 requires OS X 10.11 El Capitan or later to build. Your log shows you're on OS X 10.10 Yosemite. Since iTerm2 runs on OS X 10.8 and later, it's my hope that somehow it can be made to build on 10.8 and later as well, but I don't know how.

comment:4 Changed 8 years ago by markemer (Mark Anderson)

I really don't see a way around this. Maybe we can build a clang on 10.8 that will build iterm2? That path seems fraught with danger. Maybe we only allow source builds on 10.11 and higher, and keep a binary for 10.11-10.8.

comment:5 Changed 8 years ago by myint (Steven Myint)

Cc: general@… added

Cc Me!

comment:6 in reply to:  4 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: EJFielding added

Replying to markemer:

Maybe we can build a clang on 10.8 that will build iterm2?

I don't know that the compiler capabilities are the problem. It might be a requirement for the 10.11 or newer SDK.

If it is a compiler requirement, we have no way to use a MacPorts-provided compiler with xcodebuild (#40762), which is what iTerm2 builds with.

Has duplicate #53130.

comment:7 Changed 7 years ago by EJFielding (Eric Fielding)

I looked again at what I have already installed on my OS X 10.10.5 machine, and I have iTerm2 @3.0.5_0, so it seems the build of 3.0.5 was configured to run on 10.10. Maybe I got a 3.0.5 binary some time ago that was built on 10.11?

comment:8 Changed 7 years ago by myint (Steven Myint)

By the way, iTerm2 now (3.0.13) requires 10.12 to build. On 10.11, I get:

CompileC build/iTerm2.build/Default/iTerm2Shared.build/Objects-normal/x86_64/PTYWindow.o sources/PTYWindow.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    cd /tmp/iTerm2
    export LANG=en_US.US-ASCII
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch x86_64 -fmessage-length=156 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/var/folders/np/bmcfccrd3996nvvrxrht818r0000gn/C/org.llvm.clang/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-shorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DNS_BLOCK_ASSERTIONS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -mmacosx-version-min=10.9 -g -Wno-sign-conversion -iquote /tmp/iTerm2/build/iTerm2.build/Default/iTerm2Shared.build/iTerm2Shared-generated-files.hmap -I/tmp/iTerm2/build/iTerm2.build/Default/iTerm2Shared.build/iTerm2Shared-own-target-headers.hmap -I/tmp/iTerm2/build/iTerm2.build/Default/iTerm2Shared.build/iTerm2Shared-all-target-headers.hmap -iquote /tmp/iTerm2/build/iTerm2.build/Default/iTerm2Shared.build/iTerm2Shared-project-headers.hmap -I/tmp/iTerm2/build/Default/include -I/tmp/iTerm2/build/iTerm2.build/Default/iTerm2Shared.build/DerivedSources/x86_64 -I/tmp/iTerm2/build/iTerm2.build/Default/iTerm2Shared.build/DerivedSources -Wall -F/tmp/iTerm2/build/Default -F/tmp/iTerm2 -F/tmp/iTerm2/ColorPicker -F/tmp/iTerm2/ThirdParty -include /var/folders/np/bmcfccrd3996nvvrxrht818r0000gn/C/com.apple.DeveloperTools/7.3.1-7D1014/Xcode/SharedPrecompiledHeaders/iTerm2-cdsvnqusejvsafdgqekplpsmulwc/iTerm2.pch -MMD -MT dependencies -MF /tmp/iTerm2/build/iTerm2.build/Default/iTerm2Shared.build/Objects-normal/x86_64/PTYWindow.d --serialize-diagnostics /tmp/iTerm2/build/iTerm2.build/Default/iTerm2Shared.build/Objects-normal/x86_64/PTYWindow.dia -c /tmp/iTerm2/sources/PTYWindow.m -o /tmp/iTerm2/build/iTerm2.build/Default/iTerm2Shared.build/Objects-normal/x86_64/PTYWindow.o
In file included from /tmp/iTerm2/sources/PTYWindow.m:43:
/tmp/iTerm2/sources/iTermWindowImpl.m:30:38: error: expected a type
                          styleMask:(NSWindowStyleMask)aStyle
                                     ^
/tmp/iTerm2/sources/iTermWindowImpl.m:35:39: warning: incompatible pointer to integer conversion sending 'id' to parameter of type 'NSUInteger'
      (aka 'unsigned long') [-Wint-conversion]
                            styleMask:aStyle
                                      ^~~~~~

comment:9 Changed 7 years ago by markemer (Mark Anderson)

Unless we can build binaries for 10.8-10.11, I think I might have to mark this as 10.12 only. Which sucks. Anyone have any ideas?

comment:10 Changed 7 years ago by EJFielding (Eric Fielding)

Seems like it would be better to mark the new version as 10.12 only to avoid the rest of us having the frustration of having MacPorts downloading the upgrade and having it fail to build on our machines. I don't mind sticking with the @3.0.5 until I do the full OS upgrade.

comment:11 Changed 7 years ago by mojca (Mojca Miklavec)

If the port requires a newer SDK, then the "best" you can do is probably to install and older version of iTerm2 on older OSes. You can keep the same Portfile and only change the version and checksums based on OS version in some if-else statements. It requires more maintenance effort, but for some port it might be worth it. Depends.

comment:12 Changed 7 years ago by markemer (Mark Anderson)

Resolution: fixed
Status: newclosed

In 3975f0a5/macports-ports:

iTerm2: To only build to 10.11 and 10.12 with Xcode 8+

Fixes #51983

comment:13 in reply to:  12 Changed 7 years ago by EJFielding (Eric Fielding)

With MacPorts 2.4.0, I now get this error on my 10.10 system:

--->  Fetching distfiles for iTerm2
Error: iTerm2 @3.0.13 requires OS X 10.11 or newer
Error: Failed to fetch iTerm2: unsupported Mac OS X version

This is good that it gives the warning right away and doesn't go off and try to download and build the @3.0.13 version, but it is still considered an error by MacPorts. I have to use "sudo port upgrade outdated and not iTerm2" same as before the fix. Maybe this is the expected behavior.

Replying to markemer:

In 3975f0a5/macports-ports:

iTerm2: To only build to 10.11 and 10.12 with Xcode 8+

Fixes #51983

Note: See TracTickets for help on using tickets.