1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
6 VARIANTS= standard virtual dmx xephyr nest wayland
7 SDESC[xephyr]= X server from X.Org based on kdrive
8 SDESC[virtual]= X virtual framebuffer server from X.Org
9 SDESC[wayland]= X Clients under Wayland
10 SDESC[standard]= X.Org X server and related programs
11 SDESC[dmx]= Distributed Multihead X from X.Org
12 SDESC[nest]= Nesting X server from X.Org
13 HOMEPAGE= https://www.x.org/
17 SITES[main]= XORG/individual/xserver
18 DISTFILE[1]= xorg-server-1.19.3.tar.bz2:main
21 SPKGS[virtual]= single
22 SPKGS[wayland]= single
23 SPKGS[standard]= single
27 OPTIONS_AVAILABLE= XORG VIRTUAL DMX XEPHYR NEST WAYLAND DEVD SUID
28 OPTIONS_STANDARD= XORG DEVD SUID
29 VOPTS[xephyr]= XORG=OFF VIRTUAL=OFF DMX=OFF XEPHYR=ON NEST=OFF WAYLAND=OFF DEVD=OFF
31 VOPTS[virtual]= XORG=OFF VIRTUAL=ON DMX=OFF XEPHYR=OFF NEST=OFF WAYLAND=OFF DEVD=OFF
33 VOPTS[wayland]= XORG=OFF VIRTUAL=OFF DMX=OFF XEPHYR=OFF NEST=OFF WAYLAND=ON DEVD=OFF
35 VOPTS[dmx]= XORG=OFF VIRTUAL=OFF DMX=ON XEPHYR=OFF NEST=OFF WAYLAND=OFF DEVD=OFF
37 VOPTS[nest]= XORG=OFF VIRTUAL=OFF DMX=OFF XEPHYR=OFF NEST=ON WAYLAND=OFF DEVD=OFF
39 OPT_ON[all]= XORG SUID
41 BUILD_DEPENDS= xorg-fontutil:single:standard
42 xorg-xkbfile:single:standard
43 RUN_DEPENDS= xorg-xkeyboard-config:single:standard
44 xorg-xkbcomp:single:standard
46 USES= gmake libtool perl:build ssl
47 XORG_COMPONENTS= bigreqsproto compositeproto damageproto dri2proto dri3proto fixesproto
48 fontsproto glproto inputproto kbproto pixman presentproto randrproto
49 recordproto renderproto resourceproto scrnsaverproto videoproto xtransproto
50 xcmiscproto xextproto xf86driproto xineramaproto xproto xshmfence xau xdmcp
53 FPC_EQUIVALENT= x11-servers/xorg-server
56 CONFIGURE_ARGS= --with-xkb-path={{LOCALBASE}}/share/X11/xkb
57 --with-fontrootdir={{LOCALBASE}}/share/fonts
62 --with-shared-memory-dir=/tmp
65 --disable-config-udev-kms
66 --disable-install-setuid
71 INSTALL_TARGET= install-strip
73 [DEVD].DESCRIPTION= Use devd for autoconfiguration of input devices
75 [NEST].DESCRIPTION= Build as nesting X server
76 [NEST].BUILD_DEPENDS_ON= libepoxy:single:standard
78 [NEST].CONFIGURE_ENABLE_BOTH= xnest
80 [NEST].XORG_COMPONENTS_ON= x11
83 [XEPHYR].DESCRIPTION= Build as kdrive-base X server
84 [XEPHYR].BUILDRUN_DEPENDS_ON= libdrm:single:standard
85 libepoxy:single:standard
86 [XEPHYR].BUILD_DEPENDS_ON= mesa:drivers:standard
87 [XEPHYR].CONFIGURE_ENABLE_BOTH= xephyr
89 [XEPHYR].USES_ON= mesa
90 [XEPHYR].XORG_COMPONENTS_ON= x11
98 [DMX].DESCRIPTION= Build as distributed multihead X server
99 [DMX].BUILD_DEPENDS_ON= libepoxy:single:standard
100 mesa:drivers:standard
101 xorg-xtst:single:standard
102 xorg-xres:single:standard
103 [DMX].CONFIGURE_ENABLE_BOTH= dmx
104 [DMX].XORG_COMPONENTS_ON= dmx
115 [VIRTUAL].DESCRIPTION= Build as virtual framebuffer server
116 [VIRTUAL].BUILD_DEPENDS_ON= libepoxy:single:standard
117 mesa:drivers:standard
118 [VIRTUAL].CONFIGURE_ENABLE_BOTH= xvfb
119 [VIRTUAL].USES_ON= mesa
121 [XORG].DESCRIPTION= Build as X server (don't change setting!)
122 [XORG].BUILDRUN_DEPENDS_ON= libdrm:single:standard
123 libepoxy:single:standard
124 mesa:drivers:standard
125 [XORG].CONFIGURE_ENABLE_BOTH= docs
128 [XORG].SUB_FILES_ON= pkg-install
131 [XORG].XORG_COMPONENTS_ON= pciaccess
136 [WAYLAND].DESCRIPTION= Build Wayland X clients
137 [WAYLAND].BROKEN_ON= Wayland itself not yet implemented
138 [WAYLAND].BUILDRUN_DEPENDS_ON= libdrm:single:standard
139 libepoxy:single:standard
140 [WAYLAND].BUILD_DEPENDS_ON= mesa:drivers:standard
141 [WAYLAND].CONFIGURE_ARGS_ON= --disable-xquartz
143 [WAYLAND].CONFIGURE_ENABLE_BOTH= xwayland
144 [WAYLAND].XORG_COMPONENTS_ON= x11
147 [SUID].DESCRIPTION= Install the Xorg server with setuid bit set
150 @${REINPLACE_CMD} 's/test.*-traditional.*;/true;/' ${WRKSRC}/configure
151 # build libglx.so but don't install it yet. (done in pre-install)
152 @${REINPLACE_CMD} -e 's|@GLX_TRUE@GLXMODS =|@GLX_BOGUS@GLXMODS =|g' \
153 -e 's|^LTLIBRARIES = |LTLIBRARIES = libglx.la |g' \
154 ${WRKSRC}/hw/xfree86/dixmods/Makefile.in
156 do-install-XEPHYR-ON:
157 (cd ${WRKSRC}/hw/kdrive/ephyr && \
158 DESTDIR=${STAGEDIR} ${MAKE_CMD} install)
160 do-install-WAYLAND-ON:
161 (cd ${WRKSRC}/hw/xwayland && \
162 DESTDIR=${STAGEDIR} ${MAKE_CMD} install)
164 post-install-XORG-OFF:
165 ${RM} -r ${STAGEDIR}${PREFIX}/lib/xorg
166 ${RM} ${STAGEDIR}${PREFIX}/share/man/man1/Xserver.1
168 post-configure-DEVD-ON:
169 @${REINPLACE_CMD} -e 's|config\.c|config.c devd.c|g' \
170 -e 's|config\.lo|config.lo devd.lo|g' \
171 ${WRKSRC}/config/Makefile
172 @${REINPLACE_CMD} -e 's|^/\* #undef CONFIG_UDEV \*/|#define CONFIG_DEVD 1|' \
173 ${WRKSRC}/include/dix-config.h
175 do-install-VIRTUAL-ON:
176 (cd ${WRKSRC}/hw/vfb && \
177 DESTDIR=${STAGEDIR} ${MAKE_CMD} install)
180 (cd ${WRKSRC}/hw/xnest && \
181 DESTDIR=${STAGEDIR} ${MAKE_CMD} install)
184 (cd ${WRKSRC}/hw/dmx && \
185 DESTDIR=${STAGEDIR} ${MAKE_CMD} install)
187 post-install-XORG-ON:
188 # The .xorg dir because else the xorg-server might not load the
189 # correct libglx module.
190 @${MKDIR} ${STAGEDIR}${PREFIX}/lib/xorg/modules/extensions/.xorg
191 ${INSTALL_LIB} ${WRKSRC}/hw/xfree86/dixmods/.libs/libglx.so \
192 ${STAGEDIR}${PREFIX}/lib/xorg/modules/extensions/.xorg/
193 @${MKDIR} ${STAGEDIR}${PREFIX}/etc/X11/xorg.conf.d
194 ${RM} -r ${STAGEDIR}/var
196 [FILE:71:descriptions/desc.single.standard]
197 This package contains the X.Org X server and some associated programs.
200 [FILE:60:descriptions/desc.single.virtual]
201 This package contains Xvfb, a virtual framebuffer X server.
204 [FILE:287:descriptions/desc.single.dmx]
205 Xdmx is proxy X server that provides multi-head support for multiple
206 displays attached to different machines (each of which is running a
207 typical X server). When Xinerama is used with Xdmx, the multiple displays
208 on multiple machines are presented to the user as a single unified screen.
211 [FILE:173:descriptions/desc.single.xephyr]
212 Xephyr is a kdrive server that outputs to a window on a pre-existing
213 'host' X display. Think Xnest but with support for modern extensions
214 like composite, damage and randr.
217 [FILE:78:descriptions/desc.single.nest]
218 This package contains Xnest, a nesting X Server that displays on an X
222 [FILE:148:descriptions/desc.single.wayland]
223 XWayland is an X Server running as a Wayland client, thus capable of
224 displaying native X11 client applications in a Wayland compositor
229 677a8166e03474719238dfe396ce673c4234735464d6dadf2959b600d20e5a98 6050221 xorg-server-1.19.3.tar.bz2
232 [FILE:2433:manifests/plist.single.standard]
235 %%SUID-ON%%@(,,4555) bin/Xorg
398 lib/xorg/modules/drivers/modesetting_drv.so
399 lib/xorg/modules/extensions/.xorg/libglx.so
411 lib/xorg/protocol.txt
412 lib/pkgconfig/xorg-server.pc
425 share/aclocal/xorg-server.m4
426 @dir etc/X11/xorg.conf.d
429 [FILE:34:manifests/plist.single.virtual]
431 share/man/man1/Xvfb.1.gz
434 [FILE:214:manifests/plist.single.dmx]
455 [FILE:38:manifests/plist.single.xephyr]
457 share/man/man1/Xephyr.1.gz
460 [FILE:36:manifests/plist.single.nest]
462 share/man/man1/Xnest.1.gz
465 [FILE:13:manifests/plist.single.wayland]
469 [FILE:293:patches/patch-config_config-backends.h]
470 --- config/config-backends.h.orig 2016-07-15 16:17:45 UTC
471 +++ config/config-backends.h
472 @@ -44,3 +44,8 @@ void config_hal_fini(void);
473 int config_wscons_init(void);
474 void config_wscons_fini(void);
478 +int config_devd_init(void);
479 +void config_devd_fini(void);
483 [FILE:537:patches/patch-config_config.c]
484 --- config/config.c.orig 2016-07-19 17:07:29 UTC
486 @@ -55,6 +55,9 @@ config_init(void)
487 #elif defined(CONFIG_WSCONS)
488 if (!config_wscons_init())
489 ErrorF("[config] failed to initialise wscons\n");
490 +#elif defined(CONFIG_DEVD)
491 + if (!config_devd_init())
492 + ErrorF("[config] failed to initialise devd\n");
496 @@ -67,6 +70,8 @@ config_fini(void)
498 #elif defined(CONFIG_WSCONS)
499 config_wscons_fini();
500 +#elif defined(CONFIG_DEVD)
501 + config_devd_fini();
507 [FILE:12180:patches/patch-config_devd.c]
508 --- config/devd.c.orig 2017-01-19 15:20:42 UTC
512 + * Copyright (c) 2012 Baptiste Daroussin
513 + * Copyright (c) 2013, 2014 Alex Kozlov
514 + * Copyright (c) 2014 Robert Millan
515 + * Copyright (c) 2014 Jean-Sebastien Pedron
517 + * Permission is hereby granted, free of charge, to any person obtaining a
518 + * copy of this software and associated documentation files (the "Software"),
519 + * to deal in the Software without restriction, including without limitation
520 + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
521 + * and/or sell copies of the Software, and to permit persons to whom the
522 + * Software is furnished to do so, subject to the following conditions:
524 + * The above copyright notice and this permission notice (including the next
525 + * paragraph) shall be included in all copies or substantial portions of the
528 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
529 + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
530 + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
531 + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
532 + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
533 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
534 + * DEALINGS IN THE SOFTWARE.
536 + * Author: Baptiste Daroussin <bapt@FreeBSD.org>
539 +#ifdef HAVE_DIX_CONFIG_H
540 +#include <dix-config.h>
543 +#include <sys/types.h>
544 +#include <sys/kbio.h>
545 +#include <sys/socket.h>
546 +#include <sys/stat.h>
547 +#include <sys/sysctl.h>
555 +#include <stdbool.h>
559 +#include "inputstr.h"
560 +#include "hotplug.h"
561 +#include "config-backends.h"
564 +#define DEVD_SOCK_PATH "/var/run/devd.pipe"
566 +#define DEVD_EVENT_ADD '+'
567 +#define DEVD_EVENT_REMOVE '-'
569 +#define RECONNECT_DELAY 5 * 1000
571 +static int sock_devd;
572 +static bool is_console_kbd = false;
573 +static bool is_kbdmux = false;
574 +static OsTimerPtr rtimer = NULL;
577 + const char *driver;
579 + const char *xdriver;
582 +static struct hw_type hw_types[] = {
583 + { "ukbd", ATTR_KEYBOARD, "kbd" },
584 + { "atkbd", ATTR_KEYBOARD, "kbd" },
585 + { "kbdmux", ATTR_KEYBOARD, "kbd" },
586 + { "sysmouse", ATTR_POINTER, "mouse" },
587 + { "ums", ATTR_POINTER, "mouse" },
588 + { "psm", ATTR_POINTER, "mouse" },
589 + { "vboxguest", ATTR_POINTER, "vboxmouse" },
590 + { "joy", ATTR_JOYSTICK, NULL },
591 + { "atp", ATTR_TOUCHPAD, NULL },
592 + { "uep", ATTR_TOUCHSCREEN, NULL },
593 + { NULL, -1, NULL },
597 +sysctl_exists(const struct hw_type *device, int unit,
598 + char *devname, size_t devname_len)
600 + char sysctlname[PATH_MAX];
604 + if (device == NULL || device->driver == NULL)
607 + /* Check if a sysctl exists. */
608 + snprintf(sysctlname, sizeof(sysctlname), "dev.%s.%i.%%desc",
609 + device->driver, unit);
610 + ret = sysctlbyname(sysctlname, NULL, &len, NULL, 0);
612 + if (ret == 0 && len > 0) {
613 + snprintf(devname, devname_len, "%s%i", device->driver, unit);
621 +devpath_exists(const struct hw_type *device,
622 + char *devname, size_t devname_len)
628 + if (device == NULL || device->driver == NULL)
631 + /* Check if /dev/$driver exists. */
632 + asprintf(&devpath, "/dev/%s", device->driver);
633 + if (devpath == NULL)
636 + ret = stat(devpath, &st);
640 + strncpy(devname, device->driver, devname_len);
648 +sysctl_get_str(const char *sysctlname)
653 + if (sysctlname == NULL)
656 + if (sysctlbyname(sysctlname, NULL, &len, NULL, 0) == 0) {
657 + dest = malloc(len + 1);
659 + if (sysctlbyname(sysctlname, dest, &len, NULL, 0) == 0)
672 +device_added(const char *devname)
674 + char path[PATH_MAX];
675 + char sysctlname[PATH_MAX];
677 + char *product = NULL;
678 + char *config_info = NULL;
680 + InputOption *options = NULL;
681 + InputAttributes attrs = { };
682 + DeviceIntPtr dev = NULL;
686 + for (i = 0; hw_types[i].driver != NULL; i++) {
689 + len = strlen(hw_types[i].driver);
690 + if (strcmp(devname, hw_types[i].driver) == 0 ||
691 + (strncmp(devname, hw_types[i].driver, len) == 0 &&
692 + isnumber(*(devname + len)))) {
693 + attrs.flags |= hw_types[i].flag;
698 + if (hw_types[i].driver == NULL || hw_types[i].xdriver == NULL) {
699 + LogMessage(X_INFO, "config/devd: ignoring device %s\n",
704 + /* Skip keyboard devices if kbdmux is enabled */
705 + if (is_kbdmux && is_console_kbd && hw_types[i].flag & ATTR_KEYBOARD) {
706 + LogMessage(X_INFO, "config/devd: kbdmux is enabled, ignoring device %s\n",
711 + snprintf(path, sizeof(path), "/dev/%s", devname);
713 + options = input_option_new(NULL, "_source", "server/devd");
717 + snprintf(sysctlname, sizeof(sysctlname), "dev.%s.%s.%%desc",
718 + hw_types[i].driver, devname + strlen(hw_types[i].driver));
719 + vendor = sysctl_get_str(sysctlname);
720 + if (vendor == NULL) {
721 + options = input_option_new(options, "name", devname);
724 + if ((walk = strchr(vendor, ' ')) != NULL) {
728 + if ((walk = strchr(product, ',')) != NULL)
732 + attrs.vendor = strdup(vendor);
734 + attrs.product = strdup(product);
735 + options = input_option_new(options, "name", product);
738 + options = input_option_new(options, "name", "(unnamed)");
743 + /* XXX implement usb_id */
744 + attrs.usb_id = NULL;
745 + attrs.device = strdup(path);
746 + options = input_option_new(options, "driver", hw_types[i].xdriver);
748 + fd = open(path, O_RDONLY);
751 + options = input_option_new(options, "device", path);
754 + if (attrs.flags & ~ATTR_KEYBOARD) {
755 + LogMessage(X_INFO, "config/devd: device %s already opened\n",
759 + * Fail if cannot open device, it breaks AllowMouseOpenFail,
760 + * but it should not matter when config/devd enabled
765 + if (is_console_kbd) {
767 + * There can be only one keyboard attached to console and
768 + * it is already added.
770 + LogMessage(X_WARNING, "config/devd: console keyboard is "
771 + "already added, ignoring %s (%s)\n",
772 + attrs.product, path);
777 + * Don't pass "device" option if the keyboard is already
778 + * attached to the console (ie. open() fails).
779 + * This would activate a special logic in xf86-input-keyboard.
780 + * Prevent any other attached to console keyboards being
781 + * processed. There can be only one such device.
783 + is_console_kbd = true;
786 + if (asprintf(&config_info, "devd:%s", devname) == -1) {
787 + config_info = NULL;
791 + if (device_is_duplicate(config_info)) {
792 + LogMessage(X_WARNING, "config/devd: device %s (%s) already added. "
793 + "ignoring\n", attrs.product, path);
797 + options = input_option_new(options, "config_info", config_info);
798 + LogMessage(X_INFO, "config/devd: adding input device %s (%s)\n",
799 + attrs.product, path);
801 + NewInputDeviceRequest(options, &attrs, &dev);
805 + input_option_free_list(&options);
806 + free(attrs.usb_id);
807 + free(attrs.product);
808 + free(attrs.device);
809 + free(attrs.vendor);
813 +device_removed(char *devname)
817 + if (asprintf(&config_info, "devd:%s", devname) == -1)
820 + remove_devices("devd", config_info);
825 +static bool is_kbdmux_enabled(void)
827 + /* Xorg uses /dev/ttyv0 as a console device */
828 + /* const char device[]="/dev/console"; */
829 + const char device[]="/dev/ttyv0";
830 + keyboard_info_t info;
833 + fd = open(device, O_RDONLY);
838 + if (ioctl(fd, KDGKBINFO, &info) == -1) {
845 + if (!strncmp(info.kb_name, "kbdmux", 6))
852 +disconnect_devd(int sock)
855 + RemoveGeneralSocket(sock);
863 + struct sockaddr_un devd;
866 + sock = socket(AF_UNIX, SOCK_STREAM, 0);
868 + LogMessage(X_ERROR, "config/devd: fail opening stream socket\n");
872 + devd.sun_family = AF_UNIX;
873 + strlcpy(devd.sun_path, DEVD_SOCK_PATH, sizeof(devd.sun_path));
875 + if (connect(sock, (struct sockaddr *) &devd, sizeof(devd)) < 0) {
877 + LogMessage(X_ERROR, "config/devd: fail to connect to devd\n");
881 + AddGeneralSocket(sock);
887 +reconnect_handler(OsTimerPtr timer, CARD32 time, void *arg)
891 + if ((newsock = connect_devd()) > 0) {
892 + sock_devd = newsock;
895 + LogMessage(X_INFO, "config/devd: reopening devd socket\n");
899 + /* Try again after RECONNECT_DELAY */
900 + return RECONNECT_DELAY;
904 +socket_getline(int fd, char **out)
906 + char *buf, *newbuf;
907 + ssize_t ret, cap, sz = 0;
911 + buf = malloc(cap * sizeof(char));
916 + ret = read(sock_devd, &c, 1);
918 + if (errno == EINTR)
922 + /* EOF - devd socket is lost */
923 + } else if (ret == 0) {
924 + disconnect_devd(sock_devd);
925 + rtimer = TimerSet(NULL, 0, 1, reconnect_handler, NULL);
926 + LogMessage(X_WARNING, "config/devd: devd socket is lost\n");
933 + if (sz + 1 >= cap) {
935 + newbuf = realloc(buf, cap * sizeof(char));
952 + /* Number of bytes in the line, not counting the line break */
957 +wakeup_handler(void *data, int err, void *read_mask)
965 + if (FD_ISSET(sock_devd, (fd_set *) read_mask)) {
966 + if (socket_getline(sock_devd, &line) < 0)
969 + walk = strchr(line + 1, ' ');
974 + case DEVD_EVENT_ADD:
975 + device_added(line + 1);
977 + case DEVD_EVENT_REMOVE:
978 + device_removed(line + 1);
988 +block_handler(void *data, struct timeval **tv, void *read_mask)
993 +config_devd_init(void)
995 + char devicename[1024];
998 + LogMessage(X_INFO, "config/devd: probing input devices...\n");
1001 + * Add fake keyboard and give up on keyboards management
1002 + * if kbdmux is enabled
1004 + if ((is_kbdmux = is_kbdmux_enabled()) == true)
1005 + device_added("kbdmux");
1007 + for (i = 0; hw_types[i].driver != NULL; i++) {
1008 + /* First scan the sysctl to determine the hardware */
1009 + for (j = 0; j < 16; j++) {
1010 + if (sysctl_exists(&hw_types[i], j,
1011 + devicename, sizeof(devicename)) != 0)
1012 + device_added(devicename);
1015 + if (devpath_exists(&hw_types[i], devicename, sizeof(devicename)) != 0)
1016 + device_added(devicename);
1019 + if ((sock_devd = connect_devd()) < 0)
1022 + RegisterBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL);
1028 +config_devd_fini(void)
1030 + LogMessage(X_INFO, "config/devd: terminating backend...\n");
1033 + TimerFree(rtimer);
1037 + disconnect_devd(sock_devd);
1039 + RemoveBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL);
1041 + is_console_kbd = false;
1045 [FILE:372:patches/patch-configure]
1046 --- configure.orig 2017-03-15 18:05:39 UTC
1048 @@ -23280,9 +23280,14 @@ $as_echo "#define USE_ALPHA_PIO 1" >>con
1050 GLX_ARCH_DEFINES="-D__GLX_ALIGN64 -mieee"
1055 DEFAULT_INT10="stub"
1058 + $as_echo "#define USE_DEV_IO 1" >>confdefs.h
1066 [FILE:785:patches/patch-hw_xfree86_common_xf86AutoConfig.c]
1067 --- hw/xfree86/common/xf86AutoConfig.c.orig 2017-01-11 20:00:58 UTC
1068 +++ hw/xfree86/common/xf86AutoConfig.c
1069 @@ -276,7 +276,7 @@ listPossibleVideoDrivers(char *matches[]
1070 i += xf86PciMatchDriver(&matches[i], nmatches - i);
1073 -#if defined(__linux__)
1074 +#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
1075 matches[i++] = xnfstrdup("modesetting");
1078 @@ -285,8 +285,10 @@ listPossibleVideoDrivers(char *matches[]
1079 if (i < (nmatches - 1)) {
1080 #if !defined(__linux__) && defined(__sparc__)
1081 matches[i++] = xnfstrdup("wsfb");
1083 +#elif defined(__linux__)
1084 matches[i++] = xnfstrdup("fbdev");
1085 +#elif defined(__FreeBSD__)
1086 + matches[i++] = xnfstrdup("scfb");
1092 [FILE:700:patches/patch-hw_xfree86_common_xf86Config.c]
1093 --- hw/xfree86/common/xf86Config.c.orig 2016-07-19 17:14:30 UTC
1094 +++ hw/xfree86/common/xf86Config.c
1095 @@ -1410,13 +1410,16 @@ checkCoreInputDevices(serverLayoutPtr se
1098 if (!xf86Info.forceInputDevices && !(foundPointer && foundKeyboard)) {
1099 -#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS)
1100 +#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || \
1101 + defined(CONFIG_DEVD)
1102 const char *config_backend;
1104 #if defined(CONFIG_HAL)
1105 config_backend = "HAL";
1106 #elif defined(CONFIG_UDEV)
1107 config_backend = "udev";
1108 +#elif defined(CONFIG_DEVD)
1109 + config_backend = "devd";
1111 config_backend = "wscons";
1115 [FILE:496:patches/patch-hw_xfree86_common_xf86Globals.c]
1116 --- hw/xfree86/common/xf86Globals.c.orig 2016-07-19 17:07:29 UTC
1117 +++ hw/xfree86/common/xf86Globals.c
1118 @@ -122,7 +122,8 @@ xf86InfoRec xf86Info = {
1120 .disableRandR = FALSE,
1121 .randRFrom = X_DEFAULT,
1122 -#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS)
1123 +#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || \
1124 + defined(CONFIG_DEVD)
1125 .forceInputDevices = FALSE,
1126 .autoAddDevices = TRUE,
1127 .autoEnableDevices = TRUE,
1130 [FILE:688:patches/patch-hw_xfree86_common_xf86Xinput.c]
1131 --- hw/xfree86/common/xf86Xinput.c.orig 2016-07-19 17:07:29 UTC
1132 +++ hw/xfree86/common/xf86Xinput.c
1133 @@ -841,7 +841,7 @@ xf86NewInputDevice(InputInfoPtr pInfo, D
1135 InputDriverPtr drv = NULL;
1136 DeviceIntPtr dev = NULL;
1142 @@ -996,6 +996,7 @@ NewInputDeviceRequest(InputOption *optio
1143 if (strcmp(key, "_source") == 0 &&
1144 (strcmp(value, "server/hal") == 0 ||
1145 strcmp(value, "server/udev") == 0 ||
1146 + strcmp(value, "server/devd") == 0 ||
1147 strcmp(value, "server/wscons") == 0)) {
1149 if (!xf86Info.autoAddDevices) {
1152 [FILE:450:patches/patch-hw_xfree86_os-support_bsd_bsd__init.c]
1153 --- hw/xfree86/os-support/bsd/bsd_init.c.orig 2016-07-19 17:07:29 UTC
1154 +++ hw/xfree86/os-support/bsd/bsd_init.c
1155 @@ -230,6 +230,9 @@ xf86OpenConsole()
1156 * Add cases for other *BSD that behave the same.
1158 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
1159 +#if defined(__sparc64__)
1160 + pci_system_init_dev_mem(fd);
1163 i = atof(uts.release) * 100;
1167 [FILE:315:patches/patch-hw_xfree86_os-support_bsd_i386__video.c]
1168 Index: programs/Xserver/hw/xfree86/os-support/bsd/i386_video.c
1169 --- hw/xfree86/os-support/bsd/i386_video.c.orig 2016-07-15 16:18:11 UTC
1170 +++ hw/xfree86/os-support/bsd/i386_video.c
1172 #include "xf86Priv.h"
1175 +#include <sys/types.h>
1176 #include <sys/mman.h>
1178 #include "xf86_OSlib.h"
1181 [FILE:380:patches/patch-hw_xfree86_os-support_bsd_ppc__video.c]
1182 --- hw/xfree86/os-support/bsd/ppc_video.c.orig 2016-07-15 16:18:11 UTC
1183 +++ hw/xfree86/os-support/bsd/ppc_video.c
1184 @@ -79,7 +79,11 @@ xf86DisableIO()
1187 if (ioBase != MAP_FAILED) {
1188 +#if defined(__FreeBSD__)
1189 + munmap(__DEVOLATILE(unsigned char *, ioBase), 0x10000);
1191 munmap(__UNVOLATILE(ioBase), 0x10000);
1193 ioBase = MAP_FAILED;
1198 [FILE:215:patches/patch-xkb_Makefile.in]
1199 --- xkb/Makefile.in.orig 2017-01-19 15:20:42 UTC
1201 @@ -878,7 +878,7 @@ info: info-am
1205 -install-data-am: install-dist_xkbcompiledDATA
1208 install-dvi: install-dvi-am
1212 [FILE:135:files/pkg-deinstall.in]
1215 PREFIX="${PKG_PREFIX-/raven}"
1219 /bin/rm -rf ${PREFIX}/lib/xorg/modules/extensions/libglx.so*
1224 [FILE:531:files/pkg-install.in]
1227 PREFIX="${PKG_PREFIX-/raven}"
1231 if [ -f ${PREFIX}/lib/xorg/modules/extensions/.nvidia/libglx.so.1 ]; then
1232 /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/.nvidia/libglx.so.1 \
1233 ${PREFIX}/lib/xorg/modules/extensions/libglx.so
1234 /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/.nvidia/libglx.so.1 \
1235 ${PREFIX}/lib/xorg/modules/extensions/libglx.so.1
1237 /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/.xorg/libglx.so \
1238 ${PREFIX}/lib/xorg/modules/extensions/libglx.so