EAPI="7" DESCRIPTION="" HOMEPAGE="" SRC_URI="" LICENSE="" SLOT="0" KEYWORDS="*" IUSE="+non-ignorable_internal_collisions" BDEPEND="" DEPEND="" RDEPEND="" S="${WORKDIR}" pkg_setup() { [[ ! -e ${EROOT}/usr/x1 ]] && mkdir -p "${EROOT}/usr/x1" [[ ! -e ${EROOT}/usr/x2 ]] && ln -s x1 "${EROOT}/usr/x2" [[ ! -e ${EROOT}/usr/x3 ]] && ln -s x1 "${EROOT}/usr/x3" [[ ! -e ${EROOT}/usr/x4 ]] && ln -s x1 "${EROOT}/usr/x4" } src_install() { dodir /usr/{x1,x2,x3,x4} # Regular files with different content if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/a" echo 2 > "${ED}/usr/x2/a" echo 3 > "${ED}/usr/x3/a" echo 4 > "${ED}/usr/x4/a" fi # Regular files with identical content echo 1 > "${ED}/usr/x1/b" echo 1 > "${ED}/usr/x2/b" echo 1 > "${ED}/usr/x3/b" echo 1 > "${ED}/usr/x4/b" # Regular files with different metadata and identical content if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/c" echo 1 > "${ED}/usr/x2/c" echo 1 > "${ED}/usr/x3/c" echo 1 > "${ED}/usr/x4/c" setfattr -n user.attribute -v value1 "${ED}/usr/x1/c" setfattr -n user.attribute -v value2 "${ED}/usr/x2/c" fowners adm /usr/x{2,3,4}/c fowners :adm /usr/x{3,4}/c fperms 444 /usr/x4/c fi # Symbolic links pointing to different files if use non-ignorable_internal_collisions; then dosym /dev/zero /usr/x1/d dosym /dev/null /usr/x2/d dosym /dev/full /usr/x3/d dosym /dev/random /usr/x4/d fi # Symbolic links pointing to identical file dosym /dev/zero /usr/x1/e dosym /dev/zero /usr/x2/e dosym /dev/zero /usr/x3/e dosym /dev/zero /usr/x4/e # Regular file and relative symbolic links pointing to this regular file if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/f" dosym ../x1/f /usr/x2/f dosym ../bin/../x1/f /usr/x3/f dosym ../bin/../sbin/../x1/f /usr/x4/f fi # Regular file and absolute symbolic links pointing to this regular file if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/g" dosym /usr/x1/g /usr/x2/g dosym /usr/bin/../x1/g /usr/x3/g dosym /usr/../usr/bin/../x1/g /usr/x4/g fi # Regular file and absolute symbolic links pointing to something else if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/h" dosym /dev/random /usr/x2/h dosym /dev/urandom /usr/x3/h dosym /dev/tty /usr/x4/h fi # Regular files with different content and symbolic links pointing to these regular files if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/i" echo 2 > "${ED}/usr/x2/i" dosym ../x1/i /usr/x3/i dosym /usr/x2/i /usr/x4/i fi # Regular files with different content and symbolic links pointing to something else if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/j" echo 2 > "${ED}/usr/x2/j" dosym /dev/mem /usr/x3/j dosym /dev/port /usr/x4/j fi # Non-ASCII UTF-8: Regular file and symbolic links pointing to this regular file if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/あいうえお" dosym ../x1/あいうえお /usr/x2/あいうえお dosym /usr/x1/あいうえお /usr/x3/あいうえお dosym /usr/bin/../x1/あいうえお /usr/x4/あいうえお fi # Non-ASCII UTF-8: Regular files and symbolic links pointing to these regular files if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/アイウエオ" echo 2 > "${ED}/usr/x2/アイウエオ" dosym ../x1/アイウエオ /usr/x3/アイウエオ dosym /usr/bin/../x2/アイウエオ /usr/x4/アイウエオ fi # Non-UTF-8: Regular file and symbolic links pointing to this regular file if use non-ignorable_internal_collisions; then echo 1 > "${ED}/usr/x1/"$'\x80' dosym ../x1/$'\x80' /usr/x2/$'\x80' dosym /usr/x1/$'\x80' /usr/x3/$'\x80' dosym /usr/bin/../x1/$'\x80' /usr/x4/$'\x80' fi ls -Fhl --color=always "${ED}/usr/"{x1,x2,x3,x4} }