]> git.draconx.ca Git - gentoo-draconx.git/commitdiff
xorg-server: Add live ebuild.
authorNick Bowler <nbowler@draconx.ca>
Wed, 2 Jun 2010 03:13:56 +0000 (23:13 -0400)
committerNick Bowler <nbowler@draconx.ca>
Wed, 2 Jun 2010 03:13:56 +0000 (23:13 -0400)
x11-base/xorg-server/Manifest
x11-base/xorg-server/xorg-server-9999.ebuild [new file with mode: 0644]

index 955b0e65ecea1a2ff521689bb31664f036cb9080..a36925dabca503cd452d72c56d5c47af0a925a19 100644 (file)
@@ -12,3 +12,4 @@ DIST xorg-server-1.8.1.tar.bz2 5200978 RMD160 27bd6d1e565e241412f1fb8e18b5b9b194
 EBUILD xorg-server-1.7.7.ebuild 7220 RMD160 ed925fe7fccf08ae58ce59314a0c472535f13ec0 SHA1 5d72d32a1b8c9c4f40f88627b42d749ed4223e7b SHA256 f70710b49e1ca43c8cc765fe20ab9819bc5b2793eff0064cee607e4703d73ccc
 EBUILD xorg-server-1.8.0.ebuild 8221 RMD160 6aa53ec1042a8c12b9aa06c1aee767a50e1c2445 SHA1 d1e770f5108c161fb5d20207c612c568c32cfdc8 SHA256 5e21d8ab052b17774c40b67fb20981847a289ddbad39b8753501d21b50a6d450
 EBUILD xorg-server-1.8.1-r1.ebuild 7998 RMD160 c1035725f811ee2b5723a8bdac73cb3eeb3f6dd0 SHA1 08cf52506fb9eb2261b9c3d64dd8807fd95daeb5 SHA256 43b5bc070b8f479c08532f4a5c62b332cf8f579ee5f49614ffb256a1bb746a1a
+EBUILD xorg-server-9999.ebuild 7230 RMD160 7a6cc7bfc06771c584816bc94a9f83edab5d6ba6 SHA1 f5c4a551b8201751002b33a3fc569f6b76fd53e6 SHA256 e5a14f30be37fa4253e4cfe42938b03c1b2eb6fae049342eeccffdceb280b159
diff --git a/x11-base/xorg-server/xorg-server-9999.ebuild b/x11-base/xorg-server/xorg-server-9999.ebuild
new file mode 100644 (file)
index 0000000..d7714c2
--- /dev/null
@@ -0,0 +1,261 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=3
+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"
+RDEPEND=">=app-admin/eselect-opengl-1.0.8
+       dev-libs/openssl
+       media-libs/freetype
+       >=x11-apps/iceauth-1.0.2
+       >=x11-apps/rgb-1.0.3
+       >=x11-apps/xauth-1.0.3
+       x11-apps/xkbcomp
+       >=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/libxkbfile-1.0.4
+       >=x11-libs/pixman-0.15.20
+       >=x11-libs/xtrans-1.2.2
+       >=x11-misc/xbitmaps-1.0.1
+       >=x11-misc/xkeyboard-config-1.4
+       dmx? (
+               x11-libs/libXt
+               >=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/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
+       )
+       kdrive? (
+               >=x11-libs/libXext-1.0.5
+       )
+       !minimal? (
+               >=x11-libs/libX11-1.1.5
+               >=x11-libs/libXext-1.0.5
+               >=media-libs/mesa-7.8_rc[nptl=]
+       )
+       tslib? ( >=x11-libs/tslib-1.0 x11-proto/xcalibrateproto )
+       udev? ( sys-fs/udev )"
+
+DEPEND="${RDEPEND}
+       !!net-dialup/dtrace
+       sys-devel/flex
+       >=x11-proto/bigreqsproto-1.1.0
+       >=x11-proto/compositeproto-0.4
+       >=x11-proto/damageproto-1.1
+       >=x11-proto/fixesproto-4.1
+       >=x11-proto/fontsproto-2.0.2
+       >=x11-proto/glproto-1.4.11
+       >=x11-proto/inputproto-1.9.99.902
+       >=x11-proto/kbproto-1.0.3
+       >=x11-proto/randrproto-1.2.99.3
+       >=x11-proto/recordproto-1.13.99.1
+       >=x11-proto/renderproto-0.11
+       >=x11-proto/resourceproto-1.0.2
+       >=x11-proto/scrnsaverproto-1.1
+       >=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/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.13
+       dmx? ( >=x11-proto/dmxproto-2.2.99.1 )
+       doc? ( app-doc/doxygen )
+       !minimal? (
+               >=x11-proto/xf86driproto-2.1.0
+               >=x11-proto/dri2proto-2.1
+               >=x11-libs/libdrm-2.3.0
+       )"
+
+PDEPEND="
+       >=x11-apps/xinit-1.2.1-r1"
+
+EPATCH_FORCE="yes"
+EPATCH_SUFFIX="patch"
+
+# These have been sent upstream
+#UPSTREAMED_PATCHES=(
+#      "${WORKDIR}/patches/"
+#      )
+
+PATCHES=(
+       "${UPSTREAMED_PATCHES[@]}"
+       "${FILESDIR}"/${PN}-disable-acpi.patch
+       )
+
+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
+       # sysconfdir is used for the xorg.conf location; same applies
+       # --enable-install-setuid needed because sparcs default off
+       CONFIGURE_OPTIONS="
+               $(use_enable ipv6)
+               $(use_enable dmx)
+               $(use_enable kdrive)
+               $(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 xorg)
+               $(use_enable nptl glx-tls)
+               $(use_enable udev config-udev)
+               $(use_with doc doxygen)
+               --sysconfdir=/etc/X11
+               --localstatedir=/var
+               --enable-install-setuid
+               --with-fontrootdir=/usr/share/fonts
+               --with-xkb-output=/var/lib/xkb
+               --disable-config-hal
+               --without-dtrace
+               --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}; )
+}
+
+src_install() {
+       xorg-2_src_install
+
+       dynamic_libgl_install
+
+       server_based_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"
+       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
+}
+
+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"
+               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 "of module version mismatch errors, this is your problem."
+
+               echo
+               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/"
+       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
+       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
+               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
+                       fi
+               done
+       eend 0
+}
+
+server_based_install() {
+       if ! use xorg; then
+               rm "${D}"/usr/share/man/man1/Xserver.1x \
+                       "${D}"/usr/$(get_libdir)/xserver/SecurityPolicy \
+                       "${D}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
+                       "${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."
+}