@@ -, +, @@ --- sys-apps/baselayout/baselayout-2.6-r1.ebuild | 8 +++++--- sys-apps/baselayout/baselayout-2.7.ebuild | 8 +++++--- sys-apps/baselayout/baselayout-9999.ebuild | 8 +++++--- 3 files changed, 15 insertions(+), 9 deletions(-) --- a/sys-apps/baselayout/baselayout-2.6-r1.ebuild +++ a/sys-apps/baselayout/baselayout-2.6-r1.ebuild @@ -33,7 +33,7 @@ multilib_layout() { if [[ -z "${SYMLINK_LIB}" || ${SYMLINK_LIB} = no ]] ; then prefix_lst=( "${EROOT}"{,usr/,usr/local/} ) - for prefix in ${prefix_lst[@]}; do + for prefix in "${prefix_lst[@]}"; do for libdir in ${libdirs}; do dir="${prefix}${libdir}" if [[ -e "${dir}" ]]; then @@ -43,7 +43,8 @@ multilib_layout() { fi if ! use split-usr && [[ ${prefix} = ${EROOT} ]]; then einfo "symlinking ${dir} to usr/${libdir}" - ln -s usr/${libdir} ${dir} || + mkdir -p "${dir%/*}" || die + ln -s usr/${libdir} "${dir}" || die " Unable to make ${dir} symlink" else einfo "creating directory ${dir}" @@ -153,7 +154,8 @@ multilib_layout() { if ! use split-usr ; then for libdir in ${libdirs}; do if [[ ! -e "${EROOT}${libdir}" ]]; then - ln -s usr/"${libdir}" "${EROOT}${libdir}" + mkdir -p "${EROOT}${libdir%/*}" || die + ln -s usr/${libdir} "${EROOT}${libdir}" || die fi done fi --- a/sys-apps/baselayout/baselayout-2.7.ebuild +++ a/sys-apps/baselayout/baselayout-2.7.ebuild @@ -33,7 +33,7 @@ multilib_layout() { if [[ -z "${SYMLINK_LIB}" || ${SYMLINK_LIB} = no ]] ; then prefix_lst=( "${EROOT}"{,usr/,usr/local/} ) - for prefix in ${prefix_lst[@]}; do + for prefix in "${prefix_lst[@]}"; do for libdir in ${libdirs}; do dir="${prefix}${libdir}" if [[ -e "${dir}" ]]; then @@ -43,7 +43,8 @@ multilib_layout() { fi if ! use split-usr && [[ ${prefix} = ${EROOT} ]]; then einfo "symlinking ${dir} to usr/${libdir}" - ln -s usr/${libdir} ${dir} || + mkdir -p "${dir%/*}" || die + ln -s usr/${libdir} "${dir}" || die " Unable to make ${dir} symlink" else einfo "creating directory ${dir}" @@ -153,7 +154,8 @@ multilib_layout() { if ! use split-usr ; then for libdir in ${libdirs}; do if [[ ! -e "${EROOT}${libdir}" ]]; then - ln -s usr/"${libdir}" "${EROOT}${libdir}" + mkdir -p "${EROOT}${libdir%/*}" || die + ln -s usr/${libdir} "${EROOT}${libdir}" || die fi done fi --- a/sys-apps/baselayout/baselayout-9999.ebuild +++ a/sys-apps/baselayout/baselayout-9999.ebuild @@ -33,7 +33,7 @@ multilib_layout() { if [[ -z "${SYMLINK_LIB}" || ${SYMLINK_LIB} = no ]] ; then prefix_lst=( "${EROOT}"{,usr/,usr/local/} ) - for prefix in ${prefix_lst[@]}; do + for prefix in "${prefix_lst[@]}"; do for libdir in ${libdirs}; do dir="${prefix}${libdir}" if [[ -e "${dir}" ]]; then @@ -43,7 +43,8 @@ multilib_layout() { fi if ! use split-usr && [[ ${prefix} = ${EROOT} ]]; then einfo "symlinking ${dir} to usr/${libdir}" - ln -s usr/${libdir} ${dir} || + mkdir -p "${dir%/*}" || die + ln -s usr/${libdir} "${dir}" || die " Unable to make ${dir} symlink" else einfo "creating directory ${dir}" @@ -153,7 +154,8 @@ multilib_layout() { if ! use split-usr ; then for libdir in ${libdirs}; do if [[ ! -e "${EROOT}${libdir}" ]]; then - ln -s usr/"${libdir}" "${EROOT}${libdir}" + mkdir -p "${EROOT}${libdir%/*}" || die + ln -s usr/${libdir} "${EROOT}${libdir}" || die fi done fi --