a plea for big endian testing of unison

Greg Troxel <[email protected]> Sun, 06 Mar 2022 18:45:02 -0500
Newsgroups gmane.os.netbsd.ports.sparc64
Message-ID <[email protected]>
I am the upstream maintainer of unison, a user-space program that's
almost like a distributed filesystem.  It has a new wire protocol that
is independent of the ocaml version (the old protocol used builtin ocaml
serialization that should have been stable but wasn't).

I would really like to test the protocol cross endian; this is easy if
you have a netbsd system running sparc64.

To test:

  build and install pkgsrc/net/unison-snapshot on two machines, one of
  which is big endian and one of which is i386, amd64, earmv7hf-el, the
  three of which I have tested to interoperate.  pkgsrc will use ocaml
  4.11 and that's fine.

  ensure that on one machine, you can
    ssh othermachine unison -version
  and get something like
    unison version 2.51.90 (ocaml 4.11.2)
  by typing a password or pubkey.

  run the shell commands below (in some directory where you don't mind
  foo being created, and with some remote where you don't mind foo
  being created either)


----------------------------------------
#!/bin/sh
REMOTE=fennel.local             # change this obviously
ssh ${REMOTE} unison -version
sleep 2

mkdir foo
date > foo/date
who > foo/who
unison -batch foo ssh://${REMOTE}/foo
sleep 2

unison -batch foo ssh://${REMOTE}/foo
sleep 2

uptime > foo/uptime
unison -batch foo ssh://${REMOTE}/foo

ssh ${REMOTE} uptime > foo/remote-uptime
unison -batch foo ssh://${REMOTE}/foo
----------------------------------------

and you should end up with all 4 files on both machines with no
complaints.   You can make arbitrary changes on either side and they
should get mirrored as long as there aren't conflicts.

Without -batch, it will prompt for what to do.

This will leave a few files in $HOME/.unison, starting with fp and ar
and a hash.  They are small but you can just delete them and the foo
directories when you are done.

That's all it takes to test.  I would also be interested in
sparc64-sparc64, but the biggest thing is cross endian in case there is
something in the serialization that should basically be byteswapping and
isn't.


FWIW, I use this to keep multiple directories in sync on many machines,
running unison on one to multiple remote rots.

Thanks,
Greg
signature.asc (application/pgp-signature, 194 B)
-----BEGIN PGP SIGNATURE-----

iF0EARECAB0WIQS7wyAjWilQwVHG9Vsf2nroCY7WDgUCYiVHfgAKCRAf2nroCY7W
DmtpAJ4sJiXBVW5x3vynsdFXtG/VLNFEAQCbBWHhi9t7bBaVtLwz9p3dUaBcBcc=
=dKQF
-----END PGP SIGNATURE-----