git: 654acf5f9583 - main - x11-drivers/xlibre-drivers: New port: XLibre drivers

From: Jose Alonso Cardenas Marquez <acm_at_FreeBSD.org>
Date: Fri, 12 Dec 2025 01:26:55 UTC
The branch main has been updated by acm:

URL: https://cgit.FreeBSD.org/ports/commit/?id=654acf5f9583dd34074696ab76d9108cca5b8058

commit 654acf5f9583dd34074696ab76d9108cca5b8058
Author:     b-aaz <b-aazbsd@proton.me>
AuthorDate: 2025-12-12 01:23:34 +0000
Commit:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
CommitDate: 2025-12-12 01:26:26 +0000

    x11-drivers/xlibre-drivers: New port: XLibre drivers
    
    New port: x11-drivers/xlibre-xf86-input-elographics
    New port: x11-drivers/xlibre-xf86-input-evdev
    New port: x11-drivers/xlibre-xf86-input-joystick
    New port: x11-drivers/xlibre-xf86-input-keyboard
    New port: x11-drivers/xlibre-xf86-input-libinput
    New port: x11-drivers/xlibre-xf86-input-mouse
    New port: x11-drivers/xlibre-xf86-input-synaptics
    New port: x11-drivers/xlibre-xf86-input-vmmouse
    New port: x11-drivers/xlibre-xf86-input-void
    New port: x11-drivers/xlibre-xf86-input-wacom
    New port: x11-drivers/xlibre-xf86-video-amdgpu
    New port: x11-drivers/xlibre-xf86-video-ast
    New port: x11-drivers/xlibre-xf86-video-ati
    New port: x11-drivers/xlibre-xf86-video-dummy
    New port: x11-drivers/xlibre-xf86-video-intel
    New port: x11-drivers/xlibre-xf86-video-mga
    New port: x11-drivers/xlibre-xf86-video-nv
    New port: x11-drivers/xlibre-xf86-video-qxl
    New port: x11-drivers/xlibre-xf86-video-vesa
    New port: x11-drivers/xlibre-xf86-video-vmware
    
    Reviewed by:    dtxdf acm
    Tested by:      dtxdf acm
    Obtained from:  https://github.com/b-aaz/xlibre-ports
---
 x11-drivers/Makefile                               |   21 +
 x11-drivers/xlibre-drivers/Makefile                |   85 ++
 x11-drivers/xlibre-drivers/pkg-descr               |    1 +
 x11-drivers/xlibre-xf86-input-elographics/Makefile |   18 +
 x11-drivers/xlibre-xf86-input-elographics/distinfo |    3 +
 .../xlibre-xf86-input-elographics/pkg-descr        |    1 +
 .../xlibre-xf86-input-elographics/pkg-plist        |    2 +
 x11-drivers/xlibre-xf86-input-evdev/Makefile       |   23 +
 x11-drivers/xlibre-xf86-input-evdev/distinfo       |    3 +
 x11-drivers/xlibre-xf86-input-evdev/pkg-descr      |    3 +
 x11-drivers/xlibre-xf86-input-evdev/pkg-plist      |    5 +
 x11-drivers/xlibre-xf86-input-joystick/Makefile    |   19 +
 x11-drivers/xlibre-xf86-input-joystick/distinfo    |    3 +
 x11-drivers/xlibre-xf86-input-joystick/pkg-descr   |    1 +
 x11-drivers/xlibre-xf86-input-joystick/pkg-plist   |    4 +
 x11-drivers/xlibre-xf86-input-keyboard/Makefile    |   18 +
 x11-drivers/xlibre-xf86-input-keyboard/distinfo    |    3 +
 .../files/patch-at_scancode.c                      |   31 +
 .../files/patch-src__bsd_KbdMap.c                  |  229 +++++
 .../files/patch-src__bsd_kbd.c                     |   14 +
 .../files/patch-src__kbd.c                         |   24 +
 x11-drivers/xlibre-xf86-input-keyboard/pkg-descr   |    1 +
 x11-drivers/xlibre-xf86-input-keyboard/pkg-plist   |    2 +
 x11-drivers/xlibre-xf86-input-libinput/Makefile    |   21 +
 x11-drivers/xlibre-xf86-input-libinput/distinfo    |    3 +
 x11-drivers/xlibre-xf86-input-libinput/pkg-descr   |    3 +
 x11-drivers/xlibre-xf86-input-libinput/pkg-plist   |    5 +
 x11-drivers/xlibre-xf86-input-mouse/Makefile       |   18 +
 x11-drivers/xlibre-xf86-input-mouse/distinfo       |    3 +
 .../files/patch-src-bsd_mouse.c                    | 1039 ++++++++++++++++++++
 .../files/patch-src_mouse.c                        |  196 ++++
 .../files/patch-src_mouse.h                        |   25 +
 .../files/patch-src_mousePriv.h                    |   11 +
 x11-drivers/xlibre-xf86-input-mouse/pkg-descr      |    1 +
 x11-drivers/xlibre-xf86-input-mouse/pkg-plist      |    4 +
 x11-drivers/xlibre-xf86-input-synaptics/Makefile   |   27 +
 x11-drivers/xlibre-xf86-input-synaptics/distinfo   |    3 +
 .../files/patch-Makefile.am                        |    7 +
 .../files/patch-configure.ac                       |   10 +
 .../files/patch-src_eventcomm.h                    |   18 +
 x11-drivers/xlibre-xf86-input-synaptics/pkg-descr  |    1 +
 x11-drivers/xlibre-xf86-input-synaptics/pkg-plist  |    9 +
 x11-drivers/xlibre-xf86-input-vmmouse/Makefile     |   23 +
 x11-drivers/xlibre-xf86-input-vmmouse/distinfo     |    3 +
 x11-drivers/xlibre-xf86-input-vmmouse/pkg-descr    |    1 +
 x11-drivers/xlibre-xf86-input-vmmouse/pkg-plist    |    8 +
 x11-drivers/xlibre-xf86-input-void/Makefile        |   18 +
 x11-drivers/xlibre-xf86-input-void/distinfo        |    3 +
 x11-drivers/xlibre-xf86-input-void/pkg-descr       |    1 +
 x11-drivers/xlibre-xf86-input-void/pkg-plist       |    2 +
 x11-drivers/xlibre-xf86-input-wacom/Makefile       |   41 +
 x11-drivers/xlibre-xf86-input-wacom/distinfo       |    3 +
 .../files/fixpatch-src-wcmValidateDevice.c         |   64 ++
 .../files/patch-src-wcmConfig.c                    |   19 +
 .../files/patch-src-wcmUSB.c                       |   29 +
 .../files/patch-src-xf86WacomDefs.h                |   12 +
 .../files/patch-tools-isdv4-serial-debugger.c      |   10 +
 .../files/patch-tools-isdv4-serial-inputattach.c   |   71 ++
 .../files/patch-tools-tools-shared.c               |   34 +
 .../xlibre-xf86-input-wacom/files/pkg-message.in   |   15 +
 .../files/wacom.conf.sample                        |   33 +
 x11-drivers/xlibre-xf86-input-wacom/files/wacom.in |   44 +
 x11-drivers/xlibre-xf86-input-wacom/pkg-descr      |    2 +
 x11-drivers/xlibre-xf86-input-wacom/pkg-plist      |   14 +
 x11-drivers/xlibre-xf86-video-amdgpu/Makefile      |   32 +
 x11-drivers/xlibre-xf86-video-amdgpu/distinfo      |    5 +
 x11-drivers/xlibre-xf86-video-amdgpu/pkg-descr     |    7 +
 x11-drivers/xlibre-xf86-video-ast/Makefile         |   19 +
 x11-drivers/xlibre-xf86-video-ast/distinfo         |    3 +
 .../files/patch-src_ast__driver.c                  |   19 +
 x11-drivers/xlibre-xf86-video-ast/pkg-descr        |    1 +
 x11-drivers/xlibre-xf86-video-ati/Makefile         |   28 +
 x11-drivers/xlibre-xf86-video-ati/distinfo         |    3 +
 x11-drivers/xlibre-xf86-video-ati/pkg-descr        |    1 +
 x11-drivers/xlibre-xf86-video-ati/pkg-plist        |    5 +
 x11-drivers/xlibre-xf86-video-dummy/Makefile       |   16 +
 x11-drivers/xlibre-xf86-video-dummy/distinfo       |    3 +
 x11-drivers/xlibre-xf86-video-dummy/pkg-descr      |    1 +
 x11-drivers/xlibre-xf86-video-dummy/pkg-plist      |    1 +
 x11-drivers/xlibre-xf86-video-intel/Makefile       |   54 +
 x11-drivers/xlibre-xf86-video-intel/distinfo       |    3 +
 .../files/patch-benchmarks_dri3-swap.c             |   25 +
 .../xlibre-xf86-video-intel/files/patch-hyphen     |   24 +
 .../files/patch-man_meson.build                    |    9 +
 .../files/patch-meson.build                        |   35 +
 .../files/patch-meson__options.txt                 |   13 +
 .../files/patch-prefer-iris                        |   31 +
 .../files/patch-src_intel__device.c                |   13 +
 .../files/patch-src_intel__list.h                  |  145 +++
 .../files/patch-src_meson.build                    |   38 +
 .../files/patch-src_sna_kgem.c                     |   24 +
 .../files/patch-src_sna_meson.build                |   11 +
 .../files/patch-test_present-speed.c               |   99 ++
 .../files/patch-tools_meson.build                  |   11 +
 x11-drivers/xlibre-xf86-video-intel/pkg-descr      |   14 +
 x11-drivers/xlibre-xf86-video-intel/pkg-plist      |   10 +
 x11-drivers/xlibre-xf86-video-mga/Makefile         |   19 +
 x11-drivers/xlibre-xf86-video-mga/distinfo         |    3 +
 .../files/patch-src_mga__dac3026.c                 |   15 +
 .../files/patch-src_mga__dri.c                     |   22 +
 .../files/patch-src_mga__driver.c                  |   19 +
 x11-drivers/xlibre-xf86-video-mga/pkg-descr        |    1 +
 x11-drivers/xlibre-xf86-video-mga/pkg-plist        |    2 +
 x11-drivers/xlibre-xf86-video-nv/Makefile          |   19 +
 x11-drivers/xlibre-xf86-video-nv/distinfo          |    3 +
 x11-drivers/xlibre-xf86-video-nv/pkg-descr         |    1 +
 x11-drivers/xlibre-xf86-video-nv/pkg-plist         |    2 +
 x11-drivers/xlibre-xf86-video-qxl/Makefile         |   39 +
 x11-drivers/xlibre-xf86-video-qxl/distinfo         |    3 +
 .../files/patch-spiceqxl_audio.c                   |   14 +
 .../xlibre-xf86-video-qxl/files/patch-src-mspace.h |   11 +
 x11-drivers/xlibre-xf86-video-qxl/pkg-descr        |    3 +
 x11-drivers/xlibre-xf86-video-qxl/pkg-plist        |    5 +
 x11-drivers/xlibre-xf86-video-vesa/Makefile        |   19 +
 x11-drivers/xlibre-xf86-video-vesa/distinfo        |    3 +
 x11-drivers/xlibre-xf86-video-vesa/pkg-descr       |    1 +
 x11-drivers/xlibre-xf86-video-vesa/pkg-plist       |    2 +
 x11-drivers/xlibre-xf86-video-vmware/Makefile      |   25 +
 x11-drivers/xlibre-xf86-video-vmware/distinfo      |    3 +
 .../xlibre-xf86-video-vmware/files/patch-saa_saa.h |   10 +
 .../files/patch-src_vmware.c                       |   11 +
 .../files/patch-vmwgfx_vmwgfx__driver.h            |   10 +
 x11-drivers/xlibre-xf86-video-vmware/pkg-descr     |    1 +
 x11-drivers/xlibre-xf86-video-vmware/pkg-plist     |    2 +
 124 files changed, 3339 insertions(+)

diff --git a/x11-drivers/Makefile b/x11-drivers/Makefile
index a3c59c418859..981a770111b8 100644
--- a/x11-drivers/Makefile
+++ b/x11-drivers/Makefile
@@ -22,6 +22,27 @@
     SUBDIR += xf86-video-scfb
     SUBDIR += xf86-video-vesa
     SUBDIR += xf86-video-vmware
+    SUBDIR += xlibre-drivers
+    SUBDIR += xlibre-xf86-input-elographics
+    SUBDIR += xlibre-xf86-input-evdev
+    SUBDIR += xlibre-xf86-input-joystick
+    SUBDIR += xlibre-xf86-input-keyboard
+    SUBDIR += xlibre-xf86-input-libinput
+    SUBDIR += xlibre-xf86-input-mouse
+    SUBDIR += xlibre-xf86-input-synaptics
+    SUBDIR += xlibre-xf86-input-vmmouse
+    SUBDIR += xlibre-xf86-input-void
+    SUBDIR += xlibre-xf86-input-wacom
+    SUBDIR += xlibre-xf86-video-amdgpu
+    SUBDIR += xlibre-xf86-video-ast
+    SUBDIR += xlibre-xf86-video-ati
+    SUBDIR += xlibre-xf86-video-dummy
+    SUBDIR += xlibre-xf86-video-intel
+    SUBDIR += xlibre-xf86-video-mga
+    SUBDIR += xlibre-xf86-video-nv
+    SUBDIR += xlibre-xf86-video-qxl
+    SUBDIR += xlibre-xf86-video-vesa
+    SUBDIR += xlibre-xf86-video-vmware
     SUBDIR += xorg-drivers
     SUBDIR += xorgxrdp
     SUBDIR += xorgxrdp-devel
diff --git a/x11-drivers/xlibre-drivers/Makefile b/x11-drivers/xlibre-drivers/Makefile
new file mode 100644
index 000000000000..6882b419a964
--- /dev/null
+++ b/x11-drivers/xlibre-drivers/Makefile
@@ -0,0 +1,85 @@
+PORTNAME=	xlibre-drivers
+PORTVERSION=	0.1
+CATEGORIES=	x11-drivers
+
+MAINTAINER=	b-aazbsd@proton.me
+COMMENT=	XLibre drivers meta-port
+WWW=		https://github.com/X11Libre/
+
+LICENSE=	none
+
+USES=		metaport
+
+.include "../../x11-servers/xlibre-server/Makefile.version"
+MODULEDIR=	${PREFIX}/lib/xorg/modules/xlibre-${XLIBRE_MJR_VER}/
+XORG_MODULEDIR=	${PREFIX}/lib/xorg/modules/
+VIDEODIR=	${MODULEDIR}/drivers
+INPUTDIR=	${MODULEDIR}/input
+XORG_VIDEODIR=	${XORG_MODULEDIR}/drivers
+XORG_INPUTDIR=	${XORG_MODULEDIR}/input
+
+INPUT_DRIVERS=		elographics \
+			evdev \
+			joystick \
+			keyboard \
+			libinput \
+			mouse \
+			synaptics \
+			void \
+			egalax \
+			wacom
+
+VIDEO_DRIVERS=		ast \
+			dummy \
+			nv \
+			scfb \
+			vesa
+
+OPTIONS_DEFAULT=	KEYBOARD \
+			LIBINPUT \
+			MOUSE \
+			SCFB
+
+.for type in input video
+. for a in ${${type:tu}_DRIVERS}
+OPTIONS_DEFINE+=	${a:tu}
+${a:tu}_DESC=		Install ${a} ${type} driver
+. endfor
+.endfor
+
+OPTIONS_DEFINE_amd64=	AMDGPU ATI INTEL VMMOUSE VMWARE
+OPTIONS_DEFAULT_amd64=	VESA
+
+AMDGPU_DESC=		Install amdgpu video driver
+ATI_DESC=		Install ati (radeon) video driver
+INTEL_DESC=		Install intel video driver
+VMMOUSE_DESC=		Install vmmouse input driver
+VMWARE_DESC=		Install vmware video driver
+
+# these drivers have a different module name compared to the plugin they install
+QUIRKS=		keyboard:kbd
+NONXLIBRE=	scfb egalax
+
+.include <bsd.port.options.mk>
+
+# Manual add arch specific drivers so they be added to depend lines.
+.if ${ARCH}==i386 || ${ARCH}==amd64
+INPUT_DRIVERS+=	vmmouse
+VIDEO_DRIVERS+=	amdgpu ati intel vmware
+.endif
+
+.for type in input video
+. for i in ${${type:tu}_DRIVERS}
+.  if ${PORT_OPTIONS:M${i:tu}} != ""
+.   if ${QUIRKS:M${i}\:*:C/.*://} != ""
+RUN_DEPENDS+=	${${type:tu}DIR}/${QUIRKS:M${i}\:*:C/.*://}_drv.so:x11-drivers/xlibre-xf86-${type}-${i}
+.   elif ${NONXLIBRE:M${i}}
+# RUN_DEPENDS+=	${XORG_${type:tu}DIR}/${i}_drv.so:x11-drivers/xf86-${type}-${i}@xlibre
+.   else
+RUN_DEPENDS+=	${${type:tu}DIR}/${i}_drv.so:x11-drivers/xlibre-xf86-${type}-${i}
+.   endif
+.  endif
+. endfor
+.endfor
+
+.include <bsd.port.mk>
diff --git a/x11-drivers/xlibre-drivers/pkg-descr b/x11-drivers/xlibre-drivers/pkg-descr
new file mode 100644
index 000000000000..5eb8e024f47f
--- /dev/null
+++ b/x11-drivers/xlibre-drivers/pkg-descr
@@ -0,0 +1 @@
+This is a meta-port that contains various XLibre drivers for the XLibre server.
diff --git a/x11-drivers/xlibre-xf86-input-elographics/Makefile b/x11-drivers/xlibre-xf86-input-elographics/Makefile
new file mode 100644
index 000000000000..6645f3394c96
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-elographics/Makefile
@@ -0,0 +1,18 @@
+PORTNAME=	xlibre-xf86-input-elographics
+PORTVERSION=	1.4.4.2
+CATEGORIES=	x11-drivers
+
+MAINTAINER=	b-aazbsd@proton.me
+COMMENT=	XLibre elographics input driver
+WWW=		https://github.com/X11Libre/xf86-input-elographics/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+CONFLICTS_INSTALL=	xf86-input-elographics
+
+USES=		xlibre-cat:driver
+
+GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
+
+.include <bsd.port.mk>
diff --git a/x11-drivers/xlibre-xf86-input-elographics/distinfo b/x11-drivers/xlibre-xf86-input-elographics/distinfo
new file mode 100644
index 000000000000..6cf0513762fe
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-elographics/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760816138
+SHA256 (xlibre/driver/X11Libre-xf86-input-elographics-1.4.4.2-xlibre-xf86-input-elographics-1.4.4.2_GH0.tar.gz) = 704388429ec78b0a38b77c8598e15b6855383f4f1b49c0d7978a29fd18767bf9
+SIZE (xlibre/driver/X11Libre-xf86-input-elographics-1.4.4.2-xlibre-xf86-input-elographics-1.4.4.2_GH0.tar.gz) = 18960
diff --git a/x11-drivers/xlibre-xf86-input-elographics/pkg-descr b/x11-drivers/xlibre-xf86-input-elographics/pkg-descr
new file mode 100644
index 000000000000..fabf8a56636a
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-elographics/pkg-descr
@@ -0,0 +1 @@
+This package contains the XLibre xf86-input-elographics driver.
diff --git a/x11-drivers/xlibre-xf86-input-elographics/pkg-plist b/x11-drivers/xlibre-xf86-input-elographics/pkg-plist
new file mode 100644
index 000000000000..b2d5859882be
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-elographics/pkg-plist
@@ -0,0 +1,2 @@
+lib/xorg/modules/xlibre-25.0/input/elographics_drv.so
+share/man/man4/elographics.4x.gz
diff --git a/x11-drivers/xlibre-xf86-input-evdev/Makefile b/x11-drivers/xlibre-xf86-input-evdev/Makefile
new file mode 100644
index 000000000000..a2a935e3161a
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-evdev/Makefile
@@ -0,0 +1,23 @@
+PORTNAME=	xlibre-xf86-input-evdev
+PORTVERSION=	2.11.0.2
+CATEGORIES=	x11-drivers
+
+MAINTAINER=	b-aazbsd@proton.me
+COMMENT=	XLibre event device input driver
+WWW=		https://github.com/X11Libre/xf86-input-evdev/
+
+LICENSE=	MIT # various styles
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+CONFLICTS_INSTALL=	xf86-input-evdev
+
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
+LIB_DEPENDS=	libevdev.so:devel/libevdev \
+		libmtdev.so:devel/libmtdev
+RUN_DEPENDS=	webcamd>=3.1.0.1:multimedia/webcamd
+
+USES=		pathfix xlibre-cat:driver
+GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
+CONFIGURE_ENV=	UDEV_CFLAGS=" " UDEV_LIBS=" "
+
+.include <bsd.port.mk>
diff --git a/x11-drivers/xlibre-xf86-input-evdev/distinfo b/x11-drivers/xlibre-xf86-input-evdev/distinfo
new file mode 100644
index 000000000000..384c203d2940
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-evdev/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760816207
+SHA256 (xlibre/driver/X11Libre-xf86-input-evdev-2.11.0.2-xlibre-xf86-input-evdev-2.11.0.2_GH0.tar.gz) = 70a8a65ec56cce7057b8491f68744c6883debe8750948bb290ae7b1c3ec28dfc
+SIZE (xlibre/driver/X11Libre-xf86-input-evdev-2.11.0.2-xlibre-xf86-input-evdev-2.11.0.2_GH0.tar.gz) = 50815
diff --git a/x11-drivers/xlibre-xf86-input-evdev/pkg-descr b/x11-drivers/xlibre-xf86-input-evdev/pkg-descr
new file mode 100644
index 000000000000..0517dd586a1c
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-evdev/pkg-descr
@@ -0,0 +1,3 @@
+This package contains the XLibre xf86-input-evdev driver. It supports
+all input devices that webcamd knows about, including tablets,
+touchscreens, joysticks and HIDs.
diff --git a/x11-drivers/xlibre-xf86-input-evdev/pkg-plist b/x11-drivers/xlibre-xf86-input-evdev/pkg-plist
new file mode 100644
index 000000000000..8f0ebe5df126
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-evdev/pkg-plist
@@ -0,0 +1,5 @@
+include/xorg/evdev-properties.h
+lib/xorg/modules/xlibre-25.0/input/evdev_drv.so
+libdata/pkgconfig/xorg-evdev.pc
+share/man/man4/evdev.4x.gz
+share/X11/xorg.conf.d/10-evdev.conf
diff --git a/x11-drivers/xlibre-xf86-input-joystick/Makefile b/x11-drivers/xlibre-xf86-input-joystick/Makefile
new file mode 100644
index 000000000000..49bbb337c1bd
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-joystick/Makefile
@@ -0,0 +1,19 @@
+PORTNAME=	xlibre-xf86-input-joystick
+PORTVERSION=	1.6.4.1
+CATEGORIES=	x11-drivers
+
+MAINTAINER=	b-aazbsd@proton.me
+COMMENT=	XLibre joystick input driver
+WWW=		https://github.com/X11Libre/xf86-input-joystick/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+CONFLICTS_INSTALL=	xf86-input-joystick
+
+GH_TAGNAME=	931dbdb
+USES=		pathfix xlibre-cat:driver
+
+GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
+
+.include <bsd.port.mk>
diff --git a/x11-drivers/xlibre-xf86-input-joystick/distinfo b/x11-drivers/xlibre-xf86-input-joystick/distinfo
new file mode 100644
index 000000000000..a4f30057988e
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-joystick/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760819782
+SHA256 (xlibre/driver/X11Libre-xf86-input-joystick-1.6.4.1-931dbdb_GH0.tar.gz) = 166c8156dd50bbe4fa2b0406de48caa6a6af84109356814a0644eade8dba0a75
+SIZE (xlibre/driver/X11Libre-xf86-input-joystick-1.6.4.1-931dbdb_GH0.tar.gz) = 38524
diff --git a/x11-drivers/xlibre-xf86-input-joystick/pkg-descr b/x11-drivers/xlibre-xf86-input-joystick/pkg-descr
new file mode 100644
index 000000000000..b773a83901b5
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-joystick/pkg-descr
@@ -0,0 +1 @@
+This package contains the XLibre xf86-input-joystick driver.
diff --git a/x11-drivers/xlibre-xf86-input-joystick/pkg-plist b/x11-drivers/xlibre-xf86-input-joystick/pkg-plist
new file mode 100644
index 000000000000..db8fa1093e82
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-joystick/pkg-plist
@@ -0,0 +1,4 @@
+include/xorg/joystick-properties.h
+lib/xorg/modules/xlibre-25.0/input/joystick_drv.so
+libdata/pkgconfig/xorg-joystick.pc
+share/man/man4/joystick.4x.gz
diff --git a/x11-drivers/xlibre-xf86-input-keyboard/Makefile b/x11-drivers/xlibre-xf86-input-keyboard/Makefile
new file mode 100644
index 000000000000..82220fefad03
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-keyboard/Makefile
@@ -0,0 +1,18 @@
+PORTNAME=	xlibre-xf86-input-keyboard
+PORTVERSION=	2.1.0.2
+CATEGORIES=	x11-drivers
+
+MAINTAINER=	b-aazbsd@proton.me
+COMMENT=	XLibre keyboard input driver
+WWW=		https://github.com/X11Libre/xf86-input-keyboard/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+CONFLICTS_INSTALL=	xf86-input-keyboard
+
+USES=		xlibre-cat:driver
+
+GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
+
+.include <bsd.port.mk>
diff --git a/x11-drivers/xlibre-xf86-input-keyboard/distinfo b/x11-drivers/xlibre-xf86-input-keyboard/distinfo
new file mode 100644
index 000000000000..3f95207b8ae2
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-keyboard/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760816300
+SHA256 (xlibre/driver/X11Libre-xf86-input-keyboard-2.1.0.2-xlibre-xf86-input-keyboard-2.1.0.2_GH0.tar.gz) = 6e72dc5bde6215d1daa6970367caac27a7b8f491c1ea6b3030960a4736169110
+SIZE (xlibre/driver/X11Libre-xf86-input-keyboard-2.1.0.2-xlibre-xf86-input-keyboard-2.1.0.2_GH0.tar.gz) = 49451
diff --git a/x11-drivers/xlibre-xf86-input-keyboard/files/patch-at_scancode.c b/x11-drivers/xlibre-xf86-input-keyboard/files/patch-at_scancode.c
new file mode 100644
index 000000000000..4a24423e4f33
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-keyboard/files/patch-at_scancode.c
@@ -0,0 +1,31 @@
+--- src/at_scancode.c.orig	Sun Jul  3 09:01:35 2005
++++ src/at_scancode.c	Sat Oct  7 21:27:29 2006
+@@ -84,6 +84,10 @@
+        case KEY_Prefix0:
+           pKbd->scanPrefix = 0;
+           switch (*scanCode) {
++            case 0x1e:            *scanCode = KEY_AudioRaise;break;
++            case 0x1f:            *scanCode = KEY_AudioLower;break;
++            case 0x20:            *scanCode = KEY_Power;     break;
++            case 0x25:            *scanCode = KEY_Mute;      break;
+             case KEY_KP_7:        *scanCode = KEY_Home;      break;  /* curs home */
+             case KEY_KP_8:        *scanCode = KEY_Up;        break;  /* curs up */
+             case KEY_KP_9:        *scanCode = KEY_PgUp;      break;  /* curs pgup */
+@@ -103,6 +107,17 @@
+             case 0x5b:            *scanCode = KEY_LMeta;     break;
+             case 0x5c:            *scanCode = KEY_RMeta;     break;
+             case 0x5d:            *scanCode = KEY_Menu;      break;
++            case 0x5e:            *scanCode = KEY_L1;        break;  /* stop */
++            case 0x5f:            *scanCode = KEY_L2;        break;  /* again */
++            case 0x60:            *scanCode = KEY_L3;        break;  /* props */
++            case 0x61:            *scanCode = KEY_L4;        break;  /* undo */
++            case 0x62:            *scanCode = KEY_L5;        break;  /* front */
++            case 0x63:            *scanCode = KEY_L6;        break;  /* copy */
++            case 0x64:            *scanCode = KEY_L7;        break;  /* open */
++            case 0x65:            *scanCode = KEY_L8;        break;  /* paste */
++            case 0x66:            *scanCode = KEY_L9;        break;  /* find */
++            case 0x67:            *scanCode = KEY_L10;       break;  /* cut */
++            case 0x68:            *scanCode = KEY_Help;      break;
+             case KEY_F3:          *scanCode = KEY_F13;       break;
+             case KEY_F4:          *scanCode = KEY_F14;       break;
+             case KEY_F5:          *scanCode = KEY_F15;       break;
diff --git a/x11-drivers/xlibre-xf86-input-keyboard/files/patch-src__bsd_KbdMap.c b/x11-drivers/xlibre-xf86-input-keyboard/files/patch-src__bsd_KbdMap.c
new file mode 100644
index 000000000000..add495f1ee74
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-keyboard/files/patch-src__bsd_KbdMap.c
@@ -0,0 +1,229 @@
+Don't query console keymap
+
+This seems to be useless and doesn't work anymore with vt(4), due to the
+use of Unicode codepoints in vt(4). So remove the related code. This fixes
+a segmentation fault during X.Org server startup.
+
+PR:             191459
+Submitted by:   Claude Buisson <clbuisson@orange.fr> (earlier version)
+
+--- src/bsd_KbdMap.c.orig	2013-10-28 01:44:15.000000000 +0100
++++ src/bsd_KbdMap.c	2014-09-08 19:22:28.000000000 +0200
+@@ -27,168 +27,6 @@
+ #include "xf86Keymap.h"
+ #include "bsd_kbd.h"
+ 
+-#if (defined(SYSCONS_SUPPORT) || defined(PCVT_SUPPORT)) && defined(GIO_KEYMAP)
+-#define KD_GET_ENTRY(i,n) \
+-  eascii_to_x[((keymap.key[i].spcl << (n+1)) & 0x100) + keymap.key[i].map[n]]
+-
+-static unsigned char remap[NUM_KEYCODES] = {
+-     0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,   /* 0x00 - 0x07 */
+-  0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,   /* 0x08 - 0x0f */
+-  0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,   /* 0x10 - 0x17 */
+-  0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,   /* 0x18 - 0x1f */
+-  0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,   /* 0x20 - 0x27 */
+-  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,   /* 0x28 - 0x2f */
+-  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,    0,   /* 0x30 - 0x37 */
+-  0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,   /* 0x38 - 0x3f */
+-  0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,    0,   /* 0x40 - 0x47 */
+-     0,    0,    0,    0,    0,    0,    0,    0,   /* 0x48 - 0x4f */
+-     0,    0,    0,    0,    0,    0, 0x56, 0x57,   /* 0x50 - 0x57 */
+-  0x58,    0,    0,    0,    0,    0,    0,    0,   /* 0x58 - 0x5f */
+-     0,    0,    0,    0,    0,    0,    0,    0,   /* 0x60 - 0x67 */
+-     0,    0,    0,    0,    0,    0,    0,    0,   /* 0x68 - 0x6f */
+-     0,    0, 0x69, 0x65,    0,    0,    0,    0,   /* 0x70 - 0x77 */
+-     0,    0,    0,    0,    0,    0,    0,    0,   /* 0x78 - 0x7f */
+-};
+-
+-/* This table assumes the ibm code page 437 coding for characters 
+- * > 0x80. They are returned in this form by PCVT */
+-static KeySym eascii_to_x[512] = {
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	XK_BackSpace,	XK_Tab,		XK_Linefeed,	NoSymbol,
+-	NoSymbol,	XK_Return,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	XK_Escape,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	XK_space,	XK_exclam,	XK_quotedbl,	XK_numbersign,
+-	XK_dollar,	XK_percent,	XK_ampersand,	XK_apostrophe,
+-	XK_parenleft,	XK_parenright,	XK_asterisk,	XK_plus,
+-	XK_comma,	XK_minus,	XK_period,	XK_slash,
+-	XK_0,		XK_1,		XK_2,		XK_3,
+-	XK_4,		XK_5,		XK_6,		XK_7,
+-	XK_8,		XK_9,		XK_colon,	XK_semicolon,
+-	XK_less,	XK_equal,	XK_greater,	XK_question,
+-	XK_at,		XK_A,		XK_B,		XK_C,
+-	XK_D,		XK_E,		XK_F,		XK_G,
+-	XK_H,		XK_I,		XK_J,		XK_K,
+-	XK_L,		XK_M,		XK_N,		XK_O,
+-	XK_P,		XK_Q,		XK_R,		XK_S,
+-	XK_T,		XK_U,		XK_V,		XK_W,
+-	XK_X,		XK_Y,		XK_Z,		XK_bracketleft,
+-	XK_backslash,	XK_bracketright,XK_asciicircum,	XK_underscore,
+-	XK_grave,	XK_a,		XK_b,		XK_c,
+-	XK_d,		XK_e,		XK_f,		XK_g,
+-	XK_h,		XK_i,		XK_j,		XK_k,
+-	XK_l,		XK_m,		XK_n,		XK_o,
+-	XK_p,		XK_q,		XK_r,		XK_s,
+-	XK_t,		XK_u,		XK_v,		XK_w,
+-	XK_x,		XK_y,		XK_z,		XK_braceleft,
+-	XK_bar,		XK_braceright,	XK_asciitilde,	XK_Delete,
+-	XK_Ccedilla,	XK_udiaeresis,	XK_eacute,	XK_acircumflex,
+-	XK_adiaeresis,	XK_agrave,	XK_aring,	XK_ccedilla,
+-	XK_ecircumflex,	XK_ediaeresis,	XK_egrave,	XK_idiaeresis,
+-	XK_icircumflex,	XK_igrave,	XK_Adiaeresis,	XK_Aring,
+-	XK_Eacute,	XK_ae,		XK_AE,		XK_ocircumflex,
+-	XK_odiaeresis,	XK_ograve,	XK_ucircumflex,	XK_ugrave,
+-	XK_ydiaeresis,	XK_Odiaeresis,	XK_Udiaeresis,	XK_cent,
+-	XK_sterling,	XK_yen,		XK_paragraph,	XK_section,
+-	XK_aacute,	XK_iacute,	XK_oacute,	XK_uacute,
+-	XK_ntilde,	XK_Ntilde,	XK_ordfeminine,	XK_masculine,
+-	XK_questiondown,XK_hyphen,	XK_notsign,	XK_onehalf,
+-	XK_onequarter,	XK_exclamdown,	XK_guillemotleft,XK_guillemotright,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	XK_Greek_alpha,	XK_ssharp,	XK_Greek_GAMMA,	XK_Greek_pi,
+-	XK_Greek_SIGMA,	XK_Greek_sigma,	XK_mu,	        XK_Greek_tau,
+-	XK_Greek_PHI,	XK_Greek_THETA,	XK_Greek_OMEGA,	XK_Greek_delta,
+-	XK_infinity,	XK_Ooblique,	XK_Greek_epsilon, XK_intersection,
+-	XK_identical,	XK_plusminus,	XK_greaterthanequal, XK_lessthanequal,
+-	XK_topintegral,	XK_botintegral,	XK_division,	XK_similarequal,
+-	XK_degree,	NoSymbol,	NoSymbol,	XK_radical,
+-	XK_Greek_eta,	XK_twosuperior,	XK_periodcentered, NoSymbol,
+-
+-	/* 
+-	 * special marked entries (256 + x)
+-	 */
+-
+-	/* This has been checked against what syscons actually does */
+-	NoSymbol,	NoSymbol,	XK_Shift_L,	XK_Shift_R,
+-	XK_Caps_Lock,	XK_Num_Lock,	XK_Scroll_Lock,	XK_Alt_L,
+-	XK_ISO_Left_Tab,XK_Control_L,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	XK_F1,
+-	XK_F2,		XK_F3,		XK_F4,		XK_F5,
+-	XK_F6,		XK_F7,		XK_F8,		XK_F9,
+-	XK_F10,		XK_F11,		XK_F12,		NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	XK_Control_R,	XK_Alt_R,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol,
+-	NoSymbol,	NoSymbol,	NoSymbol,	NoSymbol
+-};
+-
+ #ifdef SYSCONS_SUPPORT
+ static
+ unsigned char sysconsCODEMap[] = {
+@@ -205,7 +43,6 @@
+     sysconsCODEMap
+ };
+ #endif
+-#endif /* SYSCONS_SUPPORT || PCVT_SUPPORT */
+ 
+ #ifdef WSCONS_SUPPORT
+ 
+@@ -1245,40 +1082,6 @@
+   KeySym        *k;
+   int           i;
+ 
+-#ifndef __bsdi__
+-  switch (pKbd->consType) {
+-
+-/*
+- * XXX wscons has no GIO_KEYMAP
+- */
+-#if (defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)) && defined(GIO_KEYMAP)
+-  case SYSCONS:
+-  case PCVT:
+-    {
+-      keymap_t keymap;
+-    
+-      if (ioctl(pInfo->fd, GIO_KEYMAP, &keymap) != -1) {
+-	for (i = 0; i < keymap.n_keys && i < NUM_KEYCODES; i++)
+-	  if (remap[i]) {
+-	    k = map + (remap[i] << 2);
+-	    k[0] = KD_GET_ENTRY(i,0);           /* non-shifed */
+-	    k[1] = KD_GET_ENTRY(i,1);	      /* shifted */
+-	    k[2] = KD_GET_ENTRY(i,4);	      /* alt */
+-	    k[3] = KD_GET_ENTRY(i,5);	      /* alt - shifted */
+-	    if (k[3] == k[2]) k[3] = NoSymbol;
+-	    if (k[2] == k[1]) k[2] = NoSymbol;
+-	    if (k[1] == k[0]) k[1] = NoSymbol;
+-	    if (k[0] == k[2] && k[1] == k[3])
+-	      k[2] = k[3] = NoSymbol;
+-	  }
+-      }
+-    }
+-    break;
+-#endif /* SYSCONS || PCVT */
+-    
+-  } 
+-#endif /* !bsdi */
+-
+   /*
+    * compute the modifier map
+    */
diff --git a/x11-drivers/xlibre-xf86-input-keyboard/files/patch-src__bsd_kbd.c b/x11-drivers/xlibre-xf86-input-keyboard/files/patch-src__bsd_kbd.c
new file mode 100644
index 000000000000..984a73680601
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-keyboard/files/patch-src__bsd_kbd.c
@@ -0,0 +1,14 @@
+Index: src/bsd_kbd.c
+@@ -237,6 +237,12 @@
+ #endif
+ 	}
+     }
++/*
++ * Switch keyboards which are not attached to console in RAW mode
++ */
++#if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
++	ioctl(pInfo->fd, KDSKBMODE, K_RAW);
++#endif
+     return Success;
+ }
+ 
diff --git a/x11-drivers/xlibre-xf86-input-keyboard/files/patch-src__kbd.c b/x11-drivers/xlibre-xf86-input-keyboard/files/patch-src__kbd.c
new file mode 100644
index 000000000000..e9b0397baea7
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-keyboard/files/patch-src__kbd.c
@@ -0,0 +1,24 @@
+Index: src/kbd.c
+@@ -25,6 +25,7 @@
+ 
+ #include "xf86.h"
+ #include "atKeynames.h"
++#include "xf86Priv.h"
+ #include "xf86Privstr.h"
+ 
+ #include <X11/extensions/XI.h>
+@@ -392,6 +393,14 @@
+       RemoveEnabledDevice(pInfo->fd);
+     pKbd->KbdOff(pInfo, what);
+     device->public.on = FALSE;
++	/*
++	 * Close device file for keyboards which are not attached
++	 * to console, otherwise they can't be opened again after
++	 * relogin when using session manager like xdm.
++	 * X server will take care about console attached keyboards.
++	 */
++	if (pInfo->fd != xf86Info.consoleFd)
++		close(pInfo->fd);
+     break;
+ 
+   default:
diff --git a/x11-drivers/xlibre-xf86-input-keyboard/pkg-descr b/x11-drivers/xlibre-xf86-input-keyboard/pkg-descr
new file mode 100644
index 000000000000..e31af508c95d
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-keyboard/pkg-descr
@@ -0,0 +1 @@
+This package contains the XLibre xf86-input-keyboard driver.
diff --git a/x11-drivers/xlibre-xf86-input-keyboard/pkg-plist b/x11-drivers/xlibre-xf86-input-keyboard/pkg-plist
new file mode 100644
index 000000000000..e76fe16577a9
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-keyboard/pkg-plist
@@ -0,0 +1,2 @@
+lib/xorg/modules/xlibre-25.0/input/kbd_drv.so
+share/man/man4/kbd.4x.gz
diff --git a/x11-drivers/xlibre-xf86-input-libinput/Makefile b/x11-drivers/xlibre-xf86-input-libinput/Makefile
new file mode 100644
index 000000000000..63673db15bcc
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-libinput/Makefile
@@ -0,0 +1,21 @@
+PORTNAME=	xlibre-xf86-input-libinput
+PORTVERSION=	1.5.1.0
+CATEGORIES=	x11-drivers
+
+MAINTAINER=	b-aazbsd@proton.me
+COMMENT=	XLibre libinput input driver
+WWW=		https://github.com/X11Libre/xf86-input-libinput/
+
+LICENSE=	MIT # various styles
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+CONFLICTS_INSTALL=	xf86-input-libinput
+
+BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto
+LIB_DEPENDS=	libinput.so:x11/libinput
+
+USES=		pathfix tar:xz xlibre-cat:driver
+
+GNU_CONFIGURE_MANPREFIX=	${PREFIX}/share
+
+.include <bsd.port.mk>
diff --git a/x11-drivers/xlibre-xf86-input-libinput/distinfo b/x11-drivers/xlibre-xf86-input-libinput/distinfo
new file mode 100644
index 000000000000..9a71a804f755
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-libinput/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760812277
+SHA256 (xlibre/driver/X11Libre-xf86-input-libinput-1.5.1.0-xlibre-xf86-input-libinput-1.5.1.0_GH0.tar.gz) = f1be5a443af78307af18103a6bb614021fe163380b0eb43dec820a2389fbd6c8
+SIZE (xlibre/driver/X11Libre-xf86-input-libinput-1.5.1.0-xlibre-xf86-input-libinput-1.5.1.0_GH0.tar.gz) = 65498
diff --git a/x11-drivers/xlibre-xf86-input-libinput/pkg-descr b/x11-drivers/xlibre-xf86-input-libinput/pkg-descr
new file mode 100644
index 000000000000..d8b3784285c7
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-libinput/pkg-descr
@@ -0,0 +1,3 @@
+This package contains the XLibre xf86-input-libinput driver. It is a thin
+wrapper around libinput, so while it does provide all features that libinput
+supports it does little beyond.
diff --git a/x11-drivers/xlibre-xf86-input-libinput/pkg-plist b/x11-drivers/xlibre-xf86-input-libinput/pkg-plist
new file mode 100644
index 000000000000..52e536d56563
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-libinput/pkg-plist
@@ -0,0 +1,5 @@
+include/xorg/libinput-properties.h
+lib/xorg/modules/xlibre-25.0/input/libinput_drv.so
+libdata/pkgconfig/xorg-libinput.pc
+share/man/man4/libinput.4x.gz
+share/X11/xorg.conf.d/40-libinput.conf
diff --git a/x11-drivers/xlibre-xf86-input-mouse/Makefile b/x11-drivers/xlibre-xf86-input-mouse/Makefile
new file mode 100644
index 000000000000..fdc9c28efa6b
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-mouse/Makefile
@@ -0,0 +1,18 @@
+PORTNAME=	xlibre-xf86-input-mouse
+PORTVERSION=	1.9.5.4
+CATEGORIES=	x11-drivers
+
+MAINTAINER=	b-aazbsd@proton.me
+COMMENT=	XLibre mouse input driver
+WWW=		https://github.com/X11Libre/xf86-input-mouse/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+CONFLICTS_INSTALL=	xf86-input-mouse
+
+USES=		pathfix xlibre-cat:driver
+
+GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
+
+.include <bsd.port.mk>
diff --git a/x11-drivers/xlibre-xf86-input-mouse/distinfo b/x11-drivers/xlibre-xf86-input-mouse/distinfo
new file mode 100644
index 000000000000..1d9fa8b9738d
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-mouse/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1764440351
+SHA256 (xlibre/driver/X11Libre-xf86-input-mouse-1.9.5.4-xlibre-xf86-input-mouse-1.9.5.4_GH0.tar.gz) = 9f2108e435d52dc5b373f4fa2a7503a53738ae911a899ce3bf351cd2b912e6e9
+SIZE (xlibre/driver/X11Libre-xf86-input-mouse-1.9.5.4-xlibre-xf86-input-mouse-1.9.5.4_GH0.tar.gz) = 78830
diff --git a/x11-drivers/xlibre-xf86-input-mouse/files/patch-src-bsd_mouse.c b/x11-drivers/xlibre-xf86-input-mouse/files/patch-src-bsd_mouse.c
new file mode 100644
index 000000000000..8f542a60af12
--- /dev/null
+++ b/x11-drivers/xlibre-xf86-input-mouse/files/patch-src-bsd_mouse.c
@@ -0,0 +1,1039 @@
+--- src/bsd_mouse.c.orig	2018-06-19 04:36:21 UTC
++++ src/bsd_mouse.c
+@@ -26,6 +26,24 @@
+  * authorization from the copyright holder(s) and author(s).
+  */
+ 
++
++/*
++ * XXX - Should this be autoconf'd instead?
++ */
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
++
++#if !defined(USBMOUSE_SUPPORT)
++#define USBMOUSE_SUPPORT
++#endif
++#if !defined(HAS_LIB_USB_HID)
++#define HAS_LIB_USB_HID
++#endif
++#if !defined(XPS2_SUPPORT)
++#define XPS2_SUPPORT
++#endif
++
++#endif /* defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) */
++
+ #include <xorg-server.h>
+ 
+ #include <X11/X.h>
+@@ -33,9 +51,23 @@
+ #include "xf86Priv.h"
+ #include "xf86_OSlib.h"
+ #include "xf86Xinput.h"
++#include <exevents.h>
+ #include "mouse.h"
+ #include "xisb.h"
+ #include "mipointer.h"
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3
++#define HAVE_PROPERTIES 1
++#endif
++#ifdef HAVE_PROPERTIES
++#include <X11/Xatom.h>
++#include <xserver-properties.h>
++/* 1.6 has properties, but no labels */
++#ifdef AXIS_LABEL_PROP
++#define HAVE_LABELS
++#else
++#undef HAVE_LABELS
++#endif
++#endif
+ #ifdef WSCONS_SUPPORT
+ #include <dev/wscons/wsconsio.h>
+ #endif
+@@ -47,9 +79,6 @@
+ #else
+ # include <dev/usb/usb.h>
+ #endif
+-#ifdef USB_GET_REPORT_ID
+-#define USB_NEW_HID
+-#endif
+ 
+ #define HUP_GENERIC_DESKTOP     0x0001
+ #define HUP_BUTTON              0x0009
+@@ -75,11 +104,13 @@ static const char *FindDevice(InputInfoPtr, const char
+ #define DEFAULT_MOUSE_DEV               "/dev/mouse"
+ #define DEFAULT_SYSMOUSE_DEV            "/dev/sysmouse"
+ #define DEFAULT_PS2_DEV                 "/dev/psm0"
++#define DEFAULT_USB_DEV                 "/dev/ums0"
+ 
+ static const char *mouseDevs[] = {
+         DEFAULT_MOUSE_DEV,
+         DEFAULT_SYSMOUSE_DEV,
+         DEFAULT_PS2_DEV,
*** 3265 LINES SKIPPED ***