From b0b8d8278d12eb02837e3ec514417d9876101545 Mon Sep 17 00:00:00 2001 From: Zero_Chaos Date: Wed, 26 May 2010 21:15:53 +0000 Subject: [PATCH] net-wireless/compat-wireless: updates for safety and override for checking kernel version --- net-wireless/compat-wireless/Manifest | 1 + .../compat-wireless-2.6.34-r1.ebuild | 101 ++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 net-wireless/compat-wireless/compat-wireless-2.6.34-r1.ebuild diff --git a/net-wireless/compat-wireless/Manifest b/net-wireless/compat-wireless/Manifest index 949991a5b..c1c5de7d4 100644 --- a/net-wireless/compat-wireless/Manifest +++ b/net-wireless/compat-wireless/Manifest @@ -46,6 +46,7 @@ EBUILD compat-wireless-2.6.33_rc1.ebuild 2111 RMD160 4bc302aa5dd8f351d1707189343 EBUILD compat-wireless-2.6.33_rc4.ebuild 2284 RMD160 070ba0026527149e922c324c7bf646d222c88b7d SHA1 ff04bea64a42dbc02215552face3e828e620b6bd SHA256 e45e956ff732cb2e3d5ee68b09c637de7d9d79e32c653e3f2cd7139778758433 EBUILD compat-wireless-2.6.33_rc5.ebuild 2336 RMD160 e46d00fb197714883916c613c2a495e979c31865 SHA1 b24a5ae630ecd556f27d6535d3e19b287e17ea16 SHA256 752f60134a4d851e23a0f4c87e78a89de31850fef6d0cc78ace9674678fb9193 EBUILD compat-wireless-2.6.33_rc8.ebuild 2370 RMD160 62b59c4f6da20f3aa0928d84a3910b1cbf8b7b61 SHA1 b2f0776f94ba2602182577f1af49e93ad6e882a7 SHA256 2fd3d05ac7616935ce3c43d116010f565c50b0c1a09a58371d3a1beb6d06b225 +EBUILD compat-wireless-2.6.34-r1.ebuild 3683 RMD160 37c6c35a4a6ae2bc4c011cbca1890049294721d2 SHA1 7257a38fb0d076b5248af6f301572efc4f74b086 SHA256 379342bd73f5d8a3f0e966d4606fb755709460d7cc0a8d598f8cb0599ec3ad3a EBUILD compat-wireless-2.6.34.ebuild 2793 RMD160 d68f2fc3a55d4929e3902f36fb4261d4ac987972 SHA1 5f7d95f00c9497b296e5f43e79fe006ca846d5d7 SHA256 9f16bc96c70b7e8a7e3284a83b58d86f41eb7dfef5e3c415c2f93b8f9a1eed85 EBUILD compat-wireless-2.6.34_rc4.ebuild 2793 RMD160 d68f2fc3a55d4929e3902f36fb4261d4ac987972 SHA1 5f7d95f00c9497b296e5f43e79fe006ca846d5d7 SHA256 9f16bc96c70b7e8a7e3284a83b58d86f41eb7dfef5e3c415c2f93b8f9a1eed85 MISC metadata.xml 228 RMD160 cd3fb26b5d8049ab5dba38f21d7654ec033aa0eb SHA1 3148dfbdced7a623a311d21c6f728ab9c7135dae SHA256 8715828d1bff71d5d96b991ba600bae9376c1c80c96f0f102260fc335ca22487 diff --git a/net-wireless/compat-wireless/compat-wireless-2.6.34-r1.ebuild b/net-wireless/compat-wireless/compat-wireless-2.6.34-r1.ebuild new file mode 100644 index 000000000..d402eb79a --- /dev/null +++ b/net-wireless/compat-wireless/compat-wireless-2.6.34-r1.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" +inherit linux-mod linux-info versionator + +##Stable +MY_P=${P/_rc/-rc} +MY_PV=v$(get_version_component_range 1-3) +DESCRIPTION="Stable kernel pre-release wifi subsystem backport" +HOMEPAGE="http://wireless.kernel.org/en/users/Download/stable" +SRC_URI="http://www.orbit-lab.org/kernel/${PN}-2.6-stable/${MY_PV}/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="injection tinyversionoverride" + +DEPEND="" +RDEPEND="=sys-kernel/linux-firmware-99999999" + +S=${WORKDIR}/${MY_P} +RESTRICT="strip" + +CONFIG_CHECK="!DYNAMIC_FTRACE" + +pkg_setup() { + linux-mod_pkg_setup + kernel_is -lt 2 6 27 && die "kernel 2.6.27 or higher is required for compat wireless to be installed" + kernel_is -gt $(get_version_component_range 1) $(get_version_component_range 2) $(get_version_component_range 3) && die "The version of compat-wireless you are trying to install contains older modules than your kernel. Failing before downgrading your system." + if use tinyversionoverride; then + if kernel_is -eq $(get_version_component_range 1) $(get_version_component_range 2) $(get_version_component_range 3); then + ewarn "You have the tinyversionoverride use flag set which means you know for a fact that your" + ewarn "kernel is older than the compat-wireless you are installing." + ewarn "Most likely you have no clue what you are doing and should hit control-C now" + ewarn "before you downgrade your system. Ten seconds to think about it." + epause 10 + else + ewarn "You have tinyversionoverride enabled and you don't appear to need it. It is strongly suggested to" + ewarn "set this use flag only if you are certain you need it or else you are likely to downgrade your system." + epause 5 + die "Remove the uneeded use flag and be more careful next time before you downgrade your system." + fi + fi + linux_chkconfig_module MAC80211 || die "CONFIG_MAC80211 must be built as a _module_ !" + linux_chkconfig_module CFG80211 || die "CONFIG_CFG80211 must be built as a _module_ !" +} + +src_prepare() { + #whynot patch is against the makefile to fix general brokeness + epatch "${FILESDIR}"/whynot-2.6.32.patch + + if use injection; then + epatch "${FILESDIR}"/400[24]_*.patch + epatch "${FILESDIR}"/mac80211.compat08082009.wl_frag+ack_v1.patch + epatch "${FILESDIR}"/4013-runtime-enable-disable-of-mac80211-packet-injection.patch + epatch "${FILESDIR}"/compat-chaos.patch + epatch "${FILESDIR}"/rtl8187-mac80211-injection-speed-2.6.30-rc3.patch + epatch "${FILESDIR}"/super_secret_patch.diff + fi +} + +src_compile() { + addpredict "${KERNEL_DIR}" + set_arch_to_kernel + emake KVER="${KV_FULL}" || die "emake failed" +} + +src_install() { + for file in $(find -name \*.ko); do + insinto "/lib/modules/${KV_FULL}/updates/$(dirname ${file})" + doins "${file}" || die "failed to install module ${file}" + done + dosbin scripts/athenable scripts/b43load scripts/iwl-enable \ + scripts/madwifi-unload scripts/athload scripts/iwl-load \ + scripts/b43enable scripts/load.sh \ + scripts/unload.sh || die "script installation failed" + + dodir /usr/lib/compat-wireless + exeinto /usr/lib/compat-wireless + doexe scripts/modlib.sh || die + + dodoc README || die + dodir /$(get_libdir)/udev/rules.d/ + insinto /$(get_libdir)/udev/rules.d/ + doins udev/50-compat_firmware.rules + exeinto /$(get_libdir)/udev/ + doexe udev/compat_firmware.sh +} + +pkg_postinst() { + update_depmod + update_moduledb + einfo 'You may have problem if you do not run "depmod -ae" after this installation' + einfo 'To switch to the new drivers without reboot run unload.sh then load.sh' +} + +pkg_postrm() { + remove_moduledb +}