I'm interested in getting this integrated. The Python version of fsmonitor does seem to be flaky, the OCaml version seems better. I prefer it to be packaged in Debian.
I have updated John's patch above and based it on the current Git in https://salsa.debian.org/ocaml-team/unison.git . What else can I do to get there?
>From 344fa96cfea0d2469ed5a3e61b28f7b5596066b0 Mon Sep 17 00:00:00 2001 From: John Lenton <[email protected]> Date: Tue, 19 Feb 2019 11:10:38 +0100 Subject: [PATCH 1/2] Add packages unison-fsmonitor and unison-fsmonitor-python. (Closes: #819341) This patch is taken from as-is from the bug #819341. --- debian/control | 56 ++++++++++++++++++++++++++++++++-- debian/unison-fsmonitor-python.install | 2 ++ debian/unison-fsmonitor.install | 2 ++ 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 debian/unison-fsmonitor-python.install create mode 100644 debian/unison-fsmonitor.install diff --git a/debian/control b/debian/control index 18a42b0..81b3a36 100644 --- a/debian/control +++ b/debian/control @@ -20,7 +20,7 @@ Homepage: http://www.cis.upenn.edu/~bcpierce/unison/ Package: unison Architecture: any Depends: ${shlibs:Depends}, ${ocaml:Depends}, ${misc:Depends} -Recommends: ssh-client | openssh-client +Recommends: ssh-client | openssh-client, unison-fsmonitor | unison-fsmonitor-python Suggests: unison-all Replaces: ${F:OtherUnison} Breaks: ${F:OtherUnison} @@ -49,7 +49,7 @@ Architecture: any Depends: ${shlibs:Depends}, ${ocaml:Depends}, ${misc:Depends} Replaces: ${F:OtherUnisonGtk} Breaks: ${F:OtherUnisonGtk} -Recommends: ssh-askpass, ssh-client | openssh-client +Recommends: ssh-askpass, ssh-client | openssh-client, unison-fsmonitor | unison-fsmonitor-python Suggests: unison-all-gtk Description: file-synchronization tool for Unix and Windows with GTK+ interface Unison is a file-synchronization tool for Unix and Windows, written @@ -72,3 +72,55 @@ Description: file-synchronization tool for Unix and Windows with GTK+ interface handling of the replicas and its private structures. . This package adds the optional GTK+ interface. + +Package: unison-fsmonitor +Architecture: any +Depends: ${shlibs:Depends}, ${ocaml:Depends}, ${misc:Depends}, unison | unison-gtk +Description: file-synchronization tool for Unix and Windows with GTK+ interface + Unison is a file-synchronization tool for Unix and Windows, written + in OCaml. It allows two replicas of a collection of files and + directories to be stored on different hosts (or different disks + on the same host), modified separately, and then brought up to + date by propagating the changes in each replica to the other. + . + Unison offers several advantages over various synchronization methods + such as CVS, Coda, rsync, Intellisync, etc. Unison can run on and + synchronize between Windows and many UNIX platforms. Unison requires + no root privileges, system access or kernel changes to function. Unison + can synchronize changes to files and directories in both directions, + on the same machine, or across a network using ssh or a direct + socket connection. + . + Transfers are optimised using a version of the rsync protocol, + making it ideal for slower links. Unison has a clear and precise + specification, and is resilient to failure due to its careful + handling of the replicas and its private structures. + . + This package adds the optional native fsmonitor helper program to + detect changes via "unison -repeat watch". + +Package: unison-fsmonitor-python +Architecture: all +Depends: python-pyinotify, unison | unison-gtk +Description: file-synchronization tool for Unix and Windows with GTK+ interface + Unison is a file-synchronization tool for Unix and Windows, written + in OCaml. It allows two replicas of a collection of files and + directories to be stored on different hosts (or different disks + on the same host), modified separately, and then brought up to + date by propagating the changes in each replica to the other. + . + Unison offers several advantages over various synchronization methods + such as CVS, Coda, rsync, Intellisync, etc. Unison can run on and + synchronize between Windows and many UNIX platforms. Unison requires + no root privileges, system access or kernel changes to function. Unison + can synchronize changes to files and directories in both directions, + on the same machine, or across a network using ssh or a direct + socket connection. + . + Transfers are optimised using a version of the rsync protocol, + making it ideal for slower links. Unison has a clear and precise + specification, and is resilient to failure due to its careful + handling of the replicas and its private structures. + . + This package adds the optional fsmonitor.py helper program to detect + changes via "unison -repeat watch". diff --git a/debian/unison-fsmonitor-python.install b/debian/unison-fsmonitor-python.install new file mode 100644 index 0000000..3691879 --- /dev/null +++ b/debian/unison-fsmonitor-python.install @@ -0,0 +1,2 @@ +fsmonitor.py /usr/bin/ + diff --git a/debian/unison-fsmonitor.install b/debian/unison-fsmonitor.install new file mode 100644 index 0000000..d1b769e --- /dev/null +++ b/debian/unison-fsmonitor.install @@ -0,0 +1,2 @@ +unison-fsmonitor /usr/bin/ + -- 2.7.4
>From d867d69f083f2fac3ac6fad7334cf0082a2dbc44 Mon Sep 17 00:00:00 2001 From: Benjamin Riefenstahl <[email protected]> Date: Tue, 19 Feb 2019 11:12:40 +0100 Subject: [PATCH 2/2] Fix doc list for unison-fsmonitor and unison-fsmonitor-python. The Python module unison-fsmonitor-python is marked "indep", so it will not build the documentation files and they will be missing when building. But than these packages should probably not contain another copy of the docs anyway, so fix up DEB_INSTALL_DOCS accordingly. --- debian/rules | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 7b76a24..40492c2 100755 --- a/debian/rules +++ b/debian/rules @@ -80,7 +80,9 @@ endif UISTYLE := $(shell dpkg --compare-versions 2.10 ge $(VERSION) && echo gtk || echo gtk2) -DEB_INSTALL_DOCS_ALL := BUGS.txt TODO.txt unison-manual.txt -X unison.doc-base.in +DEB_INSTALL_DOCS_DEFAULT = -X unison.doc-base.in +DEB_INSTALL_DOCS_unison = BUGS.txt TODO.txt unison-manual.txt -X unison.doc-base.in +DEB_INSTALL_DOCS_unison-gtk = $(DEB_INSTALL_DOCS_unison) DEB_INSTALL_CHANGELOGS_ALL := NEWS -- 2.7.4

