cryogen-project/cryogen

Unable to load library 'Carbon'

jacekschae opened this issue · 3 comments

Seems like with update to newest macOS Big Sur the /System/Library/Frameworks/Carbon.framework is not working. When you start a new project:

~ $ lein new cryogen my-blog
~ $ cd my-blog
~/my-blog $ lein ring server
2020-07-06 13:52:34.745:INFO::main: Logging initialized @1035ms
loading module: Flexmark parser
compiling assets...
compiling sass
copying theme resources
	 themes/blue/css --> public/blog/css
	 themes/blue/js --> public/blog/js
	 themes/blue/html/404.html --> public/blog/404.html
copying resources
	 content/img --> public/blog/img
	 content/md/posts --> public/blog/posts
	 content/md/pages --> public/blog/pages
compiling pages
--> /blog/pages-output/about/
--> /blog/pages-output/another-page/
compiling posts
--> /blog/posts-output/2016-01-07-docs/
--> /blog/posts-output/2014-11-04-second-post/
--> /blog/posts-output/2014-03-10-first-post/
compiling tags
--> /blog/tags-output/cryogen/
--> /blog/tags-output/very fetch/
--> /blog/tags-output/not fetch/
compiling tags page
compiling index
compiling archives
generating authors views
compiling authors
--> /blog/authors-output/Bob Bobbert/
generating site map
generating main rss
generating filtered rss
	--> /blog/cryogen.xml
"Elapsed time: 508.405309 msecs"
Exception in thread "main" Syntax error compiling at (/private/var/folders/sn/ghv7jdx906vf42xc_njg7dn40000gn/T/form-init16798120602090615094.clj:1:126).
	at clojure.lang.Compiler.load(Compiler.java:7647)
	at clojure.lang.Compiler.loadFile(Compiler.java:7573)
	at clojure.main$load_script.invokeStatic(main.clj:452)
	at clojure.main$init_opt.invokeStatic(main.clj:454)
	at clojure.main$init_opt.invoke(main.clj:454)
	at clojure.main$initialize.invokeStatic(main.clj:485)
	at clojure.main$null_opt.invokeStatic(main.clj:519)
	at clojure.main$null_opt.invoke(main.clj:516)
	at clojure.main$main.invokeStatic(main.clj:598)
	at clojure.main$main.doInvoke(main.clj:561)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.lang.Var.applyTo(Var.java:705)
	at clojure.main.main(main.java:37)
Caused by: java.lang.UnsatisfiedLinkError: Unable to load library 'Carbon': dlopen(libCarbon.dylib, 9): image not found
	at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:164)
	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:237)
	at com.sun.jna.Library$Handler.<init>(Library.java:140)
	at com.sun.jna.Native.loadLibrary(Native.java:372)
	at com.sun.jna.Native.loadLibrary(Native.java:357)
	at com.barbarysoftware.jna.CarbonAPI.<clinit>(CarbonAPI.java:6)
	at com.barbarysoftware.jna.CFStringRef.toCFString(CFStringRef.java:10)
	at com.barbarysoftware.watchservice.MacOSXListeningWatchService.register(MacOSXListeningWatchService.java:30)
	at com.barbarysoftware.watchservice.WatchableFile.register(WatchableFile.java:30)
	at com.barbarysoftware.watchservice.WatchableFile.register(WatchableFile.java:39)
	at hawk.watcher$fn__133.invokeStatic(watcher.clj:102)
	at hawk.watcher$fn__133.invoke(watcher.clj:99)
	at hawk.watcher$fn__38$G__29__47.invoke(watcher.clj:24)
	at hawk.core$watch_BANG_.invokeStatic(core.clj:83)
	at hawk.core$watch_BANG_.doInvoke(core.clj:59)
	at clojure.lang.RestFn.invoke(RestFn.java:410)
	at cryogen_core.watcher$start_watcher_BANG_.invokeStatic(watcher.clj:35)
	at cryogen_core.watcher$start_watcher_BANG_.invoke(watcher.clj:31)
	at cryogen.server$init.invokeStatic(server.clj:18)
	at cryogen.server$init.invoke(server.clj:14)
	at clojure.lang.Var.invoke(Var.java:380)
	at ring.server.standalone$serve.invokeStatic(standalone.clj:96)
	at ring.server.standalone$serve.doInvoke(standalone.clj:75)
	at clojure.lang.RestFn.invoke(RestFn.java:423)
	at ring.server.leiningen$serve.invokeStatic(leiningen.clj:19)
	at ring.server.leiningen$serve.invoke(leiningen.clj:16)
	at user$eval12427.invokeStatic(form-init16798120602090615094.clj:1)
	at user$eval12427.invoke(form-init16798120602090615094.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7176)
	at clojure.lang.Compiler.eval(Compiler.java:7166)
	at clojure.lang.Compiler.load(Compiler.java:7635)
	... 12 more
Subprocess failed (exit code: 1)

I don't know if this helps in shadow-cljs you can work around this be setting a flag in the shadow-cljs.edn

:fs-watch {:hawk false}

hawk is the file watching lib used on macOS because the jvm default is "slow"

Keep in mind that this issue appears on macOS beta, and it might be different for public release.

Thanks!

@jacekschae @sankara I will push out an update to clojars sometime this week! Waiting on another PR first.