One of the slight annoyances with using weechat on OSX is that the Homebrew version is still 3.8 or so. I have multiple systems, with weechat on all of them, and OSX is the outlier in being outdated.
The #weechat channel on libera was horribly useful, and got everything straightened out, with first updating to 4.0.4, and then fixing a problem with scripts. I’m writing up what I did here, so it’s easily searchable.
First, the upgrade to 4.0.4. It’s important to know that while I did all this, I didn’t originate any of it. I can’t claim credit, and don’t. I was doing things that others suggested. (The users in question were trygveaa and R2robot; I don’t know them outside of those names.)
The first thing I did was run brew edit weechat
, to edit the weechat recipe file for Homebrew. The values I needed to change were the url and hash values for the downloaded file; they’re lines 4 and 5 for me, and this is what I changed them to:
url "https://weechat.org/files/src/weechat-4.0.4.tar.xz" sha256 "ae5f4979b5ada0339b84e741d5f7e481ee91e3fecd40a09907b64751829eb6f6"
After that, it’s a simple matter of running:
brew reinstall -s weechat
… which should download weechat from source (and thus get 4.0.4) and install it from there.
Now, running weechat
gives me 4.0.4; that’s one problem down!
~ > weechat -v
4.0.4
~ >
The other problem was that /script
didn’t work; it would tell me it was trying to download the scripts from an external server, and… that’s it. No progress. No scripts window, no nothing. That’s suboptimal, because there are a few scripts I find highly useful.
I got it working by setting an environment variable. I actually tried two of them, but only one turned out to be significant:
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
With that set, /script
downloaded the list of scripts, and I could install, autoload, et cetera. I had also tried setting WEECHAT_HOME
to a different location (also a suggestion), and that worked as long as I had the fork safety disabled – and removing WEECHAT_HOME
left my configuration where it was “supposed to be” (the default) and /script
still worked, so the OBJC_DISABLE_INITIALIZE_FORK_SAFETY
is what made the difference.