Greetings all,
I received the familiar "update downloaded" notification for TextMate, and installed it as per usual. Unfortunately it seems that it is only for 10.15+, as per the attached screenshot, and I'm running 10.14.6. I've downloaded 2.0.6 from https://macromates.com/download, but that's a long way behind the version I was recently using, and if I try upgrading it's instantly back at the version that won't run. Could somebody please let me know how to revert to something close to the previous (2.0.15?) version? Thanks very much,
Paul [image: tm_nogo.png]
I just ran into this issue too. 😔
The release notes don't say this version increments the required OS version. Perhaps the build was done incorrectly? https://github.com/textmate/textmate/blob/master/Applications/TextMate/about...
Quinn
On 05 Feb 2021 11:18:34, Paul McCann via TextMate wrote:
Greetings all,
I received the familiar "update downloaded" notification for TextMate, and installed it as per usual. Unfortunately it seems that it is only for 10.15+, as per the attached screenshot, and I'm running 10.14.6. I've downloaded 2.0.6 from https://macromates.com/download, but that's a long way behind the version I was recently using, and if I try upgrading it's instantly back at the version that won't run. Could somebody please let me know how to revert to something close to the previous (2.0.15?) version? Thanks very much,
I found the old versions have been kept on my disk:
sudo find / -iname 'textmate*' … ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0-rc.31.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.1.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.3.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.6.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.8.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.10.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.11.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.12.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.14.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.15.tbz ~/Library/Caches/com.macromates.TextMate/TextMate_2.0.16.tbz
Q
...and answering my own question (with apologies for the noise!): 2.0.15 is available from GitHub
https://github.com/textmate/textmate/releases/tag/v2.0.15
Regards, Paul
On Fri, Feb 5, 2021 at 11:18 AM Paul McCann pmccann@gmail.com wrote:
Greetings all,
I received the familiar "update downloaded" notification for TextMate, and installed it as per usual. Unfortunately it seems that it is only for 10.15+, as per the attached screenshot, and I'm running 10.14.6. I've downloaded 2.0.6 from https://macromates.com/download, but that's a long way behind the version I was recently using, and if I try upgrading it's instantly back at the version that won't run. Could somebody please let me know how to revert to something close to the previous (2.0.15?) version? Thanks very much,
Paul [image: tm_nogo.png]
On 5 Feb 2021, at 1:48, Paul McCann via TextMate wrote:
I received the familiar "update downloaded" notification for TextMate, and installed it as per usual. Unfortunately it seems that it is only for 10.15+
Thanks for the information and sorry about the inconvenience..
It was actually built for 10.12 and has `LSMinimumSystemVersion` set to 10.12.
But it is a universal build with support for M1, so perhaps something in that process made it implicitly require 10.15.
It’s not unusual that I can’t build for older versions of macOS, after updating Xcode/SDK, but most of the time, it manifests itself as crashes or linker errors (when running the build on older versions of macOS).
I will look into this later, and see if I can’t manage to get a build done that runs on 10.14 and earlier.
Why do people build TM? What am I missing? I have TM 2.0.6 an there is a check for updates menu item.
On Feb 4, 2021, at 20:20, Allan Odgaard via TextMate textmate@lists.macromates.com wrote:
On 5 Feb 2021, at 1:48, Paul McCann via TextMate wrote:
I received the familiar "update downloaded" notification for TextMate, and installed it as per usual. Unfortunately it seems that it is only for 10.15+
Thanks for the information and sorry about the inconvenience..
It was actually built for 10.12 and has LSMinimumSystemVersion set to 10.12.
But it is a universal build with support for M1, so perhaps something in that process made it implicitly require 10.15.
It’s not unusual that I can’t build for older versions of macOS, after updating Xcode/SDK, but most of the time, it manifests itself as crashes or linker errors (when running the build on older versions of macOS).
I will look into this later, and see if I can’t manage to get a build done that runs on 10.14 and earlier.
TextMate mailing list -- textmate@lists.macromates.com To unsubscribe send an email to textmate-leave@lists.macromates.com
Because they can?
el
On 2021-02-05 07:25 , Greg via TextMate wrote:
Why do people build TM? What am I missing? I have TM 2.0.6 an there is a check for updates menu item.
[...]
Allan Odgaard is the author of TextMate. He’s the one building the binary that your computer downloads when you check for updates. You know, the application needs to come from somewhere. It doesn’t just appear out of thin air, even though it can seem like that these days with computers and Internet ;)
On 5 Feb 2021, at 06:25, Greg via TextMate textmate@lists.macromates.com wrote:
Why do people build TM? What am I missing? I have TM 2.0.6 an there is a check for updates menu item.
On Feb 4, 2021, at 20:20, Allan Odgaard via TextMate <textmate@lists.macromates.com mailto:textmate@lists.macromates.com> wrote:
On 5 Feb 2021, at 1:48, Paul McCann via TextMate wrote:
I received the familiar "update downloaded" notification for TextMate, and installed it as per usual. Unfortunately it seems that it is only for 10.15+
Thanks for the information and sorry about the inconvenience..
It was actually built for 10.12 and has LSMinimumSystemVersion set to 10.12.
But it is a universal build with support for M1, so perhaps something in that process made it implicitly require 10.15.
It’s not unusual that I can’t build for older versions of macOS, after updating Xcode/SDK, but most of the time, it manifests itself as crashes or linker errors (when running the build on older versions of macOS).
I will look into this later, and see if I can’t manage to get a build done that runs on 10.14 and earlier.
TextMate mailing list -- textmate@lists.macromates.com mailto:textmate@lists.macromates.com To unsubscribe send an email to textmate-leave@lists.macromates.com mailto:textmate-leave@lists.macromates.com
TextMate mailing list -- textmate@lists.macromates.com To unsubscribe send an email to textmate-leave@lists.macromates.com
As an open source project, anyone that has a need to make their own build, for whatever reason including just for fun, of TM they can.
Some folks do it because they are fixing bugs and contributing to the project, so they need to run a build with their changes for testing and development.
Best, Farhan
On Feb 5, 2021, at 12:25 AM, Greg signin@knobby.ws wrote:
Why do people build TM? What am I missing? I have TM 2.0.6 an there is a check for updates menu item.
On Feb 4, 2021, at 20:20, Allan Odgaard via TextMate textmate@lists.macromates.com wrote:
On 5 Feb 2021, at 1:48, Paul McCann via TextMate wrote:
I received the familiar "update downloaded" notification for TextMate, and installed it as per usual. Unfortunately it seems that it is only for 10.15+
Thanks for the information and sorry about the inconvenience..
It was actually built for 10.12 and has LSMinimumSystemVersion set to 10.12.
But it is a universal build with support for M1, so perhaps something in that process made it implicitly require 10.15.
It’s not unusual that I can’t build for older versions of macOS, after updating Xcode/SDK, but most of the time, it manifests itself as crashes or linker errors (when running the build on older versions of macOS).
I will look into this later, and see if I can’t manage to get a build done that runs on 10.14 and earlier.
TextMate mailing list -- textmate@lists.macromates.com To unsubscribe send an email to textmate-leave@lists.macromates.com
On 5 Feb 2021, at 05:20, Allan Odgaard via TextMate textmate@lists.macromates.com wrote: Thanks for the information and sorry about the inconvenience..
It was actually built for 10.12 and has LSMinimumSystemVersion set to 10.12.
But it is a universal build with support for M1, so perhaps something in that process made it implicitly require 10.15.
Something definitely happened. If you look at the load commands of the binary (LC_BUILD_VERSION), you’ll set that it says:
minos 10.15 sdk 11.1
It’s not unusual that I can’t build for older versions of macOS, after updating Xcode/SDK, but most of the time, it manifests itself as crashes or linker errors (when running the build on older versions of macOS).
You can have multiple versions of Xcode installed side by side, if you still want to support older versions. But that would lead multiple binaries. Even though Xcode only allows me to select as far back as 10.9. Clang allows me to compile as far back as 10.4. Is there anything in the SDK that prevent you to target older versions? IIRC, you’re using Ninja and not Xcode to build?
I will look into this later, and see if I can’t manage to get a build done that runs on 10.14 and earlier.
I just created a Hello World GUI application in Xcode 12.4. I set the minimum target to 10.10 and targeting both Intel and Apple Silicon. The load commands (LC_VERSION_MIN_MACOSX) correctly show:
version 10.10 sdk 11.1
If I extract the ARM64 binary from the universal binary and look at the load commands (LC_BUILD_VERSION). It correctly shows:
minos 11.0 sdk 11.1
On 5 Feb 2021, at 7:47, Jacob Carlborg via TextMate wrote:
Something definitely happened. If you look at the load commands of the binary (LC_BUILD_VERSION), you’ll set that it says:
minos 10.15 sdk 11.1
Ah… I did not explicitly specify minimum OS version at link time, only at compile time. I have pushed a new build that should fix this.
Btw: What command/tool do you use to inspect this?
You can have multiple versions of Xcode installed side by side, if you still want to support older versions. But that would lead multiple binaries.
Yes, I have had to do that in the past, but when you use an old version of Xcode, you cannot use new features, for example, you need a fairly recent version to build for M1 macs.
Clang allows me to compile as far back as 10.4. Is there anything in the SDK that prevent you to target older versions?
Technically yes, you can build for 10.4. I have however run into some practical problems. Most recently TextMate would link against a (system) library that did not exist on older versions of macOS. I think it was a bug in the SDK. I also recently had a problem with the preferences window (and the cross-fade when switching between tabs), when building on 10.15 and running on 10.14, it would look broken, but building on 10.14 worked fine.
So some subtly changed AppKit behavior based on SDK version: In some cases this is expected, but generally behavior should remain the same on OS versions older than the SDK version, but it has not always been my experience.
IIRC, you’re using Ninja and not Xcode to build?
Correct, but I still call `clang` and friends via `xcrun`, so it produces the same build as Xcode would (given the same inputs and build options) and is also compatible with `xcode-select`.
On 5 Feb 2021, at 08:33, Allan Odgaard via TextMate textmate@lists.macromates.com wrote: Ah… I did not explicitly specify minimum OS version at link time, only at compile time. I have pushed a new build that should fix this.
Great that you found the issue. Are you using the `-mmacosx-version-min` flag or the `MACOSX_DEPLOYMENT_TARGET` environment variable? The environment variable is read both by the compiler and linker.
Btw: What command/tool do you use to inspect this?
otool -l <binary/object file>
You’re looking for two load commands: LC_BUILD_VERSION and LC_VERSION_MIN_MACOSX. Only one will be present in any given binary. Which one, depends on the minimum deployment versions the binary was compiled for.
For universal binaries it will by default look at the binary matching the native target. You can use `-arch` flag to specify which architecture you want to look at.
Perhaps you could add a sanity check that verifies that the specified deployment version matches what’s actually in the binary.
Yes, I have had to do that in the past, but when you use an old version of Xcode, you cannot use new features, for example, you need a fairly recent version to build for M1 macs.
Yeah, exactly.
Technically yes, you can build for 10.4. I have however run into some practical problems. Most recently TextMate would link against a (system) library that did not exist on older versions of macOS. I think it was a bug in the SDK. I also recently had a problem with the preferences window (and the cross-fade when switching between tabs), when building on 10.15 and running on 10.14, it would look broken, but building on 10.14 worked fine.
Aha, even when building using the same SDK as on 10.14?
So some subtly changed AppKit behavior based on SDK version: In some cases this is expected, but generally behavior should remain the same on OS versions older than the SDK version, but it has not always been my experience.
I see, that’s unfortunate. I’m not as familiar with the Apple specific libraries as with the Posix libraries.
I wonder what would happen if the binary did not have any of these load commands or if the version of the SDK was changed in the load command after the binary was built.
On 5 Feb 2021, at 9:38, Jacob Carlborg via TextMate wrote:
Are you using the `-mmacosx-version-min` flag or the `MACOSX_DEPLOYMENT_TARGET` environment variable? The environment variable is read both by the compiler and linker.
I am using the command line option, which is why it was accidentally omitted from linker flags (as I overhauled the build system recently).
Avoiding environment variables is better for dependency tracking: In theory, every single build step depends on its environment, so ninja does not automatically inherit the full environment, as any change to any variable would then effectively cause a full rebuild.
Aha, even when building using the same SDK as on 10.14?
I assume I could have copied the SDK from Xcode on 10.14 to 10.15 and then used it via `-isysroot`, I did not test that.
I see, that’s unfortunate. I’m not as familiar with the Apple specific libraries as with the Posix libraries.
POSIX is very good at documenting edge cases, when a function will fail, what kind of errors will be reported, and is a stable API that doesn’t see much change.
Can’t really say the same about Apple’s libraries/frameworks ;)
Hi Allan,
Ah… I did not explicitly specify minimum OS version at link time, only at compile time. I have pushed a new build that should fix this.
Just a quick confirmation that the new build of 2.0.17 launches and seems to function perfectly under 10.14.6. Thanks a million for the quick fix!
Best wishes, Paul