#!/bin/bash fetch_source() { if [ -n "$REQUIRED_XORG_DRIVERS" ]; then local drv mkdir -p src cd src || perror "No cd to xorg src dir" for drv in $REQUIRED_XORG_DRIVERS; do drv=${drv%//*} [ -d "${drv}/.git" ] && continue git clone "git://anongit.freedesktop.org/xorg/driver/${drv}" "${drv}" || perror "Could not clone $drv" done cd - fi } build() { COPYLIST="list_dpkg_output" [ -e "$COPYLIST" ] && rm "$COPYLIST" list_packet_files >> "$COPYLIST" tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}" # copy udev rules to correct location if [ -d "${MODULE_BUILD_DIR}/lib/udev" ]; then cp -r "${MODULE_BUILD_DIR}/lib/udev" "${MODULE_BUILD_DIR}/usr/lib/" fi if [ -d "${MODULE_BUILD_DIR}/etc/udev" ]; then cp -r "${MODULE_BUILD_DIR}/etc/udev" "${MODULE_BUILD_DIR}/usr/lib/" fi rm -rf -- "${MODULE_BUILD_DIR}/lib/udev" "${MODULE_BUILD_DIR}/etc/udev" # This used to freeze/crashe X with certain gfx cards (radeon R240) # /usr/lib/xorg/modules/libglamoregl.so # Newer X versions seems to have this fixed, so we included it again # See if we should build more up to date versions of drivers if [ -n "$REQUIRED_XORG_DRIVERS" ]; then local repo vers drv pinfo "Compiling requested xorg drivers from source" mkdir -p "${MODULE_BUILD_DIR}/usr/lib/xorg/modules/drivers" for drv in $REQUIRED_XORG_DRIVERS; do repo=${drv%//*} vers=${drv#*//} pinfo "Compiling $drv" cd "${MODULE_WORK_DIR}/src/${repo}" || perror "No src dir for xorg driver $repo" if [ "$drv" != "$vers" ]; then git checkout "$vers" || pwarn "Could not checkout $vers for $repo" fi ./autogen.sh || perror "Autogen for $drv failed" ./configure || perror "configure for $drv failed" make || perror "Make for $drv failed" find . -type f -name "*_drv.so" -exec cp {} "${MODULE_BUILD_DIR}/usr/lib/xorg/modules/drivers" \; done fi } post_copy() { mkdir -p "${TARGET_BUILD_DIR}/etc/X11" [ ! -e ${TARGET_BUILD_DIR}/etc/X11/X ] && ln -s /usr/bin/Xorg ${TARGET_BUILD_DIR}/etc/X11/X }