{"id":30618152,"url":"https://github.com/omeyenburg/unison-for-termux","last_synced_at":"2026-02-11T02:47:54.677Z","repository":{"id":310956820,"uuid":"1041227931","full_name":"omeyenburg/unison-for-termux","owner":"omeyenburg","description":"A guide to install OCaml \u0026 Unison in Termux on Android.","archived":false,"fork":false,"pushed_at":"2025-08-21T07:09:52.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-30T11:11:25.232Z","etag":null,"topics":["termux","unison"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omeyenburg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-20T07:10:14.000Z","updated_at":"2025-08-21T07:09:55.000Z","dependencies_parsed_at":"2025-08-21T09:34:53.937Z","dependency_job_id":"edd1da2e-6d8f-4524-8b04-2172c661a9d3","html_url":"https://github.com/omeyenburg/unison-for-termux","commit_stats":null,"previous_names":["omeyenburg/unison-for-termux"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/omeyenburg/unison-for-termux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omeyenburg%2Funison-for-termux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omeyenburg%2Funison-for-termux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omeyenburg%2Funison-for-termux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omeyenburg%2Funison-for-termux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omeyenburg","download_url":"https://codeload.github.com/omeyenburg/unison-for-termux/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omeyenburg%2Funison-for-termux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29326078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T02:08:56.257Z","status":"ssl_error","status_checked_at":"2026-02-11T02:08:51.338Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["termux","unison"],"created_at":"2025-08-30T11:09:13.975Z","updated_at":"2026-02-11T02:47:54.635Z","avatar_url":"https://github.com/omeyenburg.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unison for Termux\n\n[Unison](https://github.com/bcpierce00/unison) is a great synchronization tool, but it's not available in the Termux package manager. To use it, you must build it from source.\n\nThis guide shows you how to install Unison on your Android device using Termux.\nIn the process, we will also install OCaml, which, to this date, is also not available in the Termux package manager.\n\nLargely based on [Compiler Unison dans Termux](https://lunixite.nappey.org/compiler-unison-termux.html) by [jdn06](https://lunixite.nappey.org/author/jdn06.html).\n\nLearn more about Building packages for Termux [here](https://wiki.termux.com/wiki/Building_packages).\n\n## Prerequisites\n\nInstall required build tools:\n```sh\npkg update -y\npkg install -y build-essential clang make git curl unzip libandroid-shmem\n```\n\n## Building OCaml\n\nUnison is built using OCaml, so we will have to install it first.\nThis guide uses OCaml 5.3.0, but other versions should also work. This process compiles OCaml specifically for the Android architecture.\n\n```sh\nOCAML_VERSION=5.3.0\n\nmkdir -p $HOME/tmp\ncurl -L https://github.com/ocaml/ocaml/releases/download/${OCAML_VERSION}/ocaml-${OCAML_VERSION}.tar.gz \\\n  -o \"$HOME/tmp/ocaml.tar.gz\"\ntar xzf \"$HOME/tmp/ocaml.tar.gz\" -C \"$HOME/tmp\"\ncd \"$HOME/tmp/ocaml-${OCAML_VERSION}\"\n\n# Configure OCaml for Termux/Android\n# Termux provides the $PREFIX variable.\n./configure --prefix=$PREFIX --disable-warn-error --without-afl LDFLAGS=\"-landroid-shmem\"\n\n# Build and install OCaml\nmake world\nmake install\n```\n\nCheck whether ocaml was correctly installed:\n```sh\nocaml --version\nocamlc --version\n```\n\n## Building Unison\n\nNow that OCaml is installed, you can compile Unison. This guide uses Unison 2.53.7.\n\n```sh\nUNISON_VERSION=2.53.7\n\nmkdir -p $HOME/tmp\ncurl -L https://github.com/bcpierce00/unison/archive/v${UNISON_VERSION}.tar.gz \\\n  -o \"$HOME/tmp/unison.tar.gz\"\ntar xzf \"$HOME/tmp/unison.tar.gz\" -C \"$HOME/tmp\"\ncd \"$HOME/tmp/unison-${UNISON_VERSION}\"\n\n# Build and install Unison\n# NATIVE=false tells the build system to use the OCaml bytecode compiler,\n# which makes large syncs slower but is necessary for Termux.\nmake NATIVE=false\nmake NATIVE=false install\n```\n\nUnison should be installed now! 🎉\n\nYou can test it by checking the version:\n```sh\nunison -version\n```\n\n## Usage\n\nIf you encounter errors while running unison, try to use the options `-ignorelocks` and possibly `-perms=0` (or `-fat`, which includes `-perms=0`) as well.\nThough both have downsides: With `-ignorelocks`, you must be careful not to start multiple sync jobs at once.\nWhen using `-perms=0`, no permissions will be synchronized. More information in the [Unison Manual](https://man.archlinux.org/man/unison.1.en).\nOn a rooted device, there are ways to use Unison without these flags.\n\n## Cleanup\n\nRemove temporary build files:\n```sh\ncd\nrm -rf $HOME/tmp/ocaml-${OCAML_VERSION} $HOME/tmp/unison-${UNISON_VERSION} $HOME/tmp/*.tar.gz\n```\n\n## Uninstall\n\nOCaml:\n```sh\nrm -f $PREFIX/lib/ocaml*\nrm -rf $PREFIX/lib/ocaml $PREFIX/share/man/man1/ocaml*\n```\n\nUnison:\n```sh\nrm -f $PREFIX/bin/unison* $PREFIX/share/man/man1/unison.1\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomeyenburg%2Funison-for-termux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomeyenburg%2Funison-for-termux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomeyenburg%2Funison-for-termux/lists"}