From 23d9886aae0296de363545ad7a229722ed83e708 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 8 Feb 2017 16:10:50 +0000 Subject: [PATCH] openssl/fontconfig/bzip2: Use relative symlinks instead of absolute ones (using a new class) Absolute path symlinks are a bit of a pain for sstate and the native versions of these recipes currently contain broken symlinks as a result. There are only a small number of problematic recipes, at least in OE-Core, namely the three here. Rather than trying to make sstate handle this magically, which turns out to be a harder problem than you'd first realise, simply make the symlinks relative early in the process and avoid all the problems. The alternative is adding new complexity to sstate which we could really do without as without the complexity, you can't always tell where the absolute symlink is relative to (due to prefixes used for native sstate). (From OE-Core rev: e478550c8cd889f12e336e268e9e3b30827bf840) Signed-off-by: Richard Purdie --- meta/classes/relative_symlinks.bbclass | 5 +++++ meta/recipes-connectivity/openssl/openssl.inc | 2 +- meta/recipes-extended/bzip2/bzip2_1.0.6.bb | 2 +- meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 meta/classes/relative_symlinks.bbclass diff --git a/meta/classes/relative_symlinks.bbclass b/meta/classes/relative_symlinks.bbclass new file mode 100644 index 0000000000..3157737347 --- /dev/null +++ b/meta/classes/relative_symlinks.bbclass @@ -0,0 +1,5 @@ +do_install[postfuncs] += "install_relative_symlinks" + +python install_relative_symlinks () { + oe.path.replace_absolute_symlinks(d.getVar('D'), d) +} diff --git a/meta/recipes-connectivity/openssl/openssl.inc b/meta/recipes-connectivity/openssl/openssl.inc index 5cca019e1d..fc55925615 100644 --- a/meta/recipes-connectivity/openssl/openssl.inc +++ b/meta/recipes-connectivity/openssl/openssl.inc @@ -30,7 +30,7 @@ export EX_LIBS = "-lgcc -ldl" export AS = "${CC} -c" EXTRA_OEMAKE = "-e MAKEFLAGS=" -inherit pkgconfig siteinfo multilib_header ptest +inherit pkgconfig siteinfo multilib_header ptest relative_symlinks PACKAGES =+ "libcrypto libssl ${PN}-misc openssl-conf" FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}" diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.6.bb b/meta/recipes-extended/bzip2/bzip2_1.0.6.bb index ef7bc89765..0512a75990 100644 --- a/meta/recipes-extended/bzip2/bzip2_1.0.6.bb +++ b/meta/recipes-extended/bzip2/bzip2_1.0.6.bb @@ -25,7 +25,7 @@ PACKAGES =+ "libbz2" CFLAGS_append = " -fPIC -fpic -Winline -fno-strength-reduce -D_FILE_OFFSET_BITS=64" -inherit autotools update-alternatives ptest +inherit autotools update-alternatives ptest relative_symlinks ALTERNATIVE_PRIORITY = "100" ALTERNATIVE_${PN} = "bunzip2 bzcat" diff --git a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb b/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb index 8616154c61..95b066ce46 100644 --- a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb +++ b/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb @@ -37,7 +37,7 @@ RREPLACES_fontconfig-utils = "libfontconfig-utils" RCONFLICTS_fontconfig-utils = "libfontconfig-utils" DEBIAN_NOAUTONAME_fontconfig-utils = "1" -inherit autotools pkgconfig +inherit autotools pkgconfig relative_symlinks FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"