How to install scp and sftp on a Synology NAS

There is no scp or sftp on a standard installation of a Synology NAS. As these two softs are very useful, here’s how to install them.

First, install zlib and openssl :

ipkg install zlib openssl

When installing scp and sftp, be carefull. There is a specific version of ssh installed on Synology NAS. That’s why you must not install openssh with ipkg.

Create a temporary repertory :

mkdir /volume1/tmp
cd /volume1/tmp

Download the openssh packet (without installing it!) :

ipkg download openssh

Extract the files contained in the openssh packet :

tar -xzf openssh*.ipk
tar -xzf data.tar.gz

Copy scp and sftp in /bin :

cp /volume1/tmp/opt/bin/openssh-scp /bin
cp /volume1/tmp/opt/bin/sftp /bin

Rename openssh-scp :

mv /bin/openssh-scp /bin/scp

Create this symbolic link (it was necessary for me) :

ln -s /usr/syno/bin/ssh /opt/bin/ssh

Delete your temporary directory :

rm -rf /volume1/tmp

You’re done!

Article written with the help of this one (in french), with some updates. Thanks to its author.

(Français) Le ssh pour tous les utilisateurs sur les NAS Synology

Sorry, this entry is only available in Français.

(Français) Un ERP simple pour les Juniors-Entreprise: Ordo

(Français) NAS Synology : go root n00b!! (et faites un truc utile tant qu’à faire)

Sorry, this entry is only available in Français.

(Français) Faire fonctionner Office 2007 sous Ubuntu 10.10

Sorry, this entry is only available in Français.

(Français) Gérez et publiez vos collections avec GCstar !

Sorry, this entry is only available in Français.

14 years of Gimp hacking

The development of a software like Gimp is done during long years, and by many peoples. To let you see this work, I made a video of the modification done on the code repository for 14 years.

A quick note however, the first 2 years of hacking is not on the video since the related logs are not available on git.

This video was made using Gource, pretty cool software =)

Compiling Gimp with LLVM/Clang and static analyse

Clang, which use LLVM infrastructure, is a compiler for the C language family. His goal is to offer a moder alternative to GCC. With Clang come a pretty cool static analyser. Here is how to use it for Gimp.

A small disclaimer before, I shamefully copied and adapted the procedure given by Campbell Barton, form the Blender team. (

Step 1: compile LLVM/Clang

I first tried the LLVM provided by ArchLinux, but the compilation ended with a fatal error. It goes flawlessly with the development version. To fetch it, Campbell Barton’s script works well.

Step 2: configure Gimp’s compilation

First, we need to add  LLVM’s binary to the PATH:

export PATH=$PATH:/opt/llvm/bin

The only difference with a classic GCC compilation, is that we explicitly ask to use Clang’s compiler:

CC=ccc-analyzer ./ --prefix=/opt/gimp/

Step 3: compile

If you just want to compile, the procedure doesn’t change.

make -j3

If you want to run a static analyse, you have to use scan-build:

scan-build -o clang make -j3

Just be aware that a static analyse will take a lot of time (3h40 with my Core 2 Duo E4500).

Etape 4: profit !

The static analyzer of Clang will probably find a lot of bug in the code. Yes, there is false positive, but it’s globally remarkably well done ! You can find here the result of the analyse of master i did today:

Refactoring and evolution of the Cage tool


A quick post to let you know that i started a refactoring of the Gimp cage tool. It’s a mandatory step to achieve a good quality and a solid basis to implement new things. It happens here by rewriting the frontend code as a state machine (as described here a few days ago), change on the data structure, documentation, and a lot of small fixes and simplifications.

In the future, a multi-points selection should come in a few days in the soc-2010-cage-2 branch. This editing mode will work in a similar way as in the path tool.

A proportional editing mode, similar to what you can find in Blender should come too.

Maybe i’ll start to getting satisfied of my work someday… =)

(Français) Implémenter une machine à état