# Template build file for 'xorg-server'.
pkgname=xorg-server
version=1.14.2
revision=1
build_style=gnu-configure
configure_args="--enable-ipv6 --enable-xcsecurity --enable-record
 --enable-xnest --enable-xephyr --enable-composite --enable-xvfb
 --disable-static --disable-config-hal --disable-xfbdev --disable-xfake
 --disable-config-dbus --enable-config-udev --sysconfdir=/etc/X11
 --with-xkb-path=/usr/share/X11/xkb --with-xkb-output=/var/lib/xkb
 --with-fontrootdir=/usr/share/fonts/X11 --with-sha1=libcrypto
 --disable-dmx --disable-xfree86-utils --enable-dga --enable-xorg
 --enable-kdrive --enable-kdrive-evdev --enable-kdrive-kbd
 --enable-kdrive-mouse --enable-xorg --enable-xcsecurity"
short_desc="The X11 server from X.org"
maintainer="Juan RP <xtraeme@gmail.com>"
homepage="http://xorg.freedesktop.org"
license="MIT/X11, BSD"
distfiles="${XORG_SITE}/xserver/${pkgname}-${version}.tar.bz2"
checksum=f6ddfb3f1cfff2d69d45657aec626ebe8b5847810154ff7df7ed2072b076c86b

hostmakedepends="pkg-config perl flex"
makedepends="damageproto inputproto>=2.2 glproto>=1.4.15 xproto>=7.0.22
 dri2proto>=2.1 xf86driproto randrproto videoproto compositeproto scrnsaverproto
 resourceproto>=1.2.0 xineramaproto xcmiscproto bigreqsproto libudev-devel>=183
 openssl-devel libX11-devel libXext-devel libdmx-devel libpciaccess-devel
 libXfont-devel libXmu-devel libXrender-devel libXfixes-devel libXi-devel
 libXaw-devel libdrm-devel libXtst-devel libXres-devel libxkbui-devel
 libxkbfile-devel libXxf86dga-devel libXv-devel pixman-devel xkeyboard-config"

if [ "$CROSS_BUILD" ]; then
	makedepends+=" libfl-devel"
fi

# Package build options
build_options="opengl"
desc_option_opengl="Enable support for OpenGL/GLX and DRI"

# Enable gl by default on x86.
if [ "$XBPS_TARGET_MACHINE" = "i686" -o "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
	build_options_default="opengl"
fi

if [ "$build_option_opengl" ]; then
	configure_args+=" --enable-dri --enable-dri2 --enable-glx-tls --enable-glx"
	makedepends+=" MesaLib-devel"
else
	configure_args+=" --disable-dri --disable-dri2 --disable-glx"
fi

post_install() {
	vinstall ${FILESDIR}/11-quirks.conf 644 etc/X11/xorg.conf.d
	vinstall COPYING 644 usr/share/licenses/${pkgname}

	# Xorg must be setuid.
	chmod 4755 ${DESTDIR}/usr/bin/Xorg

	if [ -e ${DESTDIR}/usr/lib/xorg/modules/extensions/libglx.so ]; then
		# Support nvidia and amd binary blobs to provide their own
		# implementation.
		mv ${DESTDIR}/usr/lib/xorg/modules/extensions/libglx.so \
			${DESTDIR}/usr/lib/xorg/modules/extensions/libglx-xorg.so
	fi
}

xorg-server-xnest_package() {
	short_desc="A nested X server that runs as an X application"
	pkg_install() {
		vmove usr/bin/Xnest
		vmove usr/share/man/man1/Xnest.1
	}
}

xorg-server-xephyr_package() {
	short_desc="X server outputting to a window on a pre-existing X display"
	pkg_install() {
		vmove usr/bin/Xephyr
		vmove usr/share/man/man1/Xephyr.1
	}
}

xorg-server-xvfb_package() {
	short_desc="Virtual framebuffer X server"
	pkg_install() {
		vmove usr/bin/Xvfb
		vmove usr/share/man/man1/Xvfb.1
	}
}

xorg-server-devel_package() {
	depends="libudev-devel dri2proto>=2.1 glproto xf86driproto randrproto
		videoproto compositeproto scrnsaverproto resourceproto xineramaproto
		libdmx-devel libXext-devel libX11-devel libpciaccess-devel libXfont-devel
		libXau-devel pixman-devel libXdmcp-devel libXmu-devel libXrender-devel
		libXfixes-devel libXi-devel libXaw-devel libXt-devel libXpm-devel
		libdrm-devel>=2.4.34"
	if [ "$build_option_opengl" ]; then
		depends+=" MesaLib-devel"
	fi
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove usr/share/aclocal
	}
}

xorg-server_package() {
	# See hw/xfree86/common/xf86Module.h. Only care for the major version.
	provides="xserver-abi-extension-7_1 xserver-abi-input-19_1 xserver-abi-video-14_1"
	depends="xkeyboard-config"
	pkg_install() {
		vmove all
	}
}