# Template file for 'xorg-server'
pkgname=xorg-server
version=21.1.16
revision=1
build_style=meson
configure_args="-Dipv6=true -Dxorg=true -Dxnest=true -Dxephyr=true
 -Dxvfb=true -Dhal=false -Dudev=true -Dxkb_dir=/usr/share/X11/xkb
 -Dxkb_output_dir=/var/lib/xkb
 -Dlinux_acpi=true -Dlinux_apm=false -Dsuid_wrapper=true
 -Dxcsecurity=true -Dsystemd_logind=$(vopt_if elogind true false)
 -Dglamor=true -Ddri2=true -Ddri3=true -Dglx=true"
hostmakedepends="pkg-config xkbcomp flex"
makedepends="MesaLib-devel libXaw-devel libXfont2-devel
 libXrender-devel libXres-devel libXtst-devel libXv-devel libXxf86dga-devel
 libdmx-devel libepoxy-devel openssl-devel libtirpc-devel libxkbfile-devel
 libxkbui-devel libxshmfence-devel pixman-devel xcb-util-image-devel
 xcb-util-keysyms-devel xcb-util-renderutil-devel xcb-util-wm-devel xkbcomp
 nettle-devel libxcvt-devel font-util $(vopt_if elogind 'dbus-devel')"
# See hw/xfree86/common/xf86Module.h. Only care for the major version.
depends="xkeyboard-config $(vopt_if elogind 'elogind') xorg-server-common"
checkdepends="xkeyboard-config"
short_desc="X11 server from X.org"
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="MIT, BSD-3-Clause"
homepage="https://gitlab.freedesktop.org/xorg/xserver"
distfiles="${XORG_SITE}/xserver/${pkgname}-${version}.tar.xz"
checksum=b14a116d2d805debc5b5b2aac505a279e69b217dae2fae2dfcb62400471a9970
lib32disabled=yes
provides="xserver-abi-extension-10_1 xserver-abi-input-24_1
 xserver-abi-video-25_1 xf86-video-modesetting-1_1"
replaces="xf86-video-modesetting>=0 glamor-egl>=0"
conf_files="/etc/X11/Xwrapper.config"

build_options="elogind"
desc_option_elogind="Rootless Xorg support with elogind"

# disable VBE on non-x86 systems
case "$XBPS_TARGET_MACHINE" in
	x86_64*|i686*) configure_args+=" -Dint10=x86emu" ;;
	*) configure_args+=" -Dint10=false" ;;
esac

# Symbols must be resolved lazily for modules to work.
# See https://bugs.freedesktop.org/show_bug.cgi?id=41208#c5
LDFLAGS="-Wl,-z,lazy"

pre_configure() {
	case "$XBPS_TARGET_MACHINE" in
	*-musl)
		export CFLAGS+=" -D__uid_t=uid_t -D__gid_t=gid_t"
		;;
	esac
}

post_install() {
	vinstall ${FILESDIR}/Xwrapper.config 644 etc/X11

	vlicense COPYING

	chmod 4755 ${DESTDIR}/usr/libexec/Xorg.wrap

	find "${DESTDIR}"/usr/share/man -type f -iname '*[1-5].gz' -exec gunzip '{}' \;
}

xorg-server-xnest_package() {
	short_desc="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"
	depends="xkeyboard-config"
	pkg_install() {
		vmove usr/bin/Xvfb
		vmove usr/share/man/man1/Xvfb.1
	}
}

xorg-server-common_package() {
	short_desc+="- common files"
	pkg_install() {
		vmove usr/lib/xorg/protocol.txt
	}
}

xorg-server-devel_package() {
	depends="${makedepends}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove usr/share/aclocal
	}
}
