# Contributor: Ɓukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
setvar pkgname = 'xorg-server'
setvar pkgver = '1.19.3'
setvar pkgrel = '4'
setvar pkgdesc = ""X.Org X servers""
setvar url = ""http://xorg.freedesktop.org""
setvar arch = ""all""
setvar license = ""MIT""
setvar options = ""suid""
setvar subpackages = ""$pkgname-dbg $pkgname-dev $pkgname-doc xfbdev xvfb $pkgname-xephyr
	$pkgname-xnest $pkgname-xwayland""
# the modesetting driver is now shipped with xorg server
setvar replaces = ""xf86-video-modesetting""
setvar depends = ""
	font-misc-misc
	font-cursor-misc
	xkeyboard-config
	xkbcomp
	xinit
	""
setvar depends_dev = ""
	bigreqsproto
	compositeproto
	damageproto
	fixesproto
	libepoxy-dev
	libxfont2-dev
	mesa-dev
	recordproto
	xcmiscproto
	""
setvar makedepends = ""
	$depends_dev
	autoconf
	automake
	dri2proto
	eudev-dev
	fontsproto
	glproto
	inputproto
	kbproto
	libdrm-dev
	libepoxy-dev
	libpciaccess-dev
	libtool
	libx11-dev
	libxdamage-dev
	libxinerama-dev
	libxkbfile-dev
	libxkbui-dev
	libxv-dev
	libxxf86dga-dev
	libxxf86misc-dev
	openssl-dev
	perl
	pixman-dev
	presentproto
	randrproto
	renderproto
	resourceproto
	scrnsaverproto
	util-macros
	videoproto
	wayland-dev
	wayland-protocols
	xcb-util-dev
	xcb-util-image-dev
	xcb-util-keysyms-dev
	xcb-util-renderutil-dev
	xcb-util-wm-dev
	xextproto
	xf86driproto
	xineramaproto
	xproto
	xtrans
	zlib-dev
	""

setvar source = ""http://www.x.org/releases/individual/xserver/$pkgname-$pkgver.tar.bz2
	autoconfig-nvidia.patch
	autoconfig-sis.patch
	fix-musl-arm.patch
	modesetting-Set-correct-DRM-event-context-version.patch
	20-modules.conf
	""

setvar builddir = ""$srcdir"/$pkgname-$pkgver"
proc prepare {
	cd $builddir
	default_prepare

	# Fix dbus config path
	sed -i -e 's/\$(sysconfdir)/\/etc/' config/Makefile.*
	sed -i -e 's/termio.h/termios.h/' hw/xfree86/os-support/xf86_OSlib.h
}

proc build {
	cd $_builddir
	# xorg modules does not work with the -z now and it seems like we
	# cannot pass over the linker flag to .so files. so we tweak the
	# gcc specs.
	export CFLAGS="$CFLAGS -D_GNU_SOURCE"
	test $CLIBC == musl && export CFLAGS="$CFLAGS -D__gid_t=gid_t -D__uid_t=uid_t"
	export LDFLAGS="$LDFLAGS -Wl,-z,lazy"
	setvar _fontroot = ""/usr/share/fonts""

	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc/X11 \
		--localstatedir=/var \
		--with-fontrootdir=$_fontroot \
		--with-default-font-path=${_fontroot}/misc,${_fontroot}/100dpi:unscaled,${_fontroot}/75dpi:unscaled,${_fontroot}/TTF,${_fontroot}/Type1 \
		--with-xkb-path=/usr/share/X11/xkb \
		--with-xkb-output=/var/lib/xkb \
		--without-systemd-daemon \
		--enable-composite \
		--enable-config-udev \
		--enable-dri \
		--enable-dri2 \
		--enable-glamor \
		--enable-ipv6 \
		--enable-kdrive \
		--enable-xace \
		--enable-xcsecurity \
		--enable-xephyr \
		--enable-xfbdev \
		--enable-xnest \
		--enable-xorg \
		--enable-xres \
		--enable-xv \
		--enable-xwayland \
		--disable-config-hal \
		--disable-dmx \
		--disable-tslib \
		--disable-systemd-logind \
		--with-os-vendor="${DISTRO_NAME:-Alpine Linux}"

	make
}

proc check {
	cd $builddir
	make check
}

proc package {
	cd $builddir
	make -j1 DESTDIR="$pkgdir" install
	chmod u+s "$pkgdir"/usr/bin/Xorg

	# Don't conflict with xf86-input-evdev
	rm -f "$pkgdir"/usr/share/X11/xorg.conf.d/10-evdev.conf

	install -m755 -d "$pkgdir"/etc/X11/xorg.conf.d
	install -m644 "$srcdir"/20-modules.conf "$pkgdir"/etc/X11/xorg.conf.d/
	install -m755 -d "$pkgdir"/var/lib/xkb
	install -m644 -D COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}

proc xfbdev {
	setvar pkgdesc = ""X.org server for framebuffer""
	setvar depends = ''
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/Xfbdev "$subpkgdir"/usr/bin/
}

proc xvfb {
	setvar pkgdesc = ""Virtual Framebuffer 'fake' X server""
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/Xvfb "$subpkgdir"/usr/bin/
}

proc xephyr {
	setvar pkgdesc = ""kdrive based X Server which targets a window on a host X Server as its framebuffer""
	setvar depends = ''
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/Xephyr "$subpkgdir"/usr/bin/
}

proc xnest {
	setvar pkgdesc = ""A nested Xorg server""
	setvar depends = ''
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/Xnest "$subpkgdir"/usr/bin/
}

proc xwayland {
	setvar pkgdesc = ""run X clients under wayland""
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/Xwayland "$subpkgdir"/usr/bin/
}

setvar sha512sums = ""b988897418399e1361fdcca9465a781f55f8f6fbfdc5a59edfaee9046a0c6ad7a76f348d88b6004ce3d3fb3966b4c5af0b854f6549c32b2b8d7a43758809f669  xorg-server-1.19.3.tar.bz2
4dcaa60fbfc61636e7220a24a72bba19984a6dc752061cb40b1bd566c0e614d08927b6c223ffaaaa05636765fddacdc3113fde55d25fd09cd0c786ff44f51447  autoconfig-nvidia.patch
30a78f4278edd535c45ee3f80933427cb029a13abaa4b041f816515fdd8f64f00b9c6aef50d4eba2aaf0d4f333e730399864fd97fa18891273601c77a6637200  autoconfig-sis.patch
b799e757a22a61ac283adbd7a8df1ad4eccce0bb6cac38a0c962ba8438bba3cf6637a65bb64859e7b32399fca672283a49960207e186c271ba574580de360d09  fix-musl-arm.patch
f66f11255aa8a98c89763cb213f08628c937cb13e7ab4bd399a246e0b630316343f35e191d92e55b0fa68e601c243220a3258bbfc5d50e74ccadfe6cb27310f5  modesetting-Set-correct-DRM-event-context-version.patch
95036f2452732cc31f6b646da9f46b7be30f4c9392724386b02f67fece1f506b00e15d14cbd8cf0ce75ca1fd144b4bea7e59288d4aaf4d6c1e06e5168931eb67  20-modules.conf""