--- mesa.eselect.orig 2011-04-09 18:59:58.000000000 +0100 +++ mesa.eselect 2015-06-02 11:31:26.624676616 +0100 @@ -9,10 +9,19 @@ EBUILD_VERSION="0.0.10" MESA_CONF_DIR="${EROOT}/usr/share/mesa" -MESA_DIR_64="${EROOT}/usr/lib/mesa" -DRI_DIR_64="${EROOT}/usr/lib/dri" -MESA_DIR_32="${EROOT}/usr/lib32/mesa" -DRI_DIR_32="${EROOT}/usr/lib32/dri" +if [[ -L /usr/lib ]]; then + MESA_DIR_64="${EROOT}/usr/lib/mesa" + DRI_DIR_64="${EROOT}/usr/lib/dri" + MESA_DIR_32="${EROOT}/usr/lib32/mesa" + DRI_DIR_32="${EROOT}/usr/lib32/dri" +else + MESA_DIR_64="${EROOT}/usr/lib64/mesa" + DRI_DIR_64="${EROOT}/usr/lib64/dri" + MESA_DIR_32="${EROOT}/usr/lib/mesa" + DRI_DIR_32="${EROOT}/usr/lib/dri" + MESA_DIR_X32="${EROOT}/usr/libx32/mesa" + DRI_DIR_X32="${EROOT}/usr/libx32/dri" +fi # receives a filename of the driver as argument, outputs the architecture (classic or gallium) drivername_to_architecture() { @@ -98,9 +107,11 @@ do_show() { source "${MESA_CONF_DIR}"/eselect-mesa.conf || die "Failed to source config" - if [[ -d "${MESA_DIR_32}" && -d "${DRI_DIR_32}" ]]; then + if [[ -d "${MESA_DIR_32}" && -d "${DRI_DIR_32}" ]] || + [[ -d "${MESA_DIR_X32}" && -d "${DRI_DIR_X32}" ]]; then MESA_DIR=${MESA_DIR_64} DRI_DIR=${DRI_DIR_64} multiarch="64bit " doshow_helper MESA_DIR=${MESA_DIR_32} DRI_DIR=${DRI_DIR_32} multiarch="32bit " doshow_helper + MESA_DIR=${MESA_DIR_X32} DRI_DIR=${DRI_DIR_X32} multiarch="x32 " doshow_helper else MESA_DIR=${MESA_DIR_64} DRI_DIR=${DRI_DIR_64} doshow_helper fi @@ -130,9 +141,11 @@ do_list() { source "${MESA_CONF_DIR}"/eselect-mesa.conf || die "Failed to source config" - if [[ -d "${MESA_DIR_32}" && -d "${DRI_DIR_32}" ]]; then + if [[ -d "${MESA_DIR_32}" && -d "${DRI_DIR_32}" ]] || \ + [[ -d "${MESA_DIR_X32}" && -d "${DRI_DIR_X32}" ]]; then MESA_DIR=${MESA_DIR_64} DRI_DIR=${DRI_DIR_64} multiarch="64bit " dolist_helper MESA_DIR=${MESA_DIR_32} DRI_DIR=${DRI_DIR_32} multiarch="32bit " dolist_helper + MESA_DIR=${MESA_DIR_X32} DRI_DIR=${DRI_DIR_X32} multiarch="x32 " dolist_helper else MESA_DIR=${MESA_DIR_64} DRI_DIR=${DRI_DIR_64} dolist_helper fi @@ -144,11 +157,11 @@ } describe_set_parameters() { - echo "[32bit|64bit] [--auto| ]" + echo "[32bit|64bit|x32] [--auto| ]" } describe_set_options() { - echo "32bit, 64bit : (optional) Apply changes to 32 bit or 64 bit multilib only" + echo "32bit, 64bit, x32 : (optional) Apply changes to 32 bit or 64 bit multilib only" echo "--auto : Sets all drivers which are not already set" echo " : The chipset family, or sw for software renderer" echo " : The driver architecture" @@ -210,6 +223,12 @@ else write_warning_msg "The 32bit parameter is intended for multilib systems only" fi + elif [[ $1 == "x32" ]]; then + if [[ -d "${MESA_DIR_X32}" && -d "${DRI_DIR_X32}" ]]; then + MESA_DIR=${MESA_DIR_X32} DRI_DIR=${DRI_DIR_X32} multiarch="$1 " doset_helper $2 $3 + else + write_warning_msg "The 32bit/x32 parameter is intended for multilib systems only" + fi else if [[ -d "${MESA_DIR_32}" && -d "${DRI_DIR_32}" ]]; then MESA_DIR=${MESA_DIR_64} DRI_DIR=${DRI_DIR_64} multiarch="64bit " doset_helper $1 $2