freetype: fix double installation
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 3 Jul 2014 20:19:24 +0000 (22:19 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Thu, 3 Jul 2014 21:33:25 +0000 (23:33 +0200)
commitcc5b8e72308f523b3826ada5fe7009b722bf9a79
tree3932aaf9d055076c78bb3f76722113bdde0063a2
parentd13402248bd8f19b4fc5a2f6c8be0097dbd30b6d
freetype: fix double installation

Eric_L on IRC reported that the following strange behavior: the first
installation of freetype works, and then each time you do "make
freetype-dirclean freetype", it fails and works alternatively, in a
fully reproducible manner.

After some investigation, it turns out that the problem is caused by
the creation of the symbolic link /usr/include/freetype2/freetype ->
/usr/include/freetype2 for backward compatibility reasons by
freetype.mk, in a post-staging installation hook. As the symbolic link
is created *after* the installation, the first installation works
fine. However, the second installation fails because the freetype
build system does:

 ./builds/unix/mkinstalldirs \
         /home/thomas/projets/buildroot/output/target/usr/include/freetype2/config
  [...]
 rm -f /home/thomas/projets/buildroot/output/target/usr/include/freetype2/freetype/config/*
 rmdir /home/thomas/projets/buildroot/output/target/usr/include/freetype2/freetype/config
  [...]
 /usr/bin/install -c -m 644 ./builds/unix/ftconfig.h               \
       /home/thomas/projets/buildroot/output/target/usr/include/freetype2/config/ftconfig.h

This last line fails, because due to the symbolic link mentioned above, the
command 'rmdir
/home/thomas/projets/buildroot/output/target/usr/include/freetype2/freetype/config'
has in fact the consequence of deleting the 'config' directory created
by the mkinstalldirs command.

The proposed solution to solve this problem is to remove the symbolic link
in a pre-install hook, run the installation, and restore the symbolic link.

[Peter: minor tweaks to commit message / comment]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/freetype/freetype.mk