Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pandoc failing to run filters on Mac OS 10.13 #6622

Closed
samfearn opened this issue Aug 19, 2020 · 20 comments
Closed

Pandoc failing to run filters on Mac OS 10.13 #6622

samfearn opened this issue Aug 19, 2020 · 20 comments

Comments

@samfearn
Copy link

samfearn commented Aug 19, 2020

I've written a couple of filters which I've shared with some colleagues. The filters run fine on my machine (Mac OS 10.15), and I had a colleague test them on their machine too. However, one colleague is now reporting problems running pandoc with the config file I gave them. They get the following error:

dyld: lazy symbol binding failed: Symbol not found: ____chkstk_darwin 
  Referenced from: /usr/local/bin/pandoc (which was built for Mac OS X 
10.15) 
  Expected in: /usr/lib/libSystem.B.dylib 

dyld: Symbol not found: ____chkstk_darwin 
  Referenced from: /usr/local/bin/pandoc (which was built for Mac OS X 
10.15) 
  Expected in: /usr/lib/libSystem.B.dylib 

Abort trap: 6 

Modifying the config .yaml file I gave them, we've tracked the problem down to the use of the lua filters I wrote. If we remove the filters: ... definition in the .yaml defaults file, the error doesn't occur.

Has anyone else come across this problem? Does anyone have any suggestions?

Edit: FWIW, I'm running pandoc version 2.10 and they're running version 2.10.1.

@tarleb
Copy link
Collaborator

tarleb commented Aug 19, 2020

Can you check if the error occurs for all Lua filters? Does it fail for a filter file which just contains print 'Hello!', or even an empty file?

It would also be important to know which method you and you colleague used to install pandoc, i.e., whether you installed via brew or downloaded the installer from the "releases" site.

@samfearn
Copy link
Author

samfearn commented Aug 19, 2020

I've contacted my colleague to ask him to check. My config .yaml was loading four lua filters, and I already got him to check each one individually, and it failed with any one of these. But I didn't test a blank filter, or one with only a print statement, so I'll get him to try that too and report back.

@samfearn
Copy link
Author

He installed pandoc via the installer from the 'releases' site. It fails for any filter, even a single print statement or an empty file.

pandoc -L filters/empty.lua test.tex -o file.html
dyld: lazy symbol binding failed: Symbol not found: ____chkstk_darwin
  Referenced from: /usr/local/bin/pandoc (which was built for Mac OS X 10.15)
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: ____chkstk_darwin
  Referenced from: /usr/local/bin/pandoc (which was built for Mac OS X 10.15)
  Expected in: /usr/lib/libSystem.B.dylib

Abort trap: 6

@jgm
Copy link
Owner

jgm commented Aug 21, 2020

It would be helpful if others with macOS versions < 10.15 could confirm this. Does the same happen with 10.14?

I don't think fully static builds are possible for macOS.

Currently we build on 10.15 (see .github/workflows/release-candidate.yml); GitHub actions doesn't have other options at the moment. But worth exploring whether there are compiler flags that we might use to increase compatibility.

@ickc
Copy link
Contributor

ickc commented Aug 22, 2020

Travis CI supports many older macOS versions so may be worth considering to add it back to run concurrently: https://docs.travis-ci.com/user/reference/osx/

@jjallaire
Copy link

I am seeing the same issue with pandoc 2.9.2.1 on MacOS 10.12.

I am not seeing the issue on MacOS 10.14.

@jgm
Copy link
Owner

jgm commented Aug 25, 2020

If I'm understanding correctly, if we could build on macOS 10.13, the binary would work on all versions including 10.15. This seems like the thing to do, then. It's unfortunate that GitHub does not provide this, and has no plans to, so maybe we do need to explore building on Travis again, at least for releases.

@jgm
Copy link
Owner

jgm commented Aug 25, 2020

I'm looking into this.

@jgm
Copy link
Owner

jgm commented Aug 26, 2020

I have a Travis build that succeeded (travis branch).
One serious problem is that the allotted time (50 minutes) is not enough for the build to complete. I had to manually edit the build to stop part way and cache, then edit it and run it again before the whole thing would complete. That's going to be a pain.

I also haven't added what's needed for artifacts to be uploaded -- you need to use an S3 bucket, which also adds complexity.

@jjallaire
Copy link

RStudio could make a monthly donation that would cover the cost of a Travis CI plan that would have unlimited build minutes (https://travis-ci.com/plans). We could do that either via the PayPal mechanism on the home page or we could increase our donation at https://github.com/sponsors/jgm. Would you be open to that?

jgm added a commit that referenced this issue Aug 28, 2020
We need to build the release candidate on Travis rather
than GitHub actions, because GH has macos 10.15, and
binaries compiled on that OS will not work with 10.13.
See #6622.

This build is only triggered on rc/ branches.
jgm added a commit that referenced this issue Aug 28, 2020
We need to build the release candidate on Travis rather
than GitHub actions, because GH has macos 10.15, and
binaries compiled on that OS will not work with 10.13.
See #6622.

This build is only triggered on rc/ branches.
@ryangray
Copy link

I'm also seeing this with code blocks or spans with a language spec (back to at least 2.8.1). Only specifying attributes or unknown language names (I assume these are taken as plain class names) works fine.

`a = b+c;`{.c}

@jgm
Copy link
Owner

jgm commented Aug 28, 2020

I've uploaded new versions of the 2.10.1 release packages for macOS (over in Releases).
Could you test these? They are compiled on a travis machine running macOS 10.13 (I believe).

@samfearn
Copy link
Author

Hi John,

I’ve asked my colleague to download and test the new release. I’ll report back once I hear from him.

@samfearn
Copy link
Author

samfearn commented Sep 1, 2020

This is now working for my colleague.

@jgm
Copy link
Owner

jgm commented Sep 1, 2020

Glad to hear it! This problem, then, should be fixed with our release process going forward.
Thanks to @jjallaire for support for the Travis building infrastructure.

@jgm jgm closed this as completed Sep 1, 2020
@jgm
Copy link
Owner

jgm commented Dec 18, 2020

@jjallaire @samfearn - Travis stopped building for unknown reasons and has yet to respond to the support ticket I submitted. So I switched over to CircleCI for the macOS builds for the 2.11.3 release. I'm using a build machine running macOS 10.13, so it should work on 10.13, but if you encounter any problems with the 2.11.3 binary, let us know.

@jgm
Copy link
Owner

jgm commented Jul 2, 2021

@jjallaire - Head's up: CircleCI is deprecating support for older xcode/macos versions ; building on macOS 10.13 will no longer be possible come September. I've looked into AWS, but they don't seem to offer any older macOS build machines there either.

Note: macOS 10.13 hasn't been getting security updates for seven months. It's probably a very bad idea for anyone to use an OS like that, unless they're disconnected from the net. So maybe safe now to build on 10.14?

@ickc
Copy link
Contributor

ickc commented Jul 3, 2021

For simplicity probably pandoc should support only platforms that are supported (https://endoflife.date/macos is convenient to check things like this.)

Various pointers:

  • macports continues to support very old macOS: https://github.com/macports/macports-base/releases/tag/v2.7.1
  • There is an incentive for many people to stay in 10.13 as it is the last version supporting OpenCL (correct me if I’m wrong), and certainly the last version supporting 3rd party NVidia GPU (I.e. NVidia GPU shipped with Macs has metal support so that newer macOS supports, but if you buy an NVidia GPU on your own, and say hook up with eGPU chassis via thunderbolt, those are supported up to macOS 10.13.)
  • for some reasons, some people really like to stay with older versions, Eg even 10.5. Some for running on older hardwares, some maybe for esthetics. I don’t have stat though.

@jjallaire
Copy link

Yes, I think that given 10.13 not getting security updates for 7 months it can be safely crossed off the list. I just checked and RStudio has indeed already bumped its minimum supported Mac OS version to 10.14 (I believe we too now try to sync to vendor EOL dates).

@jgm
Copy link
Owner

jgm commented Dec 20, 2021

As of January 12, 2022, CircleCI is deprecating xcode 11.0, 11.1, 11.2, and 11.3 -- I think the lowest available version will be xcode 11.4.1 which goes with macos 10.15. So we'll have to switch to 11.4.1 at that point.

EDIT: According to https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md
GitHub actions now offers xcode 10.3 and also 11.2.1. Might be worth switching back to GitHub actions at this point?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants