#!/bin/bash fetch_source() { if [ -n "$REQUIRED_XORG_DRIVERS" ]; then local drv mkdir -p src cde src 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() { # copy udev rules to correct location if [ -d "${MODULE_BUILD_DIR}/etc/udev" ]; then cp -r "${MODULE_BUILD_DIR}/etc/udev" "${MODULE_BUILD_DIR}/lib/" fi rm -rf -- "${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" cde "${MODULE_WORK_DIR}/src/${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 # Extra .deb packages local deb dir for deb in $REQUIRED_DEB_PACKAGES; do dir="${MODULE_WORK_DIR}/${deb##*/}" download "$deb" "$dir" apt install -y "$dir" || perror "apt install $dir failed." done } 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 }