# $Id$ PNAME="xorg-server" PVER="1.10.2" PBUILD="r1" PCATEGORIE="x11-base" STATE="unstable" #DESCRIPTION="Modular X.Org X Server." HOMEPAGE="http://xorg.freedesktop.org" sminclude xorg mtools # mesa sources are needed to compile opengl extensions MESA_PVER="7.10.2" MESA_SRCFILE="MesaLib-${MESA_PVER/_/-}.tar.gz" MESA_SRCDIR="${BUILDDIR}/MesaLib-${MESA_PVER/_/-}" PROVIDE="virtual/x11" # common depends COMMON_DEPEND=">= x11-libs/libXfont-1.4 >= x11-libs/libXau-1.0.6 >= x11-libs/libXdmcp-1.1 >= x11-libs/pixman-0.22 >= media-libs/freetype-2.4 >= media-fonts/font-misc-misc-1 >= media-fonts/font-cursor-misc-1 >= app-crypt/libgcrypt-1.4.6 >= app-crypt/libgpg-error-1.9 >= sys-fs/udev-170" # rundepends SDEPEND="${COMMON_DEPEND} >= x11-libs/libXext-1.3 >= x11-libs/libX11-1.4 >= x11-libs/libXmu-1.1 >= x11-libs/libXrender-0.9.6 >= x11-libs/libXi-1.4 == media-libs/mesa-${MESA_PVER} >= x11-misc/xkeyboard-config-2.2 >= x11-apps/iceauth-1.0.5 >= x11-apps/rgb-1.0.4 >= x11-apps/xauth-1.0.6 >= x11-apps/xinit-1.3 >= x11-libs/libXaw-1.0.9 >= x11-libs/libdmx-1.1.1 >= x11-libs/libXv-1.0.6 >= x11-libs/libXfixes-5 >= x11-base/opengl-update-magellan-2.2.13 >= x11-libs/libpciaccess-0.12.1" # compile depends SDEPEND+="${SDEPEND} >= x11-libs/xtrans-1.2.6 >= x11-proto/randrproto-1.3.2 >= x11-proto/renderproto-0.11 >= x11-proto/fixesproto-5 >= x11-proto/damageproto-1.2 >= x11-proto/xextproto-7.2 >= x11-proto/xproto-7.0.21 >= x11-proto/xf86dgaproto-2.1 >= x11-proto/xf86miscproto-0.9.3 >= x11-proto/xf86vidmodeproto-2.3 >= x11-proto/xf86bigfontproto-1.2 >= x11-proto/compositeproto-0.4.2 >= x11-proto/recordproto-1.14 >= x11-proto/resourceproto-1.2 >= x11-proto/videoproto-2.3 >= x11-proto/scrnsaverproto-1.2 >= x11-proto/evieext-1.1 >= x11-proto/xineramaproto-1.2 >= x11-proto/fontsproto-2.1 >= x11-proto/kbproto-1.0.5 >= x11-proto/inputproto-2 >= x11-proto/bigreqsproto-1.1 >= x11-proto/xcmiscproto-1.2 >= x11-proto/glproto-1.4.12 >= x11-proto/dmxproto-2.3 >= x11-proto/xf86driproto-2.1 >= x11-proto/dri2proto-2.3 >= x11-libs/libdrm-2.4.25 >= x11-libs/libXtst-1.2 >= x11-libs/libXres-1.0.5" SPLIT_PACKAGES="xorg-server kdrive xephyr xdmx xnest xvfb" SRC_URI=( ${SRC_URI[*]} mirror://${PNAME}/${SRCFILE} ftp://ftp.freedesktop.org/pub/mesa/${MESA_PVER}/${MESA_SRCFILE} sourceforge://mesa3d/${MESA_SRCFILE} mirror://mesa/${MESA_SRCFILE} mirror://${PNAME}/${PNAME}-${PVER}-fpic-libxf86config.patch mirror://${PNAME}/${PNAME}-1.2.0-die-ugly-pattern-die-die-die.patch mirror://${PNAME}/${PNAME}-1.8.0-match-only-sane-devices.patch mirror://${PNAME}/${PNAME}-1.8.0-kdrive-default-mode.patch mirror://${PNAME}/${PNAME}-1.8.0-kdrive-evdev-with-valid-mouse-devices.patch ) UP2SUBDIR="xserver" UP2DATE="updatecmd_xorg ${PNAME}" split_info_xorg-server() { DESCRIPTION="Modular X.Org X Server." DEPEND="${COMMON_DEPEND} == media-libs/mesa-${MESA_PVER} >= x11-misc/xkeyboard-config-2.2 >= x11-apps/iceauth-1.0.5 >= x11-apps/rgb-1.0.4 >= x11-apps/xauth-1.0.6 >= x11-apps/xinit-1.3 >= x11-base/opengl-update-magellan-2.2.13 >= x11-libs/libpciaccess-0.12.1" preinstall() { # fix some deprecated symlinks from ancient xorg-1.5 servers if [ -L ${MROOT}/usr/$(mlibdir)/xorg/modules/extensions/libdri.so ] then rm ${MROOT}/usr/$(mlibdir)/xorg/modules/extensions/libdri.so fi if [ -f ${MROOT}/usr/$(mlibdir)/opengl/xorg/extensions/libdri.so ] then rm ${MROOT}/usr/$(mlibdir)/opengl/xorg/extensions/libdri.so fi if [ -L ${MROOT}/usr/$(mlibdir)/xorg/modules/extensions/libglx.so ] then rm ${MROOT}/usr/$(mlibdir)/xorg/modules/extensions/libglx.so fi if [ -f ${MROOT}/usr/$(mlibdir)/opengl/xorg/extensions/libglx.so ] then rm ${MROOT}/usr/$(mlibdir)/opengl/xorg/extensions/libglx.so fi } postinstall() { ${MROOT}/usr/sbin/opengl-update --use-old xorg } postremove() { # get rid of module dir to ensure opengl-update works properbly if [ -e ${MROOT}/usr/$(mlibdir)/xorg/modules ] then if [[ -z $(magequery -n xorg-server) ]] then rm -rf ${MROOT}/usr/$(mlibdir)/xorg/modules fi fi } } split_info_kdrive() { DESCRIPTION="Tiny X.Org X Server." DEPEND="${COMMON_DEPEND}" unset -f preinstall unset -f postinstall unset -f postremove } split_info_xephyr() { DESCRIPTION="A nested X11 server with opengl support." DEPEND="${COMMON_DEPEND} >= x11-libs/libXext-1.3 >= x11-libs/libX11-1.4 >= x11-libs/libXv-1.0.6 == media-libs/mesa-${MESA_PVER} >= x11-libs/libXi-1.4 >= x11-libs/libXmu-1.1" unset -f preinstall unset -f postinstall unset -f postremove } split_info_xnest() { DESCRIPTION="A nested X11 server." DEPEND="${COMMON_DEPEND} >= x11-libs/libXext-1.3 >= x11-libs/libX11-1.4" unset -f preinstall unset -f postinstall unset -f postremove } split_info_xdmx() { DESCRIPTION="A distributed multihead X11 Server." DEPEND="${COMMON_DEPEND} >= x11-libs/libXext-1.3 >= x11-libs/libX11-1.4 >= x11-libs/libdmx-1.1.1 >= x11-libs/libXaw-1.0.9 >= x11-libs/libXfixes-5 >= x11-libs/libXi-1.5 >= x11-libs/libXrender-0.9.6" unset -f preinstall unset -f postinstall unset -f postremove } split_info_xvfb() { DESCRIPTION="A virtual framebuffer X11 server." DEPEND="${COMMON_DEPEND}" unset -f preinstall unset -f postinstall unset -f postremove } src_prepare() { # must use mesa as opengl-headers! [[ $(opengl-update --get-implementation) != xorg ]] && die "please change to xorg opengl-headers: opengl-update xorg" munpack ${SRCFILE} || die munpack ${MESA_SRCFILE} || die cd ${SRCDIR} # fixes fpic issues with libxf86config on 64bit systems mpatch ${PNAME}-${PVER}-fpic-libxf86config.patch || die # adopted from redhat; use a black background mpatch ${PNAME}-1.2.0-die-ugly-pattern-die-die-die.patch || die # fix kdrive default mode -> use 640x480@60hz instead of 800x600@75hz mpatch ${PNAME}-1.8.0-kdrive-default-mode.patch || die # fix new evdev event devices (event4 and event5) mpatch ${PNAME}-1.8.0-kdrive-evdev-with-valid-mouse-devices.patch || die # fix build issues, some wrapper files which should be generated # at build time exist and the makefile doesn't whipe them. we patch # the makefile to clean them and whipe these wrapper files rm -f ${SRCDIR}/hw/xprint/*-wrapper.c || die # fix xorg.conf.d location sed -i 's:^\(@CONFIG_UDEV_TRUE@xorgconfddir =\).*:\1 $(sysconfdir)/X11/$(XF86CONFIGDIR):' config/Makefile.in || die sed -i 's:^\(xorgconfddir =\).*: \1$(sysconfdir)/X11/$(XF86CONFIGDIR):' config/Makefile.am || die autoreconf --verbose --install --force || die } src_compile() { cd ${SRCDIR} xorg_src_configure \ --with-mesa-source=${MESA_SRCDIR} \ --sysconfdir=/etc \ --localstatedir=/var \ --with-xkb-output=/var/lib/xkb \ --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \ --enable-install-setuid \ --enable-ipv6 \ --enable-xorg \ --enable-kdrive \ --enable-xephyr \ --enable-dmx \ --enable-xvfb \ --enable-xnest \ --enable-dri \ --enable-dri2 \ --enable-xtrap \ --enable-xevie \ --disable-xprint \ --enable-glx-tls \ --disable-static \ --disable-config-dbus \ --disable-config-hal \ --enable-config-udev \ --enable-kdrive-kbd \ --enable-kdrive-mouse \ --enable-kdrive-evdev \ || die mmake || die } src_install_xorg-server() { xorg_src_install || die # needed directories minstalldir /usr/bin || die minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die # dynamic opengl setup local i for i in ${BINDIR}/usr/$(mlibdir)/xorg/modules/libglx* \ ${BINDIR}/usr/$(mlibdir)/xorg/modules/libdri* do if [ -f ${i} -o -L ${i} ] then mv -f ${i} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/extensions || die "${i}" fi done # missing symlink mlink Xorg /usr/bin/X || die # remove stuff included in other packages # xfbdev rm ${BINDIR}/usr/bin/Xfbdev || die # xephyr rm ${BINDIR}/usr/bin/Xephyr || die rm ${BINDIR}/usr/share/man/man1/Xephyr.1 || die # xnest rm ${BINDIR}/usr/bin/Xnest || die rm ${BINDIR}/usr/share/man/man1/Xnest.1 || die # xdmx rm ${BINDIR}/usr/bin/Xdmx || die rm ${BINDIR}/usr/share/man/man1/Xdmx.1 || die rm ${BINDIR}/usr/bin/dmxaddinput || die rm ${BINDIR}/usr/bin/dmxaddscreen || die rm ${BINDIR}/usr/bin/dmxreconfig || die rm ${BINDIR}/usr/bin/dmxresize || die rm ${BINDIR}/usr/bin/dmxrminput || die rm ${BINDIR}/usr/bin/dmxrmscreen || die rm ${BINDIR}/usr/bin/dmxwininfo || die rm ${BINDIR}/usr/bin/dmxinfo || die rm ${BINDIR}/usr/bin/dmxtodmx || die rm ${BINDIR}/usr/share/man/man1/dmxtodmx.1 || die rm ${BINDIR}/usr/bin/vdltodmx || die rm ${BINDIR}/usr/share/man/man1/vdltodmx.1 || die rm ${BINDIR}/usr/bin/xdmxconfig || die rm ${BINDIR}/usr/share/man/man1/xdmxconfig.1 || die # xvfb rm ${BINDIR}/usr/bin/Xvfb || die rm ${BINDIR}/usr/share/man/man1/Xvfb.1 || die } src_install_kdrive() { cd ${SRCDIR} minstallexec hw/kdrive/fbdev/Xfbdev || die #minstallman hw/kdrive/fbdev/Xfbdev.1 || die # suid all tinyX servers mchmod 4755 /usr/bin/X\* || die # needed directory mkeepdir /usr/share/X11/xkb/compiled || die } src_install_xephyr() { cd ${SRCDIR} minstallexec hw/kdrive/ephyr/Xephyr || die minstallman hw/kdrive/ephyr/man/Xephyr.1 || die # suid all tinyX servers mchmod 4755 /usr/bin/X\* || die # needed directory mkeepdir /usr/share/X11/xkb/compiled || die } src_install_xnest() { cd ${SRCDIR} minstallexec hw/xnest/Xnest || die minstallman hw/xnest/man/Xnest.1 || die # needed directory mkeepdir /usr/share/X11/xkb/compiled || die } src_install_xdmx() { cd ${SRCDIR} minstallexec hw/dmx/Xdmx || die minstallman hw/dmx/man/Xdmx.1 || die minstallexec hw/dmx/examples/dmxaddinput || die minstallexec hw/dmx/examples/dmxaddscreen || die minstallexec hw/dmx/examples/dmxreconfig || die minstallexec hw/dmx/examples/dmxresize || die minstallexec hw/dmx/examples/dmxrminput || die minstallexec hw/dmx/examples/dmxrmscreen || die minstallexec hw/dmx/examples/dmxwininfo || die minstallexec hw/dmx/examples/dmxinfo || die minstallexec hw/dmx/config/dmxtodmx || die minstallman hw/dmx/config/man/dmxtodmx.1 || die minstallexec hw/dmx/config/vdltodmx || die minstallman hw/dmx/config/man/vdltodmx.1 || die minstallexec hw/dmx/config/xdmxconfig || die minstallman hw/dmx/config/man/xdmxconfig.1 || die # needed directory mkeepdir /usr/share/X11/xkb/compiled || die } src_install_xvfb() { cd ${SRCDIR} minstallexec hw/vfb/Xvfb || die minstallman hw/vfb/man/Xvfb.1 || die # needed directory mkeepdir /usr/share/X11/xkb/compiled || die }