]> git.draconx.ca Git - gentoo-draconx.git/blobdiff - x11-base/xorg-server/xorg-server-9999.ebuild
Remove libeatmydata.
[gentoo-draconx.git] / x11-base / xorg-server / xorg-server-9999.ebuild
index 44fa7764c8bed490622a9d595832863d423aaae6..58780c2dd6f11cb1362dd2b8385c8cd618e730ca 100644 (file)
@@ -1,19 +1,19 @@
-# Copyright 1999-2009 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Header: $
 
-EAPI=3
-inherit xorg-2 multilib versionator
+EAPI=4
 
+XORG_DOC=doc
+inherit xorg-2 multilib versionator
 EGIT_REPO_URI="git://anongit.freedesktop.org/git/xorg/xserver"
 
-OPENGL_DIR="xorg-x11"
-
 DESCRIPTION="X.Org X servers"
 KEYWORDS=""
 
-IUSE_SERVERS="dmx kdrive xorg"
-IUSE="${IUSE_SERVERS} doc tslib ipv6 minimal nptl +udev"
+IUSE_SERVERS="dmx kdrive xnest xorg xvfb"
+IUSE="${IUSE_SERVERS} ipv6 minimal nptl tslib +udev"
+
 RDEPEND=">=app-admin/eselect-opengl-1.0.8
        dev-libs/openssl
        media-libs/freetype
@@ -24,9 +24,9 @@ RDEPEND=">=app-admin/eselect-opengl-1.0.8
        >=x11-libs/libpciaccess-0.10.3
        >=x11-libs/libXau-1.0.4
        >=x11-libs/libXdmcp-1.0.2
-       >=x11-libs/libXfont-1.3.3
+       >=x11-libs/libXfont-1.4.2
        >=x11-libs/libxkbfile-1.0.4
-       >=x11-libs/pixman-0.15.20
+       >=x11-libs/pixman-0.21.8
        >=x11-libs/xtrans-1.2.2
        >=x11-misc/xbitmaps-1.0.1
        >=x11-misc/xkeyboard-config-1.4
@@ -35,15 +35,16 @@ RDEPEND=">=app-admin/eselect-opengl-1.0.8
                >=x11-libs/libdmx-1.0.99.1
                >=x11-libs/libX11-1.1.5
                >=x11-libs/libXaw-1.0.4
-               >=x11-libs/libXext-1.0.5
+               >=x11-libs/libXext-1.0.99.4
                >=x11-libs/libXfixes-4.0.3
                >=x11-libs/libXi-1.2.99.1
                >=x11-libs/libXmu-1.0.3
                >=x11-libs/libXres-1.0.3
-               >=x11-libs/libXtst-1.0.3
+               >=x11-libs/libXtst-1.0.99.2
        )
        kdrive? (
                >=x11-libs/libXext-1.0.5
+               x11-libs/libXv
        )
        !minimal? (
                >=x11-libs/libX11-1.1.5
@@ -51,7 +52,8 @@ RDEPEND=">=app-admin/eselect-opengl-1.0.8
                >=media-libs/mesa-7.8_rc[nptl=]
        )
        tslib? ( >=x11-libs/tslib-1.0 x11-proto/xcalibrateproto )
-       udev? ( sys-fs/udev )"
+       udev? ( >=sys-fs/udev-150 )
+       >=x11-apps/xinit-1.3"
 
 DEPEND="${RDEPEND}
        sys-devel/flex
@@ -71,65 +73,87 @@ DEPEND="${RDEPEND}
        >=x11-proto/trapproto-3.4.3
        >=x11-proto/videoproto-2.2.2
        >=x11-proto/xcmiscproto-1.2.0
-       >=x11-proto/xextproto-7.0.99.3
+       >=x11-proto/xextproto-7.1.99
        >=x11-proto/xf86dgaproto-2.0.99.1
        >=x11-proto/xf86rushproto-1.1.2
        >=x11-proto/xf86vidmodeproto-2.2.99.1
        >=x11-proto/xineramaproto-1.1.3
        >=x11-proto/xproto-7.0.17
-       dmx? ( >=x11-proto/dmxproto-2.2.99.1 )
-       doc? ( >=app-doc/doxygen-1.6.1 )
+       dmx? (
+               >=x11-proto/dmxproto-2.2.99.1
+               doc? (
+                       || (
+                               www-client/links
+                               www-client/lynx
+                               www-client/w3m
+                       )
+               )
+       )
        !minimal? (
                >=x11-proto/xf86driproto-2.1.0
-               >=x11-proto/dri2proto-2.1
-               >=x11-libs/libdrm-2.3.0
+               >=x11-proto/dri2proto-2.3
+               >=x11-libs/libdrm-2.4.20
        )"
 
 PDEPEND="
-       >=x11-apps/xinit-1.2.1-r1
        xorg? ( x11-base/xorg-drivers )"
 
-EPATCH_FORCE="yes"
-EPATCH_SUFFIX="patch"
+REQUIRED_USE="!minimal? (
+               || ( ${IUSE_SERVERS} )
+       )"
 
-# These have been sent upstream
 #UPSTREAMED_PATCHES=(
 #      "${WORKDIR}/patches/"
-#      )
+#)
 
 PATCHES=(
        "${UPSTREAMED_PATCHES[@]}"
        "${FILESDIR}"/${PN}-disable-acpi.patch
-       "${FILESDIR}"/0001-glx-Prevent-NULL-context-deref-in-__glXGetDrawable.patch
-       )
+       "${FILESDIR}"/${PN}-1.9-nouveau-default.patch
+       "${FILESDIR}"/0001-xfree86-Add-DontLie-server-flag.patch
+       "${FILESDIR}"/0001-xaa-Free-the-scratch-pixmap-header-before-freeing-th.patch
+       "${FILESDIR}"/0002-Remove-the-cacheing-of-the-last-scratch-PixmapRec.patch
+       "${FILESDIR}"/0003-shm-Replace-open-coded-version-of-GetScratchPixmapHe.patch
+       "${FILESDIR}"/0004-shadow-Remove-unused-ModifyPixmapHeader-wrapping.patch
+)
+
+pkg_pretend() {
+       # older gcc is not supported
+       [[ $(gcc-major-version) -lt 4 ]] && \
+               die "Sorry, but gcc earlier than 4.0 wont work for xorg-server."
+}
 
 pkg_setup() {
        xorg-2_pkg_setup
 
-       use minimal || ensure_a_server_is_building
-
        # localstatedir is used for the log location; we need to override the default
-       # from ebuild.sh
+       #       from ebuild.sh
        # sysconfdir is used for the xorg.conf location; same applies
-       # --enable-install-setuid needed because sparcs default off
-       CONFIGURE_OPTIONS="
+       #       --enable-install-setuid needed because sparcs default off
+       # NOTE: fop is used for doc generating ; and i have no idea if gentoo
+       #       package it somewhere
+       XORG_CONFIGURE_OPTIONS=(
                $(use_enable ipv6)
                $(use_enable dmx)
                $(use_enable kdrive)
+               $(use_enable kdrive kdrive-kbd)
+               $(use_enable kdrive kdrive-mouse)
+               $(use_enable kdrive kdrive-evdev)
                $(use_enable tslib)
                $(use_enable tslib xcalibrate)
-               $(use_enable !minimal xvfb)
-               $(use_enable !minimal xnest)
                $(use_enable !minimal record)
                $(use_enable !minimal xfree86-utils)
                $(use_enable !minimal install-libxf86config)
                $(use_enable !minimal dri)
                $(use_enable !minimal dri2)
                $(use_enable !minimal glx)
+               $(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)
                --sysconfdir=/etc/X11
                --localstatedir=/var
                --enable-install-setuid
@@ -137,48 +161,20 @@ pkg_setup() {
                --with-xkb-output=/var/lib/xkb
                --disable-config-hal
                --without-dtrace
+               --without-fop
                --with-os-vendor=Gentoo
-               ${conf_opts}"
-
-       # (#121394) Causes window corruption
-       filter-flags -fweb
-
-       # Incompatible with GCC 3.x SSP on x86, bug #244352
-       if use x86 ; then
-               if [[ $(gcc-major-version) -lt 4 ]]; then
-                       filter-flags -fstack-protector
-               fi
-       fi
-
-       # Incompatible with GCC 3.x CPP, bug #314615
-       if [[ $(gcc-major-version) -lt 4 ]]; then
-               ewarn "GCC 3.x C preprocessor may cause build failures. Use GCC 4.x"
-               ewarn "or set CPP=cpp-4.3.4 (replace with the actual installed version)"
-       fi
-
-       # detect if we should inform user about ebuild breakage
-       if ! has_version "x11-base/xorg-server" ||
-                       has_version "<x11-base/xorg-server-$(get_version_component_range 1-2)"; then
-               INFO="yes"
-       fi
-}
-
-src_configure() {
-       # this is required only for configure and build time
-       # we need to ensure having enough glxtokens
-       # the subshell is needed so the addwrite is not shared in rest of that phase
-       OLD_IMPLEM="$(eselect opengl show)"
-       [[ ${OLD_IMPLEM} != ${OPENGL_DIR} ]] && ( addwrite "${ROOT}"; eselect opengl set ${OPENGL_DIR}; )
-       xorg-2_src_configure
-}
+       )
 
-src_compile() {
-       emake # no die here intentional
-       if [[ $? != 0 ]]; then
-               [[ ${OLD_IMPLEM} != ${OPENGL_DIR} ]] && ( addwrite "${ROOT}"; eselect opengl set ${OLD_IMPLEM}; )
-               die "Compilation failed"
-       fi
-       [[ ${OLD_IMPLEM} != ${OPENGL_DIR} ]] && ( addwrite "${ROOT}"; eselect opengl set ${OLD_IMPLEM}; )
+       # Xorg-server requires includes from OS mesa which are not visible for
+       # users of binary drivers.
+       mkdir -p "${T}/mesa-symlinks/GL"
+       for i in gl glx glxmd glxproto glxtokens; do
+               ln -s "${EROOT}usr/$(get_libdir)/opengl/xorg-x11/include/$i.h" "${T}/mesa-symlinks/GL/$i.h" || die
+       done
+       for i in glext glxext; do
+               ln -s "${EROOT}usr/$(get_libdir)/opengl/global/include/$i.h" "${T}/mesa-symlinks/GL/$i.h" || die
+       done
+       append-cppflags "-I${T}/mesa-symlinks"
 }
 
 src_install() {
@@ -190,29 +186,25 @@ src_install() {
 
        if ! use minimal &&     use xorg; then
                # Install xorg.conf.example into docs
-               dodoc hw/xfree86/xorg.conf.example \
-                       || die "couldn't install xorg.conf.example"
+               dodoc "${AUTOTOOLS_BUILD_DIR}"/hw/xfree86/xorg.conf.example
        fi
 
-       # install the xdm.init
-       cp "${FILESDIR}"/xdm.initd "${T}"
-       sed -i \
-               -e "/@HALD_DEPEND@/ d" \
-               "${T}"/xdm.initd \
-               || die "sed failed"
-       newinitd "${T}"/xdm.initd xdm || die "initd file install failed"
-       newinitd "${FILESDIR}"/xdm-setup.initd-1 xdm-setup || die
-       newconfd "${FILESDIR}"/xdm.confd-3 xdm || die
+       newinitd "${FILESDIR}"/xdm-setup.initd-1 xdm-setup
+       newinitd "${FILESDIR}"/xdm.initd-3 xdm
+       newconfd "${FILESDIR}"/xdm.confd-3 xdm
 
        # install the @x11-module-rebuild set for Portage
        insinto /usr/share/portage/config/sets
-       newins "${FILESDIR}"/xorg-sets.conf xorg.conf || die
+       newins "${FILESDIR}"/xorg-sets.conf xorg.conf
 }
 
 pkg_postinst() {
-       if [[ ${INFO} = yes ]]; then
-               einfo "You should consider reading upgrade guide for this release:"
-               einfo " http://www.gentoo.org/proj/en/desktop/x/x11/xorg-server-$(get_version_component_range 1-2)-upgrade-guide.xml"
+       # sets up libGL and DRI2 symlinks if needed (ie, on a fresh install)
+       eselect opengl set xorg-x11 --use-old
+
+       if [[ ${PV} != 9999 && $(get_version_component_range 2 ${REPLACING_VERSIONS}) != $(get_version_component_range 2 ${PV}) ]]; then
+               elog "You should consider reading upgrade guide for this release:"
+               elog "  http://www.gentoo.org/proj/en/desktop/x/x11/xorg-server-$(get_version_component_range 1-2)-upgrade-guide.xml"
                echo
                ewarn "You must rebuild all drivers if upgrading from <xorg-server-$(get_version_component_range 1-2)"
                ewarn "because the ABI changed. If you cannot start X because"
@@ -222,26 +214,26 @@ pkg_postinst() {
                ewarn "You can generate a list of all installed packages in the x11-drivers"
                ewarn "category using this command:"
                ewarn " emerge portage-utils; qlist -I -C x11-drivers/"
+               ewarn "or using sets from portage-2.2:"
+               ewarn " emerge @x11-module-rebuild"
        fi
 }
 
 pkg_postrm() {
        # Get rid of module dir to ensure opengl-update works properly
-       if ! has_version x11-base/xorg-server; then
-               if [[ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]]; then
-                       rm -rf "${ROOT}"/usr/$(get_libdir)/xorg/modules
-               fi
+       if [[ -z ${REPLACED_BY_VERSION} && -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]]; then
+               rm -rf "${ROOT}"/usr/$(get_libdir)/xorg/modules
        fi
 }
 
 dynamic_libgl_install() {
        # next section is to setup the dynamic libGL stuff
        ebegin "Moving GL files for dynamic switching"
-               dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
+               dodir /usr/$(get_libdir)/opengl/xorg-x11/extensions
                local x=""
                for x in "${D}"/usr/$(get_libdir)/xorg/modules/extensions/lib{glx,dri,dri2}*; do
                        if [ -f ${x} -o -L ${x} ]; then
-                               mv -f ${x} "${D}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
+                               mv -f ${x} "${D}"/usr/$(get_libdir)/opengl/xorg-x11/extensions
                        fi
                done
        eend 0
@@ -255,12 +247,3 @@ server_based_install() {
                        "${D}"/usr/share/man/man1/Xserver.1x
        fi
 }
-
-ensure_a_server_is_building() {
-       for server in ${IUSE_SERVERS}; do
-               use ${server} && return;
-       done
-       eerror "You need to specify at least one server to build."
-       eerror "Valid servers are: ${IUSE_SERVERS}."
-       die "No servers were specified to build."
-}