diff --git a/scripts/xlibre-video-dummy-with-vt/.gitignore b/scripts/xlibre-video-dummy-with-vt/.gitignore new file mode 100644 index 0000000..218cc90 --- /dev/null +++ b/scripts/xlibre-video-dummy-with-vt/.gitignore @@ -0,0 +1,5 @@ +* +!PKGBUILD +!.SRCINFO +!.gitignore +!.nvchecker.toml diff --git a/scripts/xlibre-video-dummy-with-vt/.nvchecker.toml b/scripts/xlibre-video-dummy-with-vt/.nvchecker.toml new file mode 100644 index 0000000..4fbb5c4 --- /dev/null +++ b/scripts/xlibre-video-dummy-with-vt/.nvchecker.toml @@ -0,0 +1,5 @@ +[xlibre-video-dummy] +source = "git" +git = "https://github.com/x11libre/xf86-video-dummy.git" +include_regex = "xlibre-xf86-video-dummy-.*" +prefix = "xlibre-xf86-video-dummy-" diff --git a/scripts/xlibre-video-dummy-with-vt/PKGBUILD b/scripts/xlibre-video-dummy-with-vt/PKGBUILD new file mode 100644 index 0000000..f3d007e --- /dev/null +++ b/scripts/xlibre-video-dummy-with-vt/PKGBUILD @@ -0,0 +1,59 @@ +# Maintainer: Storm Dragon + +pkgname=xlibre-video-dummy-with-vt +pkgver=25.0.0 +pkgrel=5 +pkgdesc="XLibre dummy video driver with an allocated vt" +arch=(x86_64 aarch64) +_pkgname=xf86-video-dummy +url="https://github.com/X11Libre/${_pkgname}" +license=('MIT' 'X11') +depends=("xlibre-xserver>=${pkgver%.*}" 'glibc') +makedepends=("xlibre-xserver-devel>=${pkgver%.*}" 'xorgproto') +conflicts=("${_pkgname}") +provides=("${_pkgname}" 'x11win-video-dummy') +source=("${url}/archive/refs/tags/xlibre-${_pkgname}-${pkgver}.tar.gz" + "dummy_driver.patch") +groups=('xlibre-drivers') +sha256sums=('b56e610705cd3d4d86422a11c6b0d93357e4d4749a05178a85fd250301d357b9' + '68cdcf21e9b54a7fdb8e968292e1ef9ad154ddb1361b141a0a635c2a13c92bfa') + +prepare() { + cd "${srcdir}/${_pkgname}-xlibre-${_pkgname}-${pkgver}/src" + patch -i "${srcdir}/dummy_driver.patch" +} + +build() { + case "$CARCH" in + "x86_64") + CFLAGS=" -march=x86-64" + ;; + "aarch64") + CFLAGS=" -march=armv8-a" + ;; + *) + CFLAGS=" -march=native" + ;; + esac + CFLAGS+=" -mtune=generic -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security" + CFLAGS+=" -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" + LDFLAGS=" -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,lazy -Wl,-z,relro -Wl,-z,pack-relative-relocs" + if [[ $CARCH != 'aarch64' ]]; then + CFLAGS+=" -fcf-protection" + fi + CXXFLAGS="${CFLAGS} -Wp,-D_GLIBCXX_ASSERTIONS" + export CFLAGS="${CFLAGS}" + export CXXFLAGS="${CXXFLAGS}" + export LDFLAGS="${LDFLAGS}" + + cd "${srcdir}/${_pkgname}-xlibre-${_pkgname}-${pkgver}" + ./autogen.sh + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${_pkgname}-xlibre-${_pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/scripts/xlibre-video-dummy-with-vt/dummy_driver.patch b/scripts/xlibre-video-dummy-with-vt/dummy_driver.patch new file mode 100644 index 0000000..73211ab --- /dev/null +++ b/scripts/xlibre-video-dummy-with-vt/dummy_driver.patch @@ -0,0 +1,17 @@ +--- a/src/dummy_driver.c ++++ b/src/dummy_driver.c +@@ -1016,10 +1016,10 @@ dummyDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, pointer ptr) + CARD32 *flag; + + switch (op) { +- case GET_REQUIRED_HW_INTERFACES: +- flag = (CARD32*)ptr; +- (*flag) = HW_SKIP_CONSOLE; +- return TRUE; ++ case GET_REQUIRED_HW_INTERFACES: ++ flag = (CARD32*)ptr; ++ /* Allow the driver to allocate a VT instead of skipping the console. */ ++ return TRUE; + default: + return FALSE; + }