Re: FreeBSD 10 userland
On 22:42, brunomaximom@openmailbox.org wrote:
> >I'm also using xorg 1.15 from sid, with Robert's patch to use devd
> >instead of HAL.
>
> The patch already is in package or not yet?
Not yet; I rebuilt xorg-server/1.15 with the attached patch, installed
the new xserver-common and xserver-xorg-core, and fetched remaining
dependencies from sid (apt-get -f install).
(I made some edits to Robert's patch so that it can apply to this new
version; it may not be fully correct but seems to be working so far).
Regards,
--
Steven Chamberlain
steven@pyro.eu.org
diff -Nur -x .pc xorg-server-1.14.5.old/debian/control xorg-server-1.14.5/debian/control
--- xorg-server-1.14.5.old/debian/control 2014-02-08 01:52:23.000000000 +0100
+++ xorg-server-1.14.5/debian/control 2014-02-08 01:53:10.249920492 +0100
@@ -49,8 +49,6 @@
libpciaccess-dev (>= 0.12.901),
libgcrypt-dev,
nettle-dev,
- libdbus-1-dev [kfreebsd-any],
- libhal-dev [kfreebsd-any],
libudev-dev (>= 151-3) [linux-any],
libselinux1-dev (>= 2.0.80) [linux-any],
libaudit-dev [linux-any],
@@ -90,6 +88,7 @@
xserver-common (>= ${source:Version}),
keyboard-configuration [linux-any kfreebsd-any],
udev (>= 149) [linux-any],
+ devd [kfreebsd-any],
${shlibs:Depends},
${misc:Depends},
Recommends: libgl1-mesa-dri (>= 7.10.2-4)
@@ -150,6 +149,7 @@
x11-xkb-utils-udeb,
# disabled: keyboard-configuration [linux-any kfreebsd-any],
udev-udeb (>= 149) [linux-any],
+ devd-udeb [kfreebsd-any],
${shlibs:Depends},
${misc:Depends},
Provides:
diff -Nur -x .pc xorg-server-1.14.5.old/debian/patches/devd.diff xorg-server-1.14.5/debian/patches/devd.diff
--- xorg-server-1.14.5.old/debian/patches/devd.diff 1970-01-01 01:00:00.000000000 +0100
+++ xorg-server-1.14.5/debian/patches/devd.diff 2014-02-08 01:58:26.401912887 +0100
@@ -0,0 +1,649 @@
+--- /dev/null
++++ b/config/devd.c
+@@ -0,0 +1,524 @@
++/*
++ * Copyright © 2012 Baptiste Daroussin
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ *
++ * Author: Baptiste Daroussin <bapt@FreeBSD.org>
++ */
++
++#ifdef HAVE_DIX_CONFIG_H
++#include <dix-config.h>
++#endif
++
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <sys/sysctl.h>
++#include <sys/un.h>
++
++#include <ctype.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <stdarg.h>
++#include <stdbool.h>
++#include <unistd.h>
++
++#include "input.h"
++#include "inputstr.h"
++#include "hotplug.h"
++#include "config-backends.h"
++#include "os.h"
++
++#define DEVD_SOCK_PATH "/var/run/devd.pipe"
++
++#define DEVD_EVENT_ADD '+'
++#define DEVD_EVENT_REMOVE '-'
++
++static int sock_devd = -1;
++
++#if XORG_VERSION_CURRENT < 10800000
++enum {
++ ATTR_KEYBOARD,
++ ATTR_POINTER,
++ ATTR_JOYSTICK,
++ ATTR_TOUCHPAD,
++ ATTR_TOUCHSCREEN,
++};
++#endif
++
++struct hw_type {
++ const char *driver;
++ int flag;
++ const char *xdriver;
++};
++
++static struct hw_type hw_types[] = {
++// { "ukbd", ATTR_KEYBOARD, "kdb" },
++// { "atkbd", ATTR_KEYBOARD, "kdb" },
++ { "ums", ATTR_POINTER, "mouse" },
++ { "psm", ATTR_POINTER, "mouse" },
++// { "uhid", ATTR_POINTER, "mouse" },
++ { "joy", ATTR_JOYSTICK, NULL },
++ { "atp", ATTR_TOUCHPAD, NULL },
++ { "uep", ATTR_TOUCHSCREEN, NULL },
++ { NULL, -1, NULL },
++};
++
++#if XORG_VERSION_CURRENT < 10800000
++static void
++add_option(InputOption **options, const char *key, const char *value)
++{
++ if (!value || *value == '\0')
++ return;
++
++ for (; *options; options = &(*options)->next)
++ ;
++ *options = calloc(sizeof(**options), 1);
++ if (!*options) /* Yeesh. */
++ return;
++ (*options)->key = xstrdup(key);
++ (*options)->value = xstrdup(value);
++ (*options)->next = NULL;
++}
++
++static void
++remove_device(DeviceIntPtr dev)
++{
++ /* this only gets called for devices that have already been added */
++ LogMessage(X_INFO, "config/devd: removing device %s\n", dev->name);
++
++ /* Call PIE here so we don't try to dereference a device that's
++ * already been removed. */
++ OsBlockSignals();
++ ProcessInputEvents();
++ DeleteInputDeviceRequest(dev);
++ OsReleaseSignals();
++}
++
++static bool
++device_is_duplicate(char *config_info)
++{
++ DeviceIntPtr dev;
++
++ for (dev = inputInfo.devices; dev; dev = dev->next)
++ if (dev->config_info && (strcmp(dev->config_info, config_info) == 0))
++ return true;
++
++ for (dev = inputInfo.off_devices; dev; dev = dev->next)
++ if (dev->config_info && (strcmp(dev->config_info, config_info) == 0))
++ return true;
++
++ return false;
++}
++
++#endif
++
++static bool
++sysctl_exists(const char *format, ...)
++{
++ va_list args;
++ char *name = NULL;
++ size_t len;
++ int ret;
++
++ if (format == NULL)
++ return false;
++
++ va_start(args, format);
++ vasprintf(&name, format, args);
++ va_end(args);
++
++ ret = sysctlbyname(name, NULL, &len, NULL, 0);
++
++ if (ret == -1)
++ len = 0;
++
++ free(name);
++ return (len > 0);
++}
++
++static char *
++sysctl_get_str(const char *format, ...)
++{
++ va_list args;
++ char *name = NULL;
++ char *dest = NULL;
++ size_t len;
++
++ if (format == NULL)
++ return NULL;
++
++ va_start(args, format);
++ vasprintf(&name, format, args);
++ va_end(args);
++
++ if (sysctlbyname(name, NULL, &len, NULL, 0) == 0) {
++ dest = malloc(len + 1);
++ if (sysctlbyname(name, dest, &len, NULL, 0) == 0)
++ dest[len] = '\0';
++ else {
++ free(dest);
++ dest = NULL;
++ }
++ }
++
++ free(name);
++ return dest;
++}
++
++static void
++keyboard_added()
++{
++ InputOption *options = NULL;
++ InputAttributes attrs = {};
++ DeviceIntPtr dev = NULL;
++ int rc;
++
++ options = input_option_new(NULL, "_source", "server/devd");
++ if (!options)
++ return;
++
++ options = input_option_new(options, "name", xstrdup("AT Keyboard"));
++ options = input_option_new(options, "path", xstrdup(""));
++ options = input_option_new(options, "device", xstrdup(""));
++ options = input_option_new(options, "config_info", xstrdup("devd:AT Keyboard"));
++
++ LogMessage(X_INFO, "config/devd: Adding AT Keyboard\n");
++
++ memset(&attrs, 0, sizeof(attrs));
++ attrs.flags = ATTR_KEYBOARD;
++ attrs.vendor = xstrdup("(unnamed)");
++ attrs.product = xstrdup("(unnamed)");
++
++ rc = NewInputDeviceRequest(options, &attrs, &dev);
++
++ if (rc != Success)
++ goto unwind;
++
++ return;
++
++ unwind:
++ input_option_free_list(&options);
++ free(attrs.vendor);
++ free(attrs.product);
++ return;
++}
++
++static void
++device_added(char *line)
++{
++ char *walk;
++ char *path;
++ char *vendor;
++ char *product = NULL;
++ char *config_info = NULL;
++ InputOption *options = NULL;
++#if XORG_VERSION_CURRENT > 10800000
++ InputAttributes attrs = {};
++#else
++ InputOption *tmpo;
++#endif
++ DeviceIntPtr dev = NULL;
++ int i, rc;
++
++ walk = strchr(line, ' ');
++ if (walk != NULL)
++ walk[0] = '\0';
++
++ for (i = 0; hw_types[i].driver != NULL; i++) {
++ if (strncmp(line, hw_types[i].driver,
++ strlen(hw_types[i].driver)) == 0 &&
++ isdigit(*(line + strlen(hw_types[i].driver)))) {
++#if XORG_VERSION_CURRENT > 10800000
++ attrs.flags |= hw_types[i].flag;
++#endif
++ break;
++ }
++ }
++ if (hw_types[i].driver == NULL) {
++ LogMessageVerb(X_INFO, 10, "config/devd: ignoring device %s\n", line);
++ return;
++ }
++
++#if XORG_VERSION_CURRENT < 10800000
++ if (hw_types[i].xdriver == NULL) {
++ LogMessageVerb(X_INFO, 10, "config/devd: ignoring device %s\n", line);
++ return;
++ }
++#endif
++
++ if (asprintf(&path, "/dev/%s", line) == -1)
++ return;
++
++#if XORG_VERSION_CURRENT < 10800000
++ options = calloc(sizeof(*options), 1);
++ if (!options)
++ return;
++
++ add_option(&options, "_source", "server/devd");
++#else
++ options = input_option_new(NULL, "_source", "server/devd");
++ if (!options)
++ return;
++#endif
++
++ vendor = sysctl_get_str("dev.%s.%s.%%desc", hw_types[i].driver, line + strlen(hw_types[i].driver));
++ if (vendor == NULL) {
++#if XORG_VERSION_CURRENT > 10800000
++ attrs.vendor = strdup("(unnamed)");
++#endif
++ } else {
++ if ((product = strchr(vendor, ' ')) != NULL) {
++ product[0] = '\0';
++ product++;
++ }
++#if XORG_VERSION_CURRENT > 10800000
++ attrs.vendor = strdup(vendor);
++#endif
++ if (product != NULL && (walk = strchr(product, ',')) != NULL)
++ walk[0] = '\0';
++#if XORG_VERSION_CURRENT > 10800000
++ attrs.product = strdup(product != NULL ? product : "(unnamed)");
++ options = input_option_new(options, "name", product != NULL ? product : "(unnamed)");
++#else
++ add_option(&options, "name", product != NULL ? product : "(unnamed)");
++#endif
++ }
++#if XORG_VERSION_CURRENT > 10800000
++ attrs.usb_id = NULL;
++ options = input_option_new(options, "path", xstrdup(path));
++ options = input_option_new(options, "device", path);
++#else
++ add_option(&options, "path", xstrdup(path));
++ add_option(&options, "device", path);
++#endif
++
++#if XORG_VERSION_CURRENT < 10800000
++ add_option(&options, "driver", hw_types[i].xdriver);
++#endif
++
++ if (asprintf(&config_info, "devd:%s", line) == -1) {
++ config_info = NULL;
++ goto unwind;
++ }
++
++ if (device_is_duplicate(config_info)) {
++ LogMessage(X_WARNING, "config/devd: device %s already added. "
++ "Ignoring.\n", product != NULL ? product : "(unnamed)");
++ goto unwind;
++ }
++
++#if XORG_VERSION_CURRENT < 10800000
++ add_option(&options, "config_info", config_info);
++#else
++ options = input_option_new(options, "config_info", config_info);
++#endif
++ LogMessage(X_INFO, "config/devd: Adding input device %s (%s)\n",
++ product != NULL ? product : "(unnamed)", path);
++
++#if XORG_VERSION_CURRENT > 10800000
++ rc = NewInputDeviceRequest(options, &attrs, &dev);
++#else
++ rc = NewInputDeviceRequest(options, &dev);
++#endif
++
++ if (rc != Success)
++ goto unwind;
++
++ unwind:
++ free(config_info);
++#if XORG_VERSION_CURRENT < 10800000
++ while ((tmpo = options)) {
++ options = tmpo->next;
++ free(tmpo->key); /* NULL if dev != NULL */
++ free(tmpo->value); /* NULL if dev != NULL */
++ free(tmpo);
++ }
++#else
++ input_option_free_list(&options);
++#endif
++
++#if XORG_VERSION_CURRENT > 10800000
++ free(attrs.usb_id);
++ free(attrs.product);
++ free(attrs.device);
++ free(attrs.vendor);
++#endif
++
++ return;
++}
++
++static void
++device_removed(char *line)
++{
++ char *walk;
++ char *value;
++#if XORG_VERSION_CURRENT < 10800000
++ DeviceIntPtr dev, next;
++#endif
++
++ walk = strchr(line, ' ');
++ if (walk != NULL)
++ walk[0] = '\0';
++
++ if (asprintf(&value, "devd:%s", line) == -1)
++ return;
++
++#if XORG_VERSION_CURRENT > 10800000
++ remove_devices("dev", value);
++#else
++ for (dev = inputInfo.devices; dev; dev = next) {
++ next = dev->next;
++ if (dev->config_info && strcmp(dev->config_info, value) == 0)
++ remove_device(dev);
++ }
++ for (dev = inputInfo.off_devices; dev; dev = next) {
++ next = dev->next;
++ if (dev->config_info && strcmp(dev->config_info, value) == 0)
++ remove_device(dev);
++ }
++#endif
++
++ free(value);
++}
++
++static ssize_t
++socket_getline(int fd, char **out)
++{
++ char *buf;
++ ssize_t ret, cap, sz = 0;
++ char c;
++
++ cap = 1024;
++ buf = malloc(cap * sizeof(char));
++ if (!buf)
++ return -1;
++
++ for (;;) {
++ ret = read(sock_devd, &c, 1);
++ if (ret < 1) {
++ free(buf);
++ return -1;
++ }
++
++ if (c == '\n')
++ break;
++
++ if (sz + 1 >= cap) {
++ cap *= 2;
++ buf = realloc(buf, cap *sizeof(char));
++ }
++ buf[sz] = c;
++ sz++;
++ }
++
++ buf[sz] = '\0';
++ if (sz >= 0)
++ *out = buf;
++ else
++ free(buf);
++
++ return sz; /* number of bytes in the line, not counting the line break*/
++}
++
++static void
++wakeup_handler(pointer data, int err, pointer read_mask)
++{
++ char *line = NULL;
++
++ if (err < 0)
++ return;
++
++ if (FD_ISSET(sock_devd, (fd_set *)read_mask)) {
++ if (socket_getline(sock_devd, &line) < 0)
++ return;
++
++ switch(*line) {
++ case DEVD_EVENT_ADD:
++ device_added(line+1);
++ break;
++ case DEVD_EVENT_REMOVE:
++ device_removed(line+1);
++ break;
++ default:
++ break;
++ }
++ free(line);
++ }
++}
++
++static void
++block_handler(pointer data, struct timeval **tv, pointer read_mask)
++{
++}
++
++int
++config_devd_init(void)
++{
++ struct sockaddr_un devd;
++ char devicename[1024];
++ int i, j;
++
++ /* For keyboards, we don't want to open the actual device, because
++ we only need input from the VT that X is running on (see
++ xf86OpenConsole() in bsd_init.c). However, we still want
++ kbd_drv to be loaded, hence this dummy function which registers
++ a keyboard with zero-length device path. */
++ keyboard_added();
++
++ /* first scan the sysctl to determine the hardware if needed */
++
++ for (i = 0; hw_types[i].driver != NULL; i++) {
++ for (j = 0; sysctl_exists("dev.%s.%i.%%desc", hw_types[i].driver, j); j++) {
++ snprintf(devicename, 1024, "%s%i", hw_types[i].driver, j);
++ device_added(devicename);
++ }
++
++ }
++ sock_devd = socket(AF_UNIX, SOCK_STREAM, 0);
++ if (sock_devd < 0) {
++ ErrorF("config/devd: Fail opening stream socket");
++ return 0;
++ }
++
++ devd.sun_family = AF_UNIX;
++ strlcpy(devd.sun_path, DEVD_SOCK_PATH, sizeof(devd.sun_path));
++
++ if (connect(sock_devd, (struct sockaddr *) &devd, sizeof(struct sockaddr_un)) < 0) {
++ close(sock_devd);
++ ErrorF("config/devd: Fail to connect to devd");
++ return 0;
++ }
++
++ RegisterBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL);
++ AddGeneralSocket(sock_devd);
++
++ return 1;
++}
++
++void
++config_devd_fini(void)
++{
++ if (sock_devd < 0)
++ return;
++
++ RemoveGeneralSocket(sock_devd);
++ RemoveBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL);
++ close(sock_devd);
++}
+--- a/config/Makefile.am
++++ b/config/Makefile.am
+@@ -40,6 +40,10 @@
+ libconfig_la_SOURCES += wscons.c
+ endif # CONFIG_WSCONS
+
++if CONFIG_DEVD
++libconfig_la_SOURCES += devd.c
++endif
++
+ endif # CONFIG_NEED_DBUS
+
+ endif # !CONFIG_UDEV
+--- a/config/config-backends.h
++++ b/config/config-backends.h
+@@ -75,3 +75,8 @@
+ int config_wscons_init(void);
+ void config_wscons_fini(void);
+ #endif
++
++#ifdef CONFIG_DEVD
++int config_devd_init(void);
++void config_devd_fini(void);
++#endif
+--- a/config/config.c
++++ b/config/config.c
+@@ -64,6 +64,9 @@
+ #elif defined(CONFIG_WSCONS)
+ if (!config_wscons_init())
+ ErrorF("[config] failed to initialise wscons\n");
++#elif defined(CONFIG_DEVD)
++ if (!config_devd_init())
++ ErrorF("[config] failed to initialise devd\n");
+ #endif
+ }
+
+@@ -82,6 +85,8 @@
+ config_dbus_core_fini();
+ #elif defined(CONFIG_WSCONS)
+ config_wscons_fini();
++#elif defined(CONFIG_DEVD)
++ config_devd_fini();
+ #endif
+ }
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -619,6 +619,7 @@
+ AC_ARG_ENABLE(config-udev-kms, AS_HELP_STRING([--enable-config-udev-kms], [Build udev kms support (default: auto)]), [CONFIG_UDEV_KMS=$enableval], [CONFIG_UDEV_KMS=auto])
+ AC_ARG_ENABLE(config-dbus, AS_HELP_STRING([--enable-config-dbus], [Build D-BUS API support (default: no)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=no])
+ AC_ARG_ENABLE(config-hal, AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto])
++AC_ARG_ENABLE(config-devd, AS_HELP_STRING([--disable-config-devd], [Build devd support (default: auto)]), [CONFIG_DEVD=$enableval], [CONFIG_DEVD=auto])
+ AC_ARG_ENABLE(config-wscons, AS_HELP_STRING([--enable-config-wscons], [Build wscons config support (default: auto)]), [CONFIG_WSCONS=$enableval], [CONFIG_WSCONS=auto])
+ AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
+ AC_ARG_ENABLE(vgahw, AS_HELP_STRING([--enable-vgahw], [Build Xorg with vga access (default: enabled)]), [VGAHW=$enableval], [VGAHW=yes])
+@@ -915,6 +916,21 @@
+ AC_DEFINE(CONFIG_WSCONS, 1, [Use wscons for input auto configuration])
+ fi
+
++if test "x$CONFIG_DEVD" = xauto; then
++ case $host_os in
++ freebsd* | kfreebsd*-gnu)
++ CONFIG_DEVD=yes;
++ ;;
++ *)
++ CONFIG_DEVD=no;
++ ;;
++ esac
++fi
++AM_CONDITIONAL(CONFIG_DEVD, [test "x$CONFIG_DEVD" = xyes])
++if test "x$CONFIG_DEVD" = xyes; then
++ AC_DEFINE(CONFIG_DEVD, 1, [Use devd for input auto configuration])
++fi
++
+ if test "x$USE_SIGIO_BY_DEFAULT" = xyes; then
+ USE_SIGIO_BY_DEFAULT_VALUE=TRUE
+ else
+--- a/hw/xfree86/common/xf86Config.c
++++ b/hw/xfree86/common/xf86Config.c
+@@ -1376,15 +1376,17 @@
+ }
+
+ if (!xf86Info.forceInputDevices && !(foundPointer && foundKeyboard)) {
+-#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS)
++#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || defined(CONFIG_DEVD)
+ const char *config_backend;
+
+ #if defined(CONFIG_HAL)
+ config_backend = "HAL";
+ #elif defined(CONFIG_UDEV)
+ config_backend = "udev";
+-#else
++#elif defined(CONFIG_WSCONS)
+ config_backend = "wscons";
++#elif defined(CONFIG_DEVD)
++ config_backend = "devd";
+ #endif
+ xf86Msg(X_INFO, "The server relies on %s to provide the list of "
+ "input devices.\n\tIf no devices become available, "
+--- a/hw/xfree86/common/xf86Globals.c
++++ b/hw/xfree86/common/xf86Globals.c
+@@ -123,7 +123,7 @@
+ .log = LogNone,
+ .disableRandR = FALSE,
+ .randRFrom = X_DEFAULT,
+-#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS)
++#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || defined(CONFIG_DEVD)
+ .forceInputDevices = FALSE,
+ .autoAddDevices = TRUE,
+ .autoEnableDevices = TRUE,
+--- a/include/dix-config.h.in
++++ b/include/dix-config.h.in
+@@ -411,6 +411,9 @@
+ /* Support HAL for hotplug */
+ #undef CONFIG_HAL
+
++/* Support devd for hotplug */
++#undef CONFIG_DEVD
++
+ /* Have a monotonic clock from clock_gettime() */
+ #undef MONOTONIC_CLOCK
+
diff -Nur -x .pc xorg-server-1.14.5.old/debian/patches/series xorg-server-1.14.5/debian/patches/series
--- xorg-server-1.14.5.old/debian/patches/series 2014-02-08 01:52:23.000000000 +0100
+++ xorg-server-1.14.5/debian/patches/series 2014-02-08 01:53:10.260920680 +0100
@@ -7,1 +7,2 @@
08_xfree86_fix_ia64_inx_outx.diff
+devd.diff
diff -Nur -x .pc xorg-server-1.14.5.old/debian/rules xorg-server-1.14.5/debian/rules
--- xorg-server-1.14.5.old/debian/rules 2014-02-08 01:52:23.000000000 +0100
+++ xorg-server-1.14.5/debian/rules 2014-02-08 01:55:28.331918289 +0100
@@ -57,17 +57,15 @@
dri = --enable-dri --enable-dri2
endif
-config_backend = --disable-config-dbus
+config_backend = --disable-config-dbus --disable-config-hal
ifeq ($(DEB_HOST_ARCH_OS), linux)
- config_backend += --enable-config-udev --disable-config-hal
+ config_backend += --enable-config-udev
else ifeq ($(DEB_HOST_ARCH_OS), kfreebsd)
config_backend += --disable-config-udev
- config_backend_main += --enable-config-hal
- config_backend_udeb += --disable-config-hal
libs = $(shell pkg-config --libs libbsd-overlay)
cppflags = $(shell pkg-config --cflags libbsd-overlay)
else # hurd
- config_backend += --disable-config-udev --disable-config-hal
+ config_backend += --disable-config-udev
endif
vars = $(shell DEB_BUILD_MAINT_OPTIONS="hardening=+pie" DEB_LDFLAGS_MAINT_APPEND="-Wl,-Bsymbolic" DEB_CPPFLAGS_MAINT_APPEND="-DPRE_RELEASE=0 $(cppflags)" dpkg-buildflags --export=configure) LIBS="$(libs)"
Reply to: