Unison qpackage

Ask community developers’ help for your most wanted Apps and also discover what the hottest and ultimate Apps are.
User avatar
fedoralinux
Easy as a breeze
Posts: 437
Joined: Thu Dec 22, 2011 9:33 pm
Location: The Netherlands
Contact:

Unison qpackage

Post by fedoralinux »

At first, yes, i know there is a downloadable unison package for qnap, but i need an out of the box package for the latest version
http://www.cis.upenn.edu/~bcpierce/unison/
http://www.seas.upenn.edu/~bcpierce/uni ... es/stable/

i got the latest version on my linux pc, and now i need a latest version for qnap device
thanks
PC: dell laptop running Fedora 18
wd tv live as network mediaplayer

FREE cloudstorage on dropbox
dropbox
avaterera
Starting out
Posts: 11
Joined: Tue Nov 17, 2009 11:36 pm

Re: Unison qpackage

Post by avaterera »

+1 for Unison qpkg. There is version only for ARM (as far as I know) and we need it for x86.
johnripper
Experience counts
Posts: 1346
Joined: Sun Aug 14, 2011 5:13 am

Re: Unison qpackage

Post by johnripper »

User avatar
trejder
Know my way around
Posts: 184
Joined: Fri Jan 07, 2011 5:13 am

Re: Unison qpackage

Post by trejder »

Hi,
fedoralinux wrote:At first, yes, i know there is a downloadable unison package for qnap, but i need an out of the box package for the latest version
Many people around this forum keeps talking about Unison package designed specially for QNAP? But where can I get it? There is no such package in QPKG repository and on Unison project website you can only download latest overall version, with no specific releases for either QNAP or any other system / NAS.

So? There is or there isn't ready out-of-the-box solution for getting Unison to QNAP? Can I get it fast or do I need to follow whole procedure of recompilation and instalation, covered in official release documentation?

Cheers,
Trejder
QNAP TS-210 with:
- RAID 0 Stripping Disk Volume using 2x2TB HDD (Samsung HD204UI),
- plus 1,5TB Ext USB HDD (Samsung HD154UI),
- and 0,75TB Ext USB HDD (WD MyPassport).
Latest firmware installed.
ulikio
Starting out
Posts: 14
Joined: Mon Dec 07, 2009 3:05 am

Re: Unison qpackage

Post by ulikio »

I absolutely need it too!!! +1
ulikio
Starting out
Posts: 14
Joined: Mon Dec 07, 2009 3:05 am

Unison working under Entware-ng (DEPRECATED)

Post by ulikio »

* * * 2019.02.03: GIVEN NEW 64BIT QNAP Hardware TS-453B PLEASE SEE MY UPDATED INSTALL HOWTO BELOW. This procedure only works for my older 32bit Intel system * * *

Alright, I spent two nights on this and finally got a solution that works for me (QNAP TS-439 Pro / Intel CPU). Result: get a working unison binary to use even under stupid entware

The steps I followed
- Deinstall any Qnapware / Entware / whatever-ware
- Optware is depricated but you will still need it temporarily to compile unison using the native ocaml ikpg (get it somewhere on the web & install. filename: Optware_0.99.163_x86.qpkg through QNAP web interface. I found it under: http://forum.qnapclub.de/viewtopic.php?f=67&t=655)
- ipkg update
- ipkg upgrade
- ipkg install ocaml make gcc
- wget http://www.seas.upenn.edu/~bcpierce/uni ... 8.3.tar.gz
- mv unison-2.48.3.tar.gz /share/Public <<--- you need this, ocaml compliation will fail otherwise (if there's a space in the path for instance)
- tar xvfz unison-2.48.3.tar.gz
- cd unison-2.48.3
- make clean
- make NATIVE=false UISTYLE=text
- you will get an error message saying "etags - command not found" - binary is built anyway and usable
- copy unison (binary file) to somewhere safe and /opt/bin if you want to use it
----------------- we could stop here if we wanted to stick with Optware, but we don't ------------------
- now deinstall Optware (through Web interface)
- install Entware-ng
- copy unison binary to whereever you want to use it (you don't need ocaml anymore)
Last edited by ulikio on Sun Feb 03, 2019 10:41 pm, edited 1 time in total.
User avatar
trejder
Know my way around
Posts: 184
Joined: Fri Jan 07, 2011 5:13 am

Re: Unison qpackage

Post by trejder »

Thank you for your comprehensive research and for writing this guide. Congratulations on your success!

However, you have replied to FOUR years old topic / question. Yes, I'm still using my old TS-210 and I still wonder, how it is possible, that it still works fine (after six years), but I certainly had to develop some alternative solution back in 2012. That solution was named "Dropbox" (now "OneDrive").

Again, thank you for sharing your thoughts. I hope, this guide will help someone, who is in desperate need to use Unison on QNAP-like devices.
QNAP TS-210 with:
- RAID 0 Stripping Disk Volume using 2x2TB HDD (Samsung HD204UI),
- plus 1,5TB Ext USB HDD (Samsung HD154UI),
- and 0,75TB Ext USB HDD (WD MyPassport).
Latest firmware installed.
halol
Getting the hang of things
Posts: 96
Joined: Thu Aug 09, 2012 9:43 pm

Re: Unison qpackage

Post by halol »

No harm in reviving old threads! It is still useful to some people (me, for example!)

I used to have an ARM based TS-219P II and have been using unison successfully for a long time. What I noticed when building unison back then was that if I was using the ocaml version provided with Optware, unison would be extremely slow (because of the NATIVE=false flag required with the OOTB ocaml).

The solution for me was to build ocaml as well. Here are the steps I followed at the time:

Compile ocaml:
- get the ocaml 3.12.0 sources from: http://ipkg.nslu2-linux.org/sources/
- tar xvfz ocaml-3.12.0.tar.gz
- configure -prefix /opt
- make world
- make opt
- make install
=> chech that ocamlc and ocamlopt are working

Then build unison:
- ipkg install emacs
- get Unison latest sources (pick up a version compatible with the one of your other machines) and extract them
- make UISTYLE=text

And I would get much much better performances like this (you can drop the NATIVE=false when compiling).

---

Now, I just upgraded to a TVS-663, 64bits and Intel based. The problems started... and I too just spent 2 days pulling my hair trying to get this working!

Here is what I did, as this is a slightly different solution:
- Install Entware using the 64 bits package

As in the past, first compile ocaml. There are a few differences though:
- first, Unison apparently doesn't compile with the version > 4. So get ocaml-3.12.1.
- ./configure -prefix /opt -no-shared-libs -no-curses (not sure which options are absolutely needed here, that's just what worked for me)
- create links to some Entware librairies (otherwise the build process uses 32bit default libraries from /lib and fails. Of course this may not be needed if you have a 32bit architecture):
ln -s /opt/lib/libm-2.23.so /lib64/libm.so.6
ln -s /opt/lib/libdl-2.23.so /lib64/libdl.so.2
ln -s /opt/lib/libncurses.so /lib64/libncurses.so.6
- ldconfig
- make world, make opt and make install

Then compile ctags/etags
- download the sources from http://ctags.sourceforge.net/
- ./configure --prefix=/opt --enable-etags
- make
- make install

Finally, build Unison:
- make UISTYLE=text
- ln -s /opt/lib/libutil-2.23.so /lib64/libutil.so.1 (required to run Unison)
- ldconfig
- test that the binary is working

=> done! well... almost

Any link created in /lib64 will be removed after a reboot, which will break Unison (and ocaml). Beside I don't think that it would be a very good idea to make those libs available system wide as they may disrupt other applications...
So here is what I did:
- mkdir /opt/usr/local/libunison
- create all the links in this directory:
ln -s /opt/lib/libm-2.23.so /opt/usr/local/libunison/libm.so.6
ln -s /opt/lib/libdl-2.23.so /opt/usr/local/libunison/libdl.so.2
ln -s /opt/lib/libncurses.so /opt/usr/local/libunison/libncurses.so.6
ln -s /opt/lib/libutil-2.23.so /opt/usr/local/libunison/libutil.so.1
- mv /opt/bin/unison /opt/bin/unison-bin
- vi /opt/bin/unison (to create a new script), with the following content:

Code: Select all

    #!/bin/sh
    LD_LIBRARY_PATH=/opt/usr/local/libunison
    unison-bin $@
- chmod +x unison

=> you can call Unison using the 'unison' command as usual

Hope this helps!
TVS-663
blackdog
Starting out
Posts: 31
Joined: Sat Aug 13, 2011 9:41 pm

Re: Unison qpackage

Post by blackdog »

Here is the tutorial to install unison precompiled binary without optware

http://gayberti.de/2016/02/07/unison-au ... atisieren/
nickma
New here
Posts: 8
Joined: Wed Oct 17, 2018 5:26 pm

Re: Unison qpackage

Post by nickma »

nickma
New here
Posts: 8
Joined: Wed Oct 17, 2018 5:26 pm

Re: Unison qpackage

Post by nickma »

I just built unison on my TS-228A using armv8 (aka aarch64) Entware-ng [1] and halol's how to.
halol wrote: The solution for me was to build ocaml as well. Here are the steps I followed at the time:
[...]
Hope this helps!
Thank you so much, it did help!

[1] http://bin.entware.net/aarch64-k3.10/in ... generic.sh
ulikio
Starting out
Posts: 14
Joined: Mon Dec 07, 2009 3:05 am

Re: Unison qpackage

Post by ulikio »

hi guys

thanks halol for your indepth update howto. @Trejder, I agree there's no harm in reviving old threads if people keep using (good) software. I have several QNAP's, now a 64bit Intel based TS-453B with firmware 4.3.6.0805 (2018/12/28) installed. I tried my own procedure posted above and it didn't work anymore. tried Halol's, failed on the OCAML compilation. I'm not an expert user so kept searching and found this easy procedure to work for me
- export PATH=$PATH:/opt/bin:/opt/sbin
- deinstall Optware (through Web interface) if installed, it's deprecated
- find entware (2019.02.03: https://github.com/Entware/Entware/wiki ... n-QNAP-NAS) as of QNAP firmware: 4.3.6.0805)
- install Entware-ng through web-UI
- install essential entware packages via ssh/console (package list: https://pkg.entware.net/binaries/armv7/Packages.html)
opkg update & opkg upgrade
opkg install coreutils binutils shadow-su less
- cd /share/Public <<--- you need this, ocaml compliation will fail otherwise (if there's a space in the path for instance)
- wget http://caml.inria.fr/pub/distrib/ocaml- ... 2.0.tar.gz
- tar xvfz ocaml-4.02.0.tar.gz
- cd ocaml-4.02.0
- ./configure -prefix /opt
- make world.opt
- make install
- wget https://www.seas.upenn.edu/~bcpierce/un ... 8.3.tar.gz
- cd ../unison-2.48.3
- make clean
- make UISTYLE=text
- you will get an error message saying "etags - command not found" - binary is built anyway and usable
- chmod 755 unison unison-fsmonitor
- cp unison /opt/bin/ && cp unison-fsmonitor /opt/bin/ <-- copy unison (binary file) to somewhere within the path
gordwait
New here
Posts: 2
Joined: Fri Dec 07, 2018 2:52 am

Re: Unison qpackage

Post by gordwait »

I had to add:

opkg install gcc
opkg install make

to your instructions, otherwise, looks like I have a copy of Unison on my QNAP - thanks!
(Now to see if it works ;)
Novaldex
First post
Posts: 1
Joined: Sun Sep 14, 2014 6:22 pm

Re: Unison qpackage

Post by Novaldex »

Thanks ulikio & gordwait, your two posts helped me figure it out too.

I know it's now a slightly older topic, but as I ran into some issues on my system, i've been able to get it running with more up to date components. I also do not have Optware installed, and a reasonably up to date version of Entware already installed too, so these steps are missing below.

TS-420 (Arm), QTS 4.3.3
OCaml 4.06.1
Unison 2.51.2

Base steps:
  • Set correct path variable:

    Code: Select all

    export PATH=$PATH:/opt/bin:/opt/sbin
  • Update opkg:

    Code: Select all

    opkg update & opkg upgrade
  • Install essential packages:

    Code: Select all

    opkg install coreutils binutils shadow-su less gcc make
  • Change to good working directory:

    Code: Select all

    cd /share/Public
Build OCaml
  • Fetch OCaml source:

    Code: Select all

    wget https://caml.inria.fr/pub/distrib/ocaml-4.06/ocaml-4.06.1.tar.gz
  • Unpack:

    Code: Select all

    tar xvfz ocaml-4.06.1.tar.gz
  • Enter source directory:

    Code: Select all

    cd ocaml-4.06.1
  • Configure source:

    Code: Select all

    ./configure -prefix /opt
  • Leave OCaml source directory:

    Code: Select all

    cd /share/Public
Build Unison
  • Fetch Unison source:

    Code: Select all

    wget https://www.seas.upenn.edu/~bcpierce/unison/download/releases/unison-2.51.2/unison-2.51.2.tar.gz
  • Make working directory for build:

    Code: Select all

    mkdir unison-2.51.2
  • Enter working directory:

    Code: Select all

    cd unison-2.51.2
  • Unpack source archive:

    Code: Select all

    tar xvfz ../unison-2.51.2.tar.gz
  • Clean source before build:

    Code: Select all

    make clean
  • Build text version only:

    Code: Select all

    make UISTYLE=text
  • Set permissions on files:

    Code: Select all

    chmod 755 unison unison-fsmonitor
  • Copy files to usable location:

    Code: Select all

    cp unison /opt/bin/ && cp unison-fsmonitor /opt/bin/
Once done I was able to test the version with:

Code: Select all

unison -version
which gave me:

Code: Select all

unison version 2.51.2 (ocaml 4.06.1)
I'm now away to test it further, hope the above helps others
halol
Getting the hang of things
Posts: 96
Joined: Thu Aug 09, 2012 9:43 pm

Re: Unison qpackage

Post by halol »

I had to upgrade to OCaml 4.09 to stay compatible with my clients, and I ran into a problem. Here is how I solved it:

- get the ocaml 4.09.0 sources from: https://ocaml.org/releases/
- tar xvfz ocaml-4.09.0.tar.gz
- cd ocaml-4.09.0
- vi tools/check-parser-uptodate-or-warn.sh and replace (line 35)

Code: Select all

else MTIME="stat -f %m"
with

Code: Select all

else MTIME="stat -c %Y"

- ./configure -prefix /opt
- make world.opt
- make install

Hope this helps.
TVS-663
Post Reply

Return to “Apps Wanted”