-# 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
>=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
>=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
>=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
>=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}"/${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
--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() {
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"
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
"${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."
-}