blob: e720451a8d2483a84f038a5ab2b1285efddcfa4c (
plain) (
tree)
|
|
#!/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
}
|