aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-base')
-rw-r--r--x11-base/xorg-server/files/xorg-server-fix_declaration_mismatch.patch37
-rw-r--r--x11-base/xorg-server/files/xorg-server-fix_stupid_array_bounds_warning.patch13
-rw-r--r--x11-base/xorg-server/xorg-server-9999.ebuild23
3 files changed, 69 insertions, 4 deletions
diff --git a/x11-base/xorg-server/files/xorg-server-fix_declaration_mismatch.patch b/x11-base/xorg-server/files/xorg-server-fix_declaration_mismatch.patch
new file mode 100644
index 0000000..8355447
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-fix_declaration_mismatch.patch
@@ -0,0 +1,37 @@
+diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c
+index 7fd6a48..19f54d6 100644
+--- a/xkb/xkbAccessX.c
++++ b/xkb/xkbAccessX.c
+@@ -55,7 +55,7 @@ static unsigned int XkbDfltAccessXTimeoutValues = 0;
+ static unsigned int XkbDfltAccessXTimeoutOptionsMask = DFLT_TIMEOUT_OPTS;
+ static unsigned int XkbDfltAccessXTimeoutOptionsValues = 0;
+ unsigned int XkbDfltAccessXFeedback = XkbAccessXFeedbackMask;
+-unsigned short XkbDfltAccessXOptions =
++unsigned int XkbDfltAccessXOptions =
+ XkbAX_AllOptionsMask & ~(XkbAX_IndicatorFBMask | XkbAX_SKReleaseFBMask |
+ XkbAX_SKRejectFBMask);
+
+diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
+index 30e10bd..1774f57 100644
+--- a/xkb/xkbInit.c
++++ b/xkb/xkbInit.c
+@@ -728,7 +728,7 @@ extern int XkbDfltRepeatInterval;
+ extern unsigned short XkbDfltAccessXTimeout;
+ extern unsigned int XkbDfltAccessXTimeoutMask;
+ extern unsigned int XkbDfltAccessXFeedback;
+-extern unsigned char XkbDfltAccessXOptions;
++extern unsigned int XkbDfltAccessXOptions;
+
+ int
+ XkbProcessArguments(int argc, char *argv[], int i)
+@@ -789,8 +789,8 @@ XkbProcessArguments(int argc, char *argv[], int i)
+ j++;
+ }
+ if (((i + 1) < argc) && (isdigit(argv[i + 1][0]))) {
+- XkbDfltAccessXOptions = (unsigned char)
+- strtol(argv[++i], NULL, 16);
++ XkbDfltAccessXOptions = (unsigned int)
++ strtoul(argv[++i], NULL, 16);
+ j++;
+ }
+ }
diff --git a/x11-base/xorg-server/files/xorg-server-fix_stupid_array_bounds_warning.patch b/x11-base/xorg-server/files/xorg-server-fix_stupid_array_bounds_warning.patch
new file mode 100644
index 0000000..e091995
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-fix_stupid_array_bounds_warning.patch
@@ -0,0 +1,13 @@
+diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
+index 209df29..85365da 100644
+--- a/Xext/panoramiX.c
++++ b/Xext/panoramiX.c
+@@ -72,7 +72,7 @@ extern VisualPtr glxMatchVisual(ScreenPtr pScreen,
+
+ int PanoramiXPixWidth = 0;
+ int PanoramiXPixHeight = 0;
+-int PanoramiXNumScreens = 0;
++int PanoramiXNumScreens = 1;
+
+ _X_EXPORT RegionRec PanoramiXScreenRegion = { {0, 0, 0, 0}, NULL };
+
diff --git a/x11-base/xorg-server/xorg-server-9999.ebuild b/x11-base/xorg-server/xorg-server-9999.ebuild
index 8cdcaa3..03e102d 100644
--- a/x11-base/xorg-server/xorg-server-9999.ebuild
+++ b/x11-base/xorg-server/xorg-server-9999.ebuild
@@ -13,7 +13,7 @@ SLOT="0/${PV}"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux"
IUSE_SERVERS="dmx kdrive xephyr xnest xorg xvfb"
-IUSE="${IUSE_SERVERS} glamor ipv6 minimal nptl selinux +suid systemd tslib +udev unwind wayland"
+IUSE="${IUSE_SERVERS} extra-warn glamor glx ipv6 minimal nptl selinux +suid systemd tslib +udev unwind wayland"
CDEPEND=">=app-eselect/eselect-opengl-1.3.0
dev-libs/openssl
@@ -133,7 +133,7 @@ PDEPEND="
REQUIRED_USE="!minimal? (
|| ( ${IUSE_SERVERS} )
)
- xephyr? ( kdrive )"
+ xephyr? ( kdrive glx )"
#UPSTREAMED_PATCHES=(
# "${WORKDIR}/patches/"
@@ -145,12 +145,22 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.12-unloadsubmodule.patch
# needed for new eselect-opengl, bug #541232
"${FILESDIR}"/${PN}-1.17-support-multiple-Files-sections.patch
+ "${FILESDIR}"/${PN}-fix_stupid_array_bounds_warning.patch
+ "${FILESDIR}"/${PN}-fix_declaration_mismatch.patch
)
pkg_pretend() {
# older gcc is not supported
[[ "${MERGE_TYPE}" != "binary" && $(gcc-major-version) -lt 4 ]] && \
die "Sorry, but gcc earlier than 4.0 will not work for xorg-server."
+
+ # -flto reveals bugs and anomalous behavoir in xephyr and unwind
+ if use unwind || use xephyr ; then
+ is-flagq "-flto*" && \
+ eerror "Sorry but you must disable unwind and xephyr to use -flto"
+ eerror ""
+ die "Whole program optimization reveals latent build errors in Xephyr"
+ fi
}
src_configure() {
@@ -164,6 +174,9 @@ src_configure() {
# sysconfdir is used for the xorg.conf location; same applies
# NOTE: fop is used for doc generating ; and i have no idea if gentoo
# package it somewhere
+
+ # should try $(use_enable dri3) some day...
+
XORG_CONFIGURE_OPTIONS=(
$(use_enable ipv6)
$(use_enable dmx)
@@ -181,22 +194,24 @@ src_configure() {
$(use_enable !minimal install-libxf86config)
$(use_enable !minimal dri)
$(use_enable !minimal dri2)
- $(use_enable !minimal glx)
+ $(use_enable glx)
+ $(use_enable glx aiglx)
$(use_enable xephyr)
$(use_enable xnest)
$(use_enable xorg)
$(use_enable xvfb)
- $(use_enable nptl glx-tls)
$(use_enable udev config-udev)
$(use_with doc doxygen)
$(use_with doc xmlto)
$(use_with systemd systemd-daemon)
$(use_enable systemd systemd-logind)
+ $(use_enable extra-warn selective-werror)
--enable-libdrm
--sysconfdir="${EPREFIX}"/etc/X11
--localstatedir="${EPREFIX}"/var
--with-fontrootdir="${EPREFIX}"/usr/share/fonts
--with-xkb-output="${EPREFIX}"/var/lib/xkb
+ --disable-xquartz
--disable-config-hal
--disable-linux-acpi
--without-dtrace