Package Details: unison-232 2.32.52-8

Package Base: unison-232
Description: File-synchronization tool (legacy 2.32 version)
Upstream URL: http://www.cis.upenn.edu/~bcpierce/unison
Category: network
Licenses: GPL2
Submitter: flan_suse
Maintainer: flan_suse
Last Packager: None
Votes: 11
First Submitted: 2011-02-23 02:22
Last Updated: 2012-02-07 01:51

Dependencies (0)

Required by (0)

Sources

Latest Comments

Comment by sigmike

2013-08-27 13:35

I downloaded a precompiled 2.32 version from http://alan.petitepomme.net/unison/ and it worked. Maybe the package should use it too?

Anonymous comment

2012-11-06 13:57

it worked!
thanks very much for the prompt and very helpful answer! :)

Comment by flan_suse

2012-11-06 13:24

@sipik

For Arch Linux users, Unison 2.32 (and 2.27) cannot be built against the current packages on the official repositories. You can try the idea I posted in my previous comment.

Search for, download, and install ocaml (ocaml-3.12.1-3) and lablgtk2 (lablgtk2-2.14.2-5) from the Arch Rollback Machine:
http://arm.konnichi.com/search

Those two packages are required to build (not to run, only build) unison.

After they are installed, try building this PKGBUILD (unison-232 2.32.52-8).

Now see if Unison 2.32 syncs properly again. If you need me to clear anything up or try something on my end, let me know.

Anonymous comment

2012-11-06 09:57

I used this package happily for about half a year and I updated yesterday. Since then whenever I try to do a sync I get:
[code]
Fatal error
Internal error: New archives are not identical.
Retaining original archives. Please run Unison again to bring them up to date.
[/code]
I deleted the archives and tried to recreate them with unison, but it always crashes with the above mentioned error. Any idea how I could fix this? Or at least maybe revert back to the old version, but I dont have that package saved anymore.

Comment by flan_suse

2012-09-29 01:40

I tried using Ocaml 3.x to build Unison 2.32, but I was unsuccessful because lablgtk2 (updated from 2.14 to 2.16 on the Arch repos) is expecting Ocaml 4.x.

Basically, I'm running out of ideas. I would literally have to make PKGBUILDs for ocaml-3 (3.12.1) and lablgtk2-214 (2.14) and who knows what else, just to get Unison 2.32 and 2.27 to build properly again. In light of my other recent frustrations with rolling on Arch Linux, I'm losing motivation. (Having my system randomly freeze whenever I use wireless, likely due to a kernel update, isn't much fun. Neither is the fact that my power settings are confused, such as when I close my lid my laptop suspends, even though I have it set differently under Xfce's power settings. Not to mention the transition from sysvinit to systemd. Thankfully, I dual-boot with a reliable friend known as Ubuntu 10.04 LTS. I just want to use my computer after all...)

If anyone has any idea on how to get Unison 2.32 to build agian, do chime in.

In the meantime, you can still build this package if you first install lablgtk2 (2.14) and ocaml (3.12.1) from the Arch Rollback Machine: http://arm.konnichi.com/search

Comment by flan_suse

2012-09-25 11:56

@curtdodds

I feel your pain. It's a constant game of catch-up. For users of Unison 2.40, it appears that upstream is going to apply a patch to fix the issue of different Ocaml versions. No idea about Unison 2.32 and 2.27 users.

The only thing I can really do from my side is to incorporate something into the PKGBUILD that grabs and compiles an older version of Ocaml. Luckily, users of Unison 2.32 and 2.27 who've already installed the package in the past need not worry about the new Ocaml-4 update, unless they rebuild Unison again.

Anonymous comment

2012-09-25 02:52

My problem occurred on a fresh install of arch, using your current script.
The script pulled OCaml-4 from arch repos and compiled against it.
I did not see any way to downgrade OCaml to ver. 3.

So, again, copying the binaries (executables from /usr/bin/unison*) on another computer worked.
Those were compiled about six months ago with OCaml-3, and worked fine on the new installation.

I have no solution to offer, to fix your script, now that arch supplies only OCaml-4.
Sometimes the "latest greatest" breaks working systems.
All we can do is bitch about it.

I do hope you can solve the issue, rather than dropping support.
Thank you for your work on this script, whatever the future brings.

Comment by flan_suse

2012-09-24 12:14

@curtdodds

Wait, upon reading through the thread again, did you happen to rebuild unison-232 during this? Or did this problem occur to you even before rebuilding the package? Ocaml is only a makedepends, and thus if you've built unison-232 prior to the ocaml 4.x release, then it should still work across all machines (Debian, SUSE, Ubuntu LTS, et al) that run unison 2.32.

Comment by flan_suse

2012-09-24 11:54

@curtdodds

Yeah, this is going to get interesting. Unfortunately with Arch Linux, AUR pacakges can slowly erode because of changes not only with the upstream package itself, but also due to changes with dependencies, makedepends, and libraries from updated packages in the official repositories.

I'll see what I can do when I get the chance. If older versions of unison do not compile with Ocaml 4, then it might get tricky.

Anonymous comment

2012-09-24 04:48

This package failed for me today. I have used it previously, without problem.
Some directories synced ok, others gave this message:
" Fatal error: Internal error: New archives are not identical."
and would crash, repeatedly.

Web search yielded this explanation:
http://tech.groups.yahoo.com/group/unison-users/message/10544

Indeed, arch now uses OCaml-4.
My workaround was to copy the binaries from a previous build, on another arch machine.

Comment by flan_suse

2012-02-07 14:20

@ecognito

The "alternatives" approach would be interesting, although a bit more confusing than the standard "conflicts" method. If it worked on Arch Linux, first of all, there is still the chance that the user already configured his alternatives to his liking and changed the priorities. I've had this issue with Mint and Ubuntu. Whenever there was an update to openjdk, it would ruin my alternatives configuration for openjdk, java6, and java7. There is also the fact that the user has to manually change his alternatives configuration, depending on which version of Unison he wants to use at the moment.

It's an interesting thought, though. I'm sure there could be a way for it to work under Arch.

For now, this will conflict with unison, unison-227, and unison-beta. I wrote comments in the PKGBUILD explaining how to install them side-by-side; however, in such a case there will be no symlink to /usr/bin/unison, since that is owned by the official unison Arch package in the Extra repo.

Comment by ecognito

2012-02-07 05:41

> I went ahead and made the change so that it creates a symlink to /usr/bin/unison.
> This means you cannot install this package side-by-side with other versions of Unison.

Thanks for the heads up. Way back when I was running openSUSE (last week :-) I made packages for the three versions of unison where the latest installed version always had the symlink to /usr/bin/unison. This was done with the alternatives logic which made that easy to do (and alas, doesn't appear to be available on Arch :-( ).

Comment by flan_suse

2012-02-07 02:03

@mr_greengenes
I went ahead and made the change so that it creates a symlink to /usr/bin/unison. This means you cannot install this package side-by-side with other versions of Unison. I commented the PKGBUILD with notes on how to install side-by-side, in case there's some people out there that require such. Let me know if you get any problems with my changes. You likely have to manually remove the symlink you created, since it will be taken care of with this PKGBUILD update.

@jlacroix
You just have to reinstall the package. But I went ahead and updated the PKGBUILD, so just use yaourt or whatever method to update your system, including AUR packages.

Comment by jlacroix

2012-02-06 23:20

This doesn't seem to work anymore since the libpng updates.

Comment by flan_suse

2012-02-01 17:49

@mr_greengenes

I can't exactly change that in the PKGBUILD, since the unison package in the [extra] repository has a file name /usr/bin/unison

If I did such a thing, I would have to add "conflicts=unison", which means that a user cannot install multiple versions of unison, side-by-side.

I suppose I could change it, but I'm not sure if there's people out there that use multiple versions of Unison. I guess they wouldn't need to since it would be way too much overhead.

Anonymous comment

2012-02-01 13:31

Maybe a suggestion for those who don't want to spend a lot of time with Google.
I run unison 2.32 on Debian as client and Arch as server. Everytime I started up synchronization I got a "fatal error: lost connection with the server" message.
'ln -s /usr/bin/unison-232 /usr/bin/unison' on the server (Arch) fixed the problem for me.

Comment by flan_suse

2011-11-07 01:22

@mr_greengenes

Happy to hear it worked for you!

I believe the reason it did not build before is because you only obtained the PKGBUILD file, instead of the tarball. A good rule of thumb is to always grab the tarball instead of the PKGBUILD file, since some packages on here have source files and patches that are not pulled from the web. AUR helpers automatically do this, but if you want to build manually, you must download the tarball. (The tarball contains the PKGBUILD file anyways, as well as any other necessary files.)

Hope that made some sense!

Anonymous comment

2011-11-06 17:34

@flan_suse
Thank you.
The manual method you suggested works well.

And thank you for maintaining this "Arch-outdated" version of this great piece of software which is in fact used by many other distros.

Comment by flan_suse

2011-11-06 14:38

@mr_greengenes
Here is a followup.

I was able to build the package on a fully updated Arch Linux system. With yaourt, it works, and when I tried it manually, it worked as well. Here is how I did it manually:

wget https://aur.archlinux.org/packages/un/unison-232/unison-232.tar.gz
tar -xzv -f unison-232.tar.gz
cd unison-232/
makepkg -src

(Or you can use makepkg -srci if you want to install it immediately. I use -r to remove the makedeps.)

Let me know if this works.

Comment by flan_suse

2011-11-06 13:55

@mr_greengenes
How are you building the package? Manually with makepkg, I take it? (Not with yaourt or another AUR helper?)

Within this tarball, all the files exist, even the patch and the .desktop file: https://aur.archlinux.org/packages/un/unison-232/unison-232.tar.gz

I'll update my system now and try manually building this package, as you are, to see if any updated packages are causing an issue.

Anonymous comment

2011-11-06 09:06

I've tried to build unison 2.32.52-7 with this PKGBUILD.
I manually installed as dependencies:
- ocaml 3.12.1-2
- lablgtk2 2.14.2-4
- imagemagick 6.7.3.1-1

makepkg stops with an error: It seems that unison-232.desktop and unison-ssh-ocaml.patch are not located at the source tree (url). (I've checked this is true by visiting the url.)

Changing the PKGBUILD manually to force compiling it without these two files results in the error massage:
Error: The implementation /home/benny/build/src/unison-2.32.52/update.ml
does not match the interface update.cmi:
Modules do not match:
...
The field `merge' is required but not provided
The field `singleton' is required but not provided
make: *** [update.cmx] Fehler 2
==> FEHLER: Ein Fehler geschah in build().

Any suggestions? Tanks

Anonymous comment

2011-08-28 02:24

A BIG THANK YOU!
I appreciate you time and effort for doing the unison-2.32.52 PKGBUILD.
It worked flawlessly, and was required for compatibility with other system I use.

Comment by flan_suse

2011-07-22 12:06

lablgtk2 has been rebuilt on the official Extra repo, and so now this PKGBUILD should work again like normal.

Comment by flan_suse

2011-07-21 15:30

This comment is for anyone who is using yaourt or reads the most recent comments:

Currently, unison will not build with the latest package updates. This is because lablgtk2 needs to be rebuilt against the latest ocaml 3.12.1. In order for any unison PKGBUILDs to work, you will need to wait for this to be fixed by the official Arch Linux package maintainers, or if you cannot wait, you can follow the manual instructions I wrote out in my previous comment. A bug report has already been filed and I even emailed the package maintainer for ocaml.

Sorry for the inconvenience.

Comment by jlacroix

2011-07-21 01:22

Thank you. I decided to use the ARM package for now, ARM was down the last few days but it seems to be up now. For now I just used that version and set up Pacman to ignore upgrading Unison. In fact, I'm using it right now. I will continue to use this AUR package though, whenever I have need of it again. Thanks for all your help :)

Comment by flan_suse

2011-07-21 01:20

@jlacroix
After looking into this further, it appears that lablgtk2 needs to be rebuilt after building / installing ocaml 3.12.1. A bug has already been filed about this.

If you don't want to wait for the Arch Linux packagers to fix this on their end, you can do the following yourself. It worked for me on 32bit, so I'm sure it should work on 64bit too:

1) Completely remove lablgtk2, ocaml, and gtksourceview2 if they are installed.

pacman -Rs lablgtk2 ocaml gtksourceview2

2) Make an empty folder, and within it use the following PKGBUILD to build and install ocaml 3.12.1. This will take a long time! After it finishes, it should remove any makedepends and source files.

http://pastebin.com/raw.php?i=vc1e9Edr

makepkg -srci

3) Repeat with the following PKGBUILD for lablgtk2.

http://pastebin.com/raw.php?i=vex2UCnC

makepkg -srci

4) With ocaml and lablgtk2 manually installed, try installing my unison-232 package from the AUR with yaourt or whatever method you use.

5) If unison-232 builds, installs, and runs properly, then you can go ahead and force the removal of the no longer needed packages.

pacman -Rs ocaml lablgtk2 gtksourceview2

6) In the folders you created for ocaml and lablgtk2, you can make backup copies of the .xz packages, in case you need them later.

Hope this works for you!

tpowa might have seen the bug report for ocaml and lablgtk2, but in case he didn't, I'll let him know about it.

Comment by flan_suse

2011-07-20 12:13

@jlacroix
Sorry to hear that. If you had tried only a few days earlier, you wouldn't have bumped into this problem. This is one of the drawbacks of rolling releases: the train keeps moving and stops for no one. You can guess how I felt when Unison was updated from 2.32 to 2.40 on the official repo.

I emailed tpowa last night, so hopefully he can make the change on his ocaml package soon. It was nice of him to actually include a patch for ocaml 3.12.0, which fixed the issue with binutils 2.21 (affecting unison as well). Otherwise, no one would have been able to build Unison since May! So the patch he applied was a real life-saver. But the Ocaml developers fixed the issue in 3.12.1, hence, no more need for the extra patch.

I don't have a prebuilt 64bit package, sorry. My system is 32bit. Keep checking back on the ocaml package. Once it is updated again (last updated July 18), go ahead and try building this unison 2.32 package. I will also try on my system to make sure his update fixes the issue.

Comment by jlacroix

2011-07-20 02:25

Thanks. I'm hoping to get this built soon, because I was preparing a hard drive image to include this and I've postponed doing this for now. If there is a pre-built 64-bit package that I can install in the meantime, that would be cool.

Comment by flan_suse

2011-07-19 18:43

@jlacroix
No coincidence that ocaml was updated on the official Extra repository just yesterday. My guess is the patch tpowa previously applied actually *breaks* 3.12.1. Hard to say. I notice that his ocaml build for 3.12.1-1 contains the fix-ocaml-binutils-2.21.patch, which, according to the previous discussion, is not needed for version 3.12.1: only 3.12.0 required it.

I hope it's as easy as excluding the patch for ocaml. My hope is a simple package update for ocaml 3.12.1 will resolve this issue.

I'll email tpowa tonight about this.

Comment by jlacroix

2011-07-19 04:02

It looks like it's broken again.

---

Error: Files /usr/lib/ocaml/lablgtk2/lablgtk.cmxa
and /usr/lib/ocaml/stdlib.cmxa
make inconsistent assumptions over implementation StdLabels
make: *** [unison] Error 2

Anonymous comment

2011-05-10 10:03

Works like a charm now, thanks for your eye on this!

Comment by flan_suse

2011-05-10 01:58

@asmanian
Update your system and try this PKGBUILD again. It should work now.

Latest package update of ocaml includes a patch that fixes the issue between ocaml and binutils. Because of this, unison-232 now properly builds again.

Comment by flan_suse

2011-04-26 20:04

Until ocaml 3.12.1 is released, the only other thing I can think of is to grab the 64bit ISO image of the latest Arch snapshot, run an update (while ignoring the bintutils package) and try to build a 64bit package in the live session. The above PKGBUILD format should work, and if not, try once again adding the "make mkProjectInfo" parts. I wish there was something more feasible. There may be, but I wouldn't know what it is. The problem is that ignoring binutils might cause issues for other packages. If so, try to build the unison-232 package without updating anything.

You'll need plenty of RAM for this though, since the root filesystem is mounted in RAM.

To grab this tarball, just run the following in your live session when you're ready to build the package:

wget http://aur.archlinux.org/packages/unison-232/unison-232.tar.gz

Be sure to install the "base-devel" group first.

Comment by flan_suse

2011-04-26 11:56

Good find! I hope an updated ocaml does indeed resolve this.

Out of interest, I even tried compiling unison 2.40 (with the same PKGBUILD instructions from the official repo), and the same error occured. I'm assuming tpowa was able to make his unison 2.40 package before the ocaml / binutils breakage. I've already contacted him about this.

unison 2.40: February 22
binutils 2.21: March 26

Great catch, asmanian. I'll update the pkgrel number after ocaml gets updated (and add the mkProjectInfo sections) to play it safe. I really wish ocaml wasn't such a huge download and that lablgtk2 didn't pull in many dependencies, but that is the sad reality of building from the AUR.

Anonymous comment

2011-04-26 09:10

Check this out: http://caml.inria.fr/mantis/view.php?id=5237
Seems to be a problem in ocamlopt that occurs with recent versions of binutils.
They also claim that they have a fix that will be included in the next release of ocaml (3.12.1). So seems we have to just wait for that.

Anonymous comment

2011-04-26 08:53

Adding the mkProjectInfo doesnt change anything for me (i.e. same error) :(

Comment by flan_suse

2011-04-24 15:55

I will be busy the rest of the day, but please reply whenever you can and I will read it.

Comment by flan_suse

2011-04-24 15:53

Things are getting very strange now. I'm not sure if this is to do with having a fully update Arch system, or if it's exclusive to ocaml.

I was able to build this package on x86_64 by adding this line under both parts that read "make clean":
make mkProjectInfo

So I changed the PKGBUILD accordingly. But when I tried to build the same thing on i686 (fully updated Arch), it errored out with the same "assembler error" message.

This wouldn't be nearly as painful if unison didn't require a gigantic number of packages just to build. I wish there was something more up-to-date and cleaner.

Can you try on your end (x86_64) by manually adding "make mkProjectInfo" under both "make clean" parts in the PKGBUILD?

Comment by flan_suse

2011-04-24 05:34

From what I could find, this appears to be related to ocaml and 64-bit. I tried this PKGBUILD on x86_64, and I got the same error as you. I even tried to compile ocaml from source (on 64-bit ArchLinux), but I got the same error (assembler error) when trying to do either "make world.opt" or "make opt": http://caml.inria.fr/

But i686 doesn't have this problem.

I'll try to get in touch with the unison packager (extra repo), since he built an x86_64 package for unison 2.40.

Anonymous comment

2011-04-24 00:06

Does not build for me (x86_64):

[...]
ocamlopt: ubase/util.ml ---> ubase/util.cmx
ocamlopt -I lwt -I ubase -c /tmp/clyde-henning/unison-232/unison-232/src/unison-2.32.52/ubase/util.ml
/tmp/camlasm976d1a.s: Assembler messages:
/tmp/camlasm976d1a.s:5274: Error: .size expression for camlUtil__percentageOfTotal_1268 does not evaluate to a constant
File "/tmp/clyde-henning/unison-232/unison-232/src/unison-2.32.52/ubase/util.ml", line 1, characters 0-1:
Error: Assembler error, input left in file /tmp/camlasm976d1a.s
make: *** [ubase/util.cmx] Error 2
==> ERROR: A failure occurred in build().
Aborting...

Comment by flan_suse

2011-02-23 03:15

Origin of this package for further explanation and reference: https://bbs.archlinux.org/viewtopic.php?id=113971

Comment by flan_suse

2011-02-23 02:30

Due to Unison's nature, all computers must have the same version installed in order for the synchronization process to work properly.

I made this package on the day that the ArchLinux Extra repo updated Unison to version 2.40, which will break compatibility with Unison 2.32. Version 2.32 is still the latest stable version used by many distros.

This package will not conflict with Unison 2.40, and it will install side-by-side with it.

Custom names are used for the executables:
/usr/bin/unison-232
/usr/bin/unison-232-gtk2
/usr/bin/unison-232-x11