amaxwell / tlutility

TeX Live Utility, a Mac OS GUI for the TeX Live Manager
http://amaxwell.github.io/tlutility/
BSD 3-Clause "New" or "Revised" License
307 stars 17 forks source link

update check agent should be automatically upgraded to the latest version #60

Closed Jmuccigr closed 6 years ago

Jmuccigr commented 6 years ago

Just saw this in Console for today, no older entries. TeX Live was updated two days ago:

update_check.py: no tlmgr path set; TeX Live update check will not proceed

On High Sierra.

amaxwell commented 6 years ago

From a quick look at the code, I'd guess that you didn't install MacTeX, but installed via the TL shell script? If you set the path to tlmgr (normally /Library/TeX/texbin) in TLU's preferences, the update checker should pick that up and use it. If TLU itself is working, then we have a problem.

You could try this in Terminal and let me know what it prints out. It should all be on a single line:

python -c 'from CoreFoundation import CFPreferencesCopyAppValue; print(CFPreferencesCopyAppValue("TLMTexBinPathPreferenceKey", "com.googlecode.mactlmgr.tlu"))'

(typed in Mail, untested as I don't have a Mac handy)

Jmuccigr commented 6 years ago

It outputs None. I ran the python script from the command line after I saw the less informative output in Console.

And I installed via the download at tug.org.

amaxwell commented 6 years ago

Does /Library/TeX/texbin exist? It should, if you installed via the MacTeX route. If it does, open up TLU's Preferences window and manually set "TeX programs" to /Library/TeX/texbin. After you quit TLU, that python one-liner should return the correct value (eventually; Apple broke the preferences system pretty badly). It works for me on High Sierra, at least.

You can also run ~/Library/Application\ Support/TeX\ Live\ Utility/update_check.py directly from Terminal for testing. The notification isn't working for me today, but that's a separate problem from the one you're seeing.

Jmuccigr commented 6 years ago

Yes, that path exists and it's what's already in the TLU prefs. The update_check.pl yields the same thing it did when I ran it above. :-)

amaxwell commented 6 years ago

In that case, I have no idea what's going on, unless you're not using Apple's Python? Try defaults read com.googlecode.mactlmgr.tlu TLMTexBinPathPreferenceKey and see if the key exists.

Jmuccigr commented 6 years ago

The domain/default pair of (com.googlecode.mactlmgr.tlu, TLMTexBinPathPreferenceKey) does not exist

I do have python installed via homebrew, so I wonder if that's it.

amaxwell commented 6 years ago

The actual python script uses /usr/bin/python to avoid that, but the one-liner will use whatever was in your path. It's a moot point since . It's more concerning that your preferences aren't being stored, which is one of the bugs in Apple's rewrite to make Mac OS like iOS. A reboot might fix that.

Here's another thought: check ~/Library/Application\ Support/TeX\ Live\ Utility/update_check.py to see if line 161 and following is this:

    # if this hasn't been set, try the default path
    texbin_path = CFPreferencesCopyAppValue("TLMTexBinPathPreferenceKey", bundle_id)
    if texbin_path == None:
        if os.path.exists("/usr/texbin"):
            texbin_path = "/usr/texbin"
        elif os.path.exists("/Library/TeX/texbin"):
            texbin_path = "/Library/TeX/texbin"

    if texbin_path == None:
        log_message("no tlmgr path set; TeX Live update check will not proceed")
        return 1
Jmuccigr commented 6 years ago

No, 163-164 is this:

    if texbin_path == None and os.path.exists("/usr/texbin"):
        texbin_path = "/usr/texbin"

If I replace it, I now get a real response "TeX Live 2017 is frozen..." and I just got a system notification about upgrades being available.

amaxwell commented 6 years ago

That script should've been upgraded in 2016, so apparently the code that does that has been broken for two years. Sorry about that, and thanks for the help in figuring it out! I'll get that fixed before TL 2018 is released.

The "TL is frozen" message is correct if you have TL 2017 installed, although you may have a final batch of updates for it. If you have the 2018 pretest installed, then we're facing the problem with Apple's preferences system being broken, and I can't do anything about that.

Jmuccigr commented 6 years ago

Nope, I'm in 2017. Thanks for all the help.

amaxwell commented 6 years ago

Reopening as a reminder to myself to fix this

amaxwell commented 6 years ago

Fix checked in.