summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonnie Berkholz <dberkholz@gentoo.org>2006-12-20 17:58:45 +0000
committerDonnie Berkholz <dberkholz@gentoo.org>2006-12-20 17:58:45 +0000
commite143e9d2bb90d890c4b0665db46c6fc759976ec0 (patch)
treed9436226a2f519c9405f9ea4e60fe448aebfa532 /x11-base
parentMask x11-base/x11-drm-20060608-r1, which adds fbsd support. (diff)
downloadhistorical-e143e9d2bb90d890c4b0665db46c6fc759976ec0.tar.gz
historical-e143e9d2bb90d890c4b0665db46c6fc759976ec0.tar.bz2
historical-e143e9d2bb90d890c4b0665db46c6fc759976ec0.zip
(#148572) Add FreeBSD support. Significant refactoring to keep OS-specific stuff out of the main ebuild functions.
Package-Manager: portage-2.1.2_rc3-r4
Diffstat (limited to 'x11-base')
-rw-r--r--x11-base/x11-drm/ChangeLog9
-rw-r--r--x11-base/x11-drm/Manifest15
-rw-r--r--x11-base/x11-drm/files/digest-x11-drm-20060608-r16
-rw-r--r--x11-base/x11-drm/x11-drm-20060608-r1.ebuild357
4 files changed, 382 insertions, 5 deletions
diff --git a/x11-base/x11-drm/ChangeLog b/x11-base/x11-drm/ChangeLog
index 6bf64561bd8a..70574841c4d2 100644
--- a/x11-base/x11-drm/ChangeLog
+++ b/x11-base/x11-drm/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for x11-base/x11-drm
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/ChangeLog,v 1.43 2006/11/25 18:06:47 kloeri Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/ChangeLog,v 1.44 2006/12/20 17:58:45 dberkholz Exp $
+
+*x11-drm-20060608-r1 (20 Dec 2006)
+
+ 20 Dec 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +x11-drm-20060608-r1.ebuild:
+ (#148572) Add FreeBSD support. Significant refactoring to keep OS-specific
+ stuff out of the main ebuild functions.
25 Nov 2006; Bryan Østergaard <kloeri@gentoo.org>
x11-drm-20060608.ebuild:
diff --git a/x11-base/x11-drm/Manifest b/x11-base/x11-drm/Manifest
index d517c49c65db..34c2efcdd021 100644
--- a/x11-base/x11-drm/Manifest
+++ b/x11-base/x11-drm/Manifest
@@ -32,6 +32,10 @@ EBUILD x11-drm-20051223.ebuild 6384 RMD160 e28ebee2ce1caf5c90dc2e944a04911ba2c02
MD5 95c3e96dee51eaca5684499b709a2b9b x11-drm-20051223.ebuild 6384
RMD160 e28ebee2ce1caf5c90dc2e944a04911ba2c02089 x11-drm-20051223.ebuild 6384
SHA256 1b38d0282cab1bfbbeb36bade40ea03a3604e8d50121aef958611afcadc464ac x11-drm-20051223.ebuild 6384
+EBUILD x11-drm-20060608-r1.ebuild 8632 RMD160 9c0c9d7f7cba95b46a7f8a63bb2203b20de6a3ae SHA1 cc75e1ce18b1057767db535841bc4e2a55efa138 SHA256 ac9b310cc3f4374562117c6eb5e085d41fb30ffc9e6dea78ef8b521b397f44e8
+MD5 4f38d936e97ff981a6e885f35043fb58 x11-drm-20060608-r1.ebuild 8632
+RMD160 9c0c9d7f7cba95b46a7f8a63bb2203b20de6a3ae x11-drm-20060608-r1.ebuild 8632
+SHA256 ac9b310cc3f4374562117c6eb5e085d41fb30ffc9e6dea78ef8b521b397f44e8 x11-drm-20060608-r1.ebuild 8632
EBUILD x11-drm-20060608.ebuild 6376 RMD160 344926ccafbeb9dcc255104cab6569c6703f6f96 SHA1 61de65fc208106a93a7810ce0df0e164a35a128f SHA256 4cdc79e123eb0c04c892e289470236f98e15823cd5729767c0c776ef7f6d1d71
MD5 f7f8ce4209fcee05755190b5df140954 x11-drm-20060608.ebuild 6376
RMD160 344926ccafbeb9dcc255104cab6569c6703f6f96 x11-drm-20060608.ebuild 6376
@@ -40,10 +44,10 @@ EBUILD x11-drm-4.3.0-r7.ebuild 6983 RMD160 34eabe5596ed5609ef978dadc850431b61b3c
MD5 7a519793ef2ad0ff85a9f90d59bb2ab9 x11-drm-4.3.0-r7.ebuild 6983
RMD160 34eabe5596ed5609ef978dadc850431b61b3c6c8 x11-drm-4.3.0-r7.ebuild 6983
SHA256 049580786153610b31973b4e041656da1189ebedbdee5cd2ae3f728b32be0fac x11-drm-4.3.0-r7.ebuild 6983
-MISC ChangeLog 21395 RMD160 167b354bb75141dd7b8be0f60fd4ec052ce2da76 SHA1 c61802a846a8f55f6bbae595138bd31721c5105d SHA256 817b26d4fa00b614069b4eeebfc1f7cee1b35497c510a843176d823e33d084f3
-MD5 1492d6a85ecba4edbb711342a2e77ad8 ChangeLog 21395
-RMD160 167b354bb75141dd7b8be0f60fd4ec052ce2da76 ChangeLog 21395
-SHA256 817b26d4fa00b614069b4eeebfc1f7cee1b35497c510a843176d823e33d084f3 ChangeLog 21395
+MISC ChangeLog 21640 RMD160 2533791bdd064c3c95fcc249ba721c4f9c619c07 SHA1 31ce060b652291a9384df84446f624d46b21b0f3 SHA256 d4f6fed4b10d6ceabd6d5d78bed65b83b8bf8d069f1a08dcde4a7bd1279212d9
+MD5 eedeaa476279b6d9c5680701a0e672d4 ChangeLog 21640
+RMD160 2533791bdd064c3c95fcc249ba721c4f9c619c07 ChangeLog 21640
+SHA256 d4f6fed4b10d6ceabd6d5d78bed65b83b8bf8d069f1a08dcde4a7bd1279212d9 ChangeLog 21640
MISC metadata.xml 368 RMD160 cbe279aeafeae0af3633fbd1ecaa59d2f54579b8 SHA1 5104adf2f1ebe1ddffe4ca95e7b5e5f06267f842 SHA256 e73a5c428f39881de8ae5acf40958e8ad37a5fe92c2bb8cc4060704c9be45ef1
MD5 782be9470cf76716a15aa5a70f4b8af7 metadata.xml 368
RMD160 cbe279aeafeae0af3633fbd1ecaa59d2f54579b8 metadata.xml 368
@@ -63,6 +67,9 @@ SHA256 484c497bc5fe0de82872d1159be883711a93d74dcb29ad26a8d1d103c8eb35c2 files/di
MD5 25e0af623be815585fdd845044e4e48e files/digest-x11-drm-20060608 578
RMD160 8d8f952ce15390917b686efec62fbf4deba18712 files/digest-x11-drm-20060608 578
SHA256 b0e147eed5017b8305847803abc08a8a82c25531edf27f4ef0005b32989fa121 files/digest-x11-drm-20060608 578
+MD5 25e0af623be815585fdd845044e4e48e files/digest-x11-drm-20060608-r1 578
+RMD160 8d8f952ce15390917b686efec62fbf4deba18712 files/digest-x11-drm-20060608-r1 578
+SHA256 b0e147eed5017b8305847803abc08a8a82c25531edf27f4ef0005b32989fa121 files/digest-x11-drm-20060608-r1 578
MD5 db87006ec48bc9579dcdc989c5ed86d6 files/digest-x11-drm-4.3.0-r7 363
RMD160 fb090eee55f87cb2a83cded1fdcd42c82d7f040d files/digest-x11-drm-4.3.0-r7 363
SHA256 e25f7f22669877ab1a0b524b42acf09b30a2f4bdb61ca152d6c0e3736c190bbb files/digest-x11-drm-4.3.0-r7 363
diff --git a/x11-base/x11-drm/files/digest-x11-drm-20060608-r1 b/x11-base/x11-drm/files/digest-x11-drm-20060608-r1
new file mode 100644
index 000000000000..8199c7931566
--- /dev/null
+++ b/x11-base/x11-drm/files/digest-x11-drm-20060608-r1
@@ -0,0 +1,6 @@
+MD5 b43b229f76a38ae31fd35c69733d00cb linux-drm-20060608-kernelsource.tar.bz2 568004
+RMD160 253608313539a651ad6724bcb67b5f4ab28eaf4f linux-drm-20060608-kernelsource.tar.bz2 568004
+SHA256 5f2346f3eba114c4d5655325f3fd51e0b74f6f627bf0c4e435103c8972f52731 linux-drm-20060608-kernelsource.tar.bz2 568004
+MD5 831398aec823d8c2a97738a09cafbda9 x11-drm-20060608-gentoo-0.2.tar.bz2 2355
+RMD160 ac7f0ffa100de58c140da02a23a69040af1f67bb x11-drm-20060608-gentoo-0.2.tar.bz2 2355
+SHA256 4539c6a855b0f3db7b57196c4dbf67f22a5ebc0d2050a5dc2fa715f8d2945136 x11-drm-20060608-gentoo-0.2.tar.bz2 2355
diff --git a/x11-base/x11-drm/x11-drm-20060608-r1.ebuild b/x11-base/x11-drm/x11-drm-20060608-r1.ebuild
new file mode 100644
index 000000000000..a078e04026c2
--- /dev/null
+++ b/x11-base/x11-drm/x11-drm-20060608-r1.ebuild
@@ -0,0 +1,357 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20060608-r1.ebuild,v 1.1 2006/12/20 17:58:45 dberkholz Exp $
+
+inherit eutils x11 linux-mod
+
+IUSE_VIDEO_CARDS="
+ video_cards_i810
+ video_cards_mach64
+ video_cards_mga
+ video_cards_nv
+ video_cards_r128
+ video_cards_radeon
+ video_cards_savage
+ video_cards_sis
+ video_cards_sunffb
+ video_cards_tdfx
+ video_cards_via"
+IUSE="${IUSE_VIDEO_CARDS} kernel_FreeBSD kernel_linux"
+
+# Make sure Portage does _NOT_ strip symbols. We will do it later and make sure
+# that only we only strip stuff that are safe to strip ...
+RESTRICT="nostrip"
+
+S="${WORKDIR}/drm"
+PATCHVER="0.2"
+PATCHDIR="${WORKDIR}/patch"
+EXCLUDED="${WORKDIR}/excluded"
+
+DESCRIPTION="DRM Kernel Modules for X11"
+HOMEPAGE="http://dri.sf.net"
+SRC_URI="mirror://gentoo/${P}-gentoo-${PATCHVER}.tar.bz2
+ mirror://gentoo/linux-drm-${PV}-kernelsource.tar.bz2"
+
+SLOT="0"
+LICENSE="X11"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86 ~x86-fbsd"
+
+DEPEND=">=sys-devel/automake-1.7
+ >=sys-devel/autoconf-2.59
+ >=sys-devel/libtool-1.5.14
+ >=sys-devel/m4-1.4
+ kernel_linux? ( virtual/linux-sources )
+ kernel_FreeBSD? ( sys-freebsd/freebsd-sources
+ sys-freebsd/freebsd-mk-defs )
+ >=sys-apps/portage-2.0.49-r13"
+
+pkg_setup() {
+ # Setup the kernel's stuff.
+ kernel_setup
+
+ # Set video cards to build for.
+ set_vidcards
+
+ # DRM CVS is undergoing changes which require splitting source to support both 2.4
+ # and 2.6 kernels. This determines which to use.
+ get_drm_build_dir
+
+ return 0
+}
+
+src_unpack() {
+ unpack linux-drm-${PV}-kernelsource.tar.bz2
+ unpack ${P}-gentoo-${PATCHVER}.tar.bz2
+
+ cd ${S}
+
+ patch_prepare
+
+ # Apply patches
+ EPATCH_SUFFIX="patch" epatch ${PATCHDIR}
+
+ # Substitute new directory under /lib/modules/${KV_FULL}
+ cd ${SRC_BUILD}
+ sed -ie "s:/kernel/drivers/char/drm:/${PN}:g" Makefile
+
+ cp ${S}/tests/*.c ${SRC_BUILD}
+
+ src_unpack_os
+
+ cd ${S}
+ WANT_AUTOCONF="2.5" WANT_AUTOMAKE="1.7" autoreconf -v --install
+}
+
+src_compile() {
+ cd ${S}
+ # Building the programs. These are useful for developers and getting info from DRI and DRM.
+ #
+ # libdrm objects are needed for drmstat.
+ econf || die "libdrm configure failed."
+ emake || die "libdrm build failed."
+
+ einfo "Building DRM in ${SRC_BUILD}..."
+ src_compile_os
+ einfo "DRM build finished".
+}
+
+src_install() {
+ einfo "Installing DRM..."
+ cd ${SRC_BUILD}
+
+ src_install_os
+
+ dodoc "${S}/linux-core/README.drm"
+
+ dobin dristat
+ dobin drmstat
+}
+
+pkg_postinst() {
+ if use video_cards_sis
+ then
+ einfo "SiS direct rendering only works on 300 series chipsets."
+ einfo "SiS framebuffer also needs to be enabled in the kernel."
+ fi
+
+ if use video_cards_mach64
+ then
+ einfo "The Mach64 DRI driver is insecure."
+ einfo "Malicious clients can write to system memory."
+ einfo "For more information, see:"
+ einfo "http://dri.freedesktop.org/wiki/ATIMach64."
+ fi
+
+ pkg_postinst_os
+}
+
+# Functions used above are defined below:
+
+kernel_setup() {
+ if use kernel_FreeBSD
+ then
+ K_RV=${CHOST/*-freebsd/}
+ elif use kernel_linux
+ then
+ get_version
+
+ if kernel_is 2 6
+ then
+ if linux_chkconfig_builtin "DRM"
+ then
+ die "Please disable or modularize DRM in the kernel config. (CONFIG_DRM = n or m)"
+ fi
+
+ if ! linux_chkconfig_present "AGP"
+ then
+ einfo "AGP support is not enabled in your kernel config. This may be needed for DRM to"
+ einfo "work, so you might want to double-check that setting. (CONFIG_AGP)"
+ echo
+ fi
+ elif kernel_is 2 4
+ then
+ if ! linux_chkconfig_present "DRM"
+ then
+ die "Please enable DRM support in your kernel configuration. (CONFIG_DRM = y or m)."
+ echo
+ fi
+ fi
+ fi
+}
+
+set_vidcards() {
+ use kernel_linux && set_kvobj
+ use kernel_FreeBSD && KV_OBJ="ko"
+
+ POSSIBLE_VIDCARDS="mga tdfx r128 radeon i810 i830 i915 mach64 nv savage
+ sis via"
+ if use sparc; then
+ POSSIBLE_VIDCARDS="${POSSIBLE_VIDCARDS} ffb"
+ fi
+ VIDCARDS=""
+
+ if [[ -n "${VIDEO_CARDS}" ]]; then
+ use video_cards_i810 && \
+ VIDCARDS="${VIDCARDS} i810.${KV_OBJ} i830.${KV_OBJ} i915.${KV_OBJ}"
+ use video_cards_mach64 && \
+ VIDCARDS="${VIDCARDS} mach64.${KV_OBJ}"
+ use video_cards_mga && \
+ VIDCARDS="${VIDCARDS} mga.${KV_OBJ}"
+ use video_cards_nv && \
+ VIDCARDS="${VIDCARDS} nv.${KV_OBJ}"
+ use video_cards_r128 && \
+ VIDCARDS="${VIDCARDS} r128.${KV_OBJ}"
+ use video_cards_radeon && \
+ VIDCARDS="${VIDCARDS} radeon.${KV_OBJ}"
+ use video_cards_savage && \
+ VIDCARDS="${VIDCARDS} savage.${KV_OBJ}"
+ use video_cards_sis && \
+ VIDCARDS="${VIDCARDS} sis.${KV_OBJ}"
+ use video_cards_via && \
+ VIDCARDS="${VIDCARDS} via.${KV_OBJ}"
+ use video_cards_sunffb && \
+ VIDCARDS="${VIDCARDS} ffb.${KV_OBJ}"
+ use video_cards_tdfx && \
+ VIDCARDS="${VIDCARDS} tdfx.${KV_OBJ}"
+ else
+ for card in ${POSSIBLE_VIDCARDS}; do
+ VIDCARDS="${VIDCARDS} ${card}.${KV_OBJ}"
+ done
+ fi
+}
+
+get_drm_build_dir() {
+ if use kernel_FreeBSD
+ then
+ SRC_BUILD="${S}/bsd-core"
+ elif kernel_is 2 4
+ then
+ SRC_BUILD="${S}/linux"
+ elif kernel_is 2 6
+ then
+ SRC_BUILD="${S}/linux-core"
+ fi
+}
+
+patch_prepare() {
+ # Handle exclusions based on the following...
+ # All trees (0**), Standard only (1**), Others (none right now)
+ # 2.4 vs. 2.6 kernels
+ if use kernel_linux
+ then
+ kernel_is 2 4 && mv -f ${PATCHDIR}/*kernel-2.6* ${EXCLUDED}
+ kernel_is 2 6 && mv -f ${PATCHDIR}/*kernel-2.4* ${EXCLUDED}
+ fi
+
+ # There is only one tree being maintained now. No numeric exclusions need
+ # to be done based on DRM tree.
+}
+
+src_unpack_freebsd() {
+ # Do FreeBSD stuff.
+ if use kernel_FreeBSD
+ then
+ # Link in freebsd kernel.
+ ln -s "/usr/src/sys-${K_RV}" "${WORKDIR}/sys"
+ # SUBDIR variable gets to all Makefiles, we need it only in the main one.
+ SUBDIRS=${VIDCARDS//.ko}
+ sed -ie "s:SUBDIR\ =.*:SUBDIR\ =\ drm ${SUBDIRS}:" ${SRC_BUILD}/Makefile
+ fi
+}
+
+src_unpack_os() {
+ if use kernel_FreeBSD
+ then
+ src_unpack_freebsd
+ fi
+}
+
+src_compile_os() {
+ if use kernel_linux
+ then
+ src_compile_linux
+ elif use kernel_FreeBSD
+ then
+ src_compile_freebsd
+ fi
+}
+
+src_install_os() {
+ if use kernel_linux
+ then
+ src_install_linux
+ elif use kernel_FreeBSD
+ then
+ src_install_freebsd
+ fi
+}
+
+src_compile_linux() {
+ # This now uses an M= build system. Makefile does most of the work.
+ cd ${SRC_BUILD}
+ unset ARCH
+ emake M="${SRC_BUILD}" \
+ LINUXDIR="${KERNEL_DIR}" \
+ DRM_MODULES="${VIDCARDS}" \
+ modules || die_error
+
+ if linux_chkconfig_present DRM
+ then
+ echo "Please disable in-kernel DRM support to use this package."
+ fi
+
+ # LINUXDIR is needed to allow Makefiles to find kernel release.
+ cd ${SRC_BUILD}
+ emake LINUXDIR="${KERNEL_DIR}" dristat || die "Building dristat failed."
+ emake LINUXDIR="${KERNEL_DIR}" drmstat || die "Building drmstat failed."
+}
+
+src_compile_freebsd() {
+ cd ${SRC_BUILD}
+ # Environment CFLAGS overwrite kernel CFLAGS which is bad.
+ local svcflags=${CFLAGS}; local svldflags=${LDFLAGS}
+ unset CFLAGS; unset LDFLAGS
+ MAKE=make \
+ emake \
+ NO_WERROR= \
+ SYSDIR="${WORKDIR}/sys" \
+ KMODDIR="/boot/modules" \
+ || die "pmake failed."
+ export CFLAGS=${svcflags}; export LDFLAGS=${svldflags}
+
+ cd "${S}/tests"
+ # -D_POSIX_SOURCE skips the definition of several stuff we need
+ # for these two to compile
+ sed -i -e "s/-D_POSIX_SOURCE//" Makefile
+ emake dristat || die "Building dristat failed."
+ emake drmstat || die "Building drmstat failed."
+ # Move these where the linux stuff expects them
+ mv dristat drmstat ${SRC_BUILD}
+}
+
+die_error() {
+ eerror "Portage could not build the DRM modules. If you see an ACCESS DENIED error,"
+ eerror "this could mean that you were using an unsupported kernel build system. All"
+ eerror "2.4 kernels are supported, but only 2.6 kernels at least as new as 2.6.6"
+ eerror "are supported."
+ die "Unable to build DRM modules."
+}
+
+src_install_linux() {
+ cd ${SRC_BUILD}
+ unset ARCH
+ kernel_is 2 6 && DRM_KMOD="drm.${KV_OBJ}"
+ emake KV="${KV_FULL}" \
+ LINUXDIR="${KERNEL_DIR}" \
+ DESTDIR="${D}" \
+ RUNNING_REL="${KV_FULL}" \
+ MODULE_LIST="${VIDCARDS} ${DRM_KMOD}" \
+ install || die "Install failed."
+
+ # Strip binaries, leaving /lib/modules untouched (bug #24415)
+ strip_bins \/lib\/modules
+
+ # Yoinked from the sys-apps/touchpad ebuild. Thanks to whoever made this.
+ keepdir /etc/modules.d
+ sed 's:%PN%:'${PN}':g' ${FILESDIR}/modules.d-${PN} > ${D}/etc/modules.d/${PN}
+ sed -i 's:%KV%:'${KV_FULL}':g' ${D}/etc/modules.d/${PN}
+}
+
+src_install_freebsd() {
+ cd ${SRC_BUILD}
+ dodir "/boot/modules"
+ MAKE=make \
+ emake \
+ install \
+ NO_WERROR= \
+ DESTDIR="${D}" \
+ KMODDIR="/boot/modules" \
+ || die "Install failed."
+}
+
+pkg_postinst_os() {
+ if use kernel_linux
+ then
+ linux-mod_pkg_postinst
+ fi
+}