![]() |
MacOS ActiveState TCL 8.6.x and Sigil issue
Something has changed on the ActiveState side of things. I'm not certain why there's no longer an 8.6.x download for mac.
EDIT: drastic changes at ActiveState apparently. All community editions have been phased out. we'll probably need to update our Sigil documentation for Macs that describe how to get ActiveTcl 8.6.x. |
Wow! ActiveState seems to be making even a bigger money grab! So sad ...
I will download and build the latest TCL/TK 8.6.12 from source for macOS and try to wrap an installer around it and either wrap an installer around or try to include it with the embedded python builds somehow. I never understood why Python did not include it like it does for Windows. |
Quote:
Quote:
|
I hope so.
Until then I have grabbed tcl8.6.12 and tk8.6.12 and build static library versions and will try to make the Python 3.8.3 version use those when building its tkinter. I really hate to embed the entire tcl tk framework when it is not really needed. Let's hope this all goes away in Python 3.9.8. I will grab the source and take a look. Quote:
|
Well the Tk TCL sources are not part of the Python-3.9.8 source releases and I see nothing in configure or setup.py to actually grab and install them.
That said, according to python.org you see: Quote:
|
It's in the 'Mac' folder of the 3.9.8 source. Much like on Windows, the 'build_install.py' script downloads 3rd-party library sources and builds them. From the readme.rst file in the Mac/BuildScript folder:
- builds the following third-party libraries * OpenSSL 1.1.1 * Tcl/Tk 8.6 * NCurses * SQLite * XZ * libffi I'm hoping you'll be able apply any necessary patches, then build and install to $DESTROOT @Doitsu: sorry for the mess, I'll clean up your plugin thread when we're done, here. |
Okay, I took a peek at it and did see where it builds tcktk things but it does not apply the required patches to make both xz and openssl work properly back to mac OS 10.12 when built on later macOS versions.
And it hard codes the location of tk tck which makes a completely relocatable Python framework a bit of a stickler to produce. I am going to have to spend some time recreating how to make a Python 3.9 build that is relocatable (or 3.10). I should probably do it for whichever version of Python we plan on moving to. Since 3.10.0 just came out, I am thinking 3.9.8 as the next version of Python for the next Sigil build. Are you okay moving to Python 3.9.8 on Windows? If not, I can try to backport the changes and make a Python 3.8.3 with the latest tk and tcl embedded in it. Or we can update to the latest version of Python 3.8 and try. Just let me know if 3.9.8, 3.8.3, or 3.8.X would be best for Windows and I will take a stab at building it on macOS. |
I've built a Windows version of Python 3.9.x and successfully built Sigil with it (I've also used a stock Python.org 3.9.x successfully), but I've not tested it all that heavily for any subtle problems. But sans any huge issues that I might encounter, I've no problem with moving to 3.9.8. The main thing I have to keep in mind for Windows is PyQt/Qt/Python/Python module compatibility. That "magic" intersection where everything will play nice together. ;)
I just have to avoid making Python 3.9.8 any kind of hard minimum, so that I don't leave a bunch of *nix distros in the dust. |
Windows Python 3.9 will stay compatible with my existing Windows PyQt5/Qt 5.12.x binaries, so that would probably be the path of least resistance for now.
I'm not ready to lose WebEngine support for even more graphics-cards in still-fairly-recent systems by moving to Qt5.15. I understand that move would leave even some relatively new-ish macOS versions in the lurch, no? EDIT: actually, 3.9.x will put me in a bit of a bind with the PyQt5-sip module. If I can build a compatible version myself, it won't be a problem for my Sigil Windows installers, but it might leave me needing to rethink Windows continuous integration for Sigil a bit. |
No problems I can stick with Python 3.8.3 easily enough if necessary. Just let me know.
|
If I already have ActiveTcl 8.6.9 installed (and also have 8.6.9 installer saved), is it safe to update to macOS Monterey? or is Monterey incompatible with Sigil 1.8.0 and plugins that require ActiveTcl 8.6.x? Thank you
Quote:
Quote:
|
I would guess you'd be OK, but I wouldn't bet the farm on it. It probably depends on whether the ActiveState installer (or the program it installs) has any "phone home" capabilities. Kevin may have more info on that front (plus I'd recommend deferring to him on all things, MacOS anyway).
|
Also keep in mind that I *think* you could still get (and legally use) the newest versions of Tk/TCL free for personal use (though I don't know how many machines you could activate it for simultaneously). You'd just need to create a free personal account and install it using their Active Platform software to get the latest versions.
|
It should work just fine.
I always build the latest opensource version of tcl tk and install it via the build process instead of the ActiveState version. It is free to use with no limits. It just does not cone with the ActiveState "extras" but Sigil does not need them anyway. You could also install tcl and tk via HomeBrew as well. I am also going to try to build a macOS installer .pkg for the opensource tcl/tk Frameworks and I will post it when I get something working. Quote:
|
Thank you! I'm still on the fence about updating to Monterey. I'm currently using Catalina.
KevinH, what version macOS do you prefer nowadays, especially for Sigil? |
I have to keep an older version around to properly build projects to keep things working back to 10.12 so my main dev machine runs Mojave but it is a 2013 iMac.
My 2020 MacBookPro laptop runs Catalina. Neither Big Sur nor Monterey added anything much over Catalina that I would find compelling to do an upgrade. And I never update my machines until well into or even near the end of the next release cycle when I do decide to update. So BigSur would be my choice over Monterey anyway. Apple creating a new OS release once each year and only supporting the last 3 with updates is true madness on Apple's part. I try not to support such nonsense which is why Sigil works back to 10.12 Sierra (and it only came out in 2016!). Quote:
|
Quote:
Quote:
|
Quote:
|
I have built a TclTk v 8.6.12 from latest sources. It is a dmg file that when mounted provides a TclTk-8.6.12.pkg installer.
It is not-signed as I do not have a installer pkg signing privs, since Sigil has never needed a .pkg installer. If you have a machine without an ActiveState ActiveTCL installed, please give it a try. It appears to work on my machine with Sigil just fine. I posted the TclTk_8.6.12.dmg to our github Sigil 1.8.0 Releases page. |
1 Attachment(s)
Quote:
At some point ActiveState required me to register for a free account to download ActiveTcl from their website, which I did. The website then gave me a dashboard and words like project and builds and forking, which I don't really understand. Now when I log in, I see a dashboard with two options: Attachment 190260 If I click on the second choice, I am offered ActiveTcl-8.6.9.8609.2-macosx... If I go to the Overview tab and click View All Available Builds I get the same thing. Ditto if I click the Download Builds tab. I'm not sure about command line tools and it's entirely possible that I'm missing a whole other developer section that I don't understand :o |
Quote:
I downloaded TclTk_8.6.12.dmg from GitHub Sigil 1.8.0 Release page and copied it to Desktop. I opened the installer, agreed to license terms, clicked Install, only to get: "This package is incompatible with this version of macOS. The package is trying to install content to the system volume. Contact the software manufacturer for assistance." I am running Catalina 10.15.7. Is this happening because I already have 8.6.9 installed? (I'm kinda nervous about uninstalling 8.6.9 since everything is currently working.) ETA: Not sure if this adds any other useful information, but I launched ActiveState's ActiveTcl 8.6.9.8609.2 installer to see what would happen. The first pop-up window I get says: "This package will run a program to determine if the software can be installed". When I click Continue, a second pop-up says: "An existing installation has been found on your system. Another non-system installation of Tcl exists on this system in /Library/Frameworks/Tcl.framework. Please consider uninstalling it before proceeding with the current installation." I stopped there. |
Hmm ... I think this is because of macOS settings you have that do not allow for unsigned packages. My TclTk puts things in the proper /Library/Frameworks location just like the ActiveState one but it is unsigned. It appears to work on Mojave. Perhaps Catalina locks things down further?
|
Quote:
I think the bottom line, here is that ActiveState has really jumped the shark on this change. ;) |
Hi Odamizu,
Okay I was able to reproduce the exact issue you are seeing on my own Catalina based laptop. It seems for Catalina and later you need to build the pkg with pkgbuild command with --install-location set otherwise it thinks your package is tryting to be installed someplace it should not be even if it is not. So I have rebuilt the TclTk_8.6.12.dmg installer to use pkgbuild and that extra command line setting. I have now tested installing the new TclTk_8.6.12.pkg on my Catalina laptop and it properly installed things to where they belong. So please try regrabbing TclTk_8.6.12.dmg from Sigil 1.8 releases page and giving it a go. It should install just fine as it is an upgrade of what ActiveState put there. If not, I can lead you through fixing things manually. Hope this does the trick. KevinH Quote:
|
Quote:
|
Great news! Thank you for testing it!
|
Quote:
It's OK under macOS Monterey. I tried to uninstall Sigil-Kindlegen-TclTk 8.5 first, but I had to left TclTk, as the script provided by Active pointed to different locations to those indicated in the log (¿?) that the installation script left in the user root (AT.postflight.1166): Has /Library/Tcl/teapot = 0 HOME______ = /Users/**** USER______ = **** pkgdir____ = /Volumes/ActiveTcl-8.5/ActiveTcl-8.5.pkg installdir = / repository = /Library/Tcl/teapot shell_____ = /usr/local/bin/tclsh8.5 Having a seed repository. No existing repository, copying the seed to the repository-to-be at /Library/Tcl/teapot /usr/local/bin/teacup link make /Library/Tcl/teapot /usr/local/bin/tclsh8.5 Ok /usr/local/bin/teacup default /Library/Tcl/teapot /Library/Tcl/teapot Forcing ownership of /Users/geum/Library/Application Support/ActiveState to geum ___done So, I've installed again Sigil & KindleGen (last versions) and the non ActiveState package made by KevinH and, bingo! Everything is as it should. Well, no: if I set the compression level to 2 in the plugin interface, there is no output, as it was in my previous installation under macOS High Sierra. Again, thank you! |
| All times are GMT -4. The time now is 08:27 PM. |
Powered by: vBulletin
Copyright ©2000 - 3.8.5, Jelsoft Enterprises Ltd.
MobileRead.com is a privately owned, operated and funded community.