ein Blog

Computer funktionieren nicht

wenn es schon der software-hersteller nicht schafft eine binary-version zu verteilen die auf 2 unterschiedlichen macs mit der selben OS X version funktioinert, dann bau ich mir das ding halt selbst.

und dieses mal hat auch ein simples make gereicht und es lief.

in meinem fall musste ich für optimale Kompatibilität noch OCaml 4.01 installieren aber das war auch easy.pkg

es geht übrigens um unison. das eigentlich beste file-sync tool ever. gibts für linux, windows, OS X und alles.

aktuell gibts eine inkompatibilität zwischen binaries die mit OCaml 4.01 und 4.02 gebaut wurden. um das repeat=watch setting zu benutzen braucht man mindestens unison 2.48. die fertigen OS X Binaries gibts aktuell als 2.48.3 (OCaml 4.01) und 2.48.6 (OCaml 4.02). Also alles bestens. Auf dem entsprechenden Ubuntu server mit dem ich syncen möchte läuft 2.48.3. allerdings mit OCaml 4.01 gebaut. Deswegen kommt für OS X auch nur 2.48.3 in frage (obwohl 2.48.6 aus dem richtigen OCaml auch funktionieren würde).

MacBook Pro Mid 2015: runterladen, läuft. MacBook Pro Mid 2012: runterladen, crasht.

homebrew bringt auch 2.48.3 mit, allerdings mit OCaml 4.02 gebaut. die inkompatibilität äußert sich so, dass unison erst mal anfängt zu syncen und dann crasht es irgendwann mit nem weirden fehler: Uncaught exception Failure("input_value: bad bigarray kind").

auf dem "alten" MacBook crasht es immer mit EXC_BAD_INSTRUCTION bzw. illegal hardware instruction. je nach dem ob mit oder ohne UI.

PS: repeat=watch bedeutet, dass ein externes tool genutzt wird um den sync zu triggern. repeat=[0-9]+ kann unison schon lange. da wartet es einfach x sekunden und fängt von vorne an.

das externe tool muss einfach in $PATH liegen und unison-fsmonitor heißen. Für Linux ist bei unison schon eine implementierung dabei die sich einfach mit fsevents an den kernel hängt und darauf wartet, dass dateien geändert werden. Für OS X muss man sich was eigenes bauen oder suchen: https://github.com/jumpstarter-io/unox

uff. das war ein etwas wirrer post aber das musste ich jetzt einfach mal so runter schreiben. für twitter wäre selbst der erste satz schon zu lange gewesen