compat-wireless: these versions do not work on hardened, however, other people may want them

This commit is contained in:
Zero_Chaos 2011-12-20 04:29:55 +00:00
parent 1718297ca6
commit ce881f5228
4 changed files with 536 additions and 0 deletions

View file

@ -28,6 +28,8 @@ AUX force-enable-new-ralink-pci.patch 371 RMD160 33206cfd78ff0c1e2694c7236915f4d
AUX force-enable-new-ralink.patch 558 RMD160 4cc8c5d09d49fcc831b4895d05ec6a14d5e16e22 SHA1 d3cc6b53ac5ef6644702d0ae227ac67a4832d075 SHA256 b6a411562c8c0964d36817f4d276a8db2c3169d6044b648650eb8b742c2dc898
AUX ipw2200-inject.2.6.36.patch 4139 RMD160 caac7cdd786c6779d136be13181cab0b845f392d SHA1 0cccb21cb5794c74e48d3354ca41eb2b8ae6dce6 SHA256 a23d46ba2183eca15b2afc9f88b1570589f51d67488cea5f514d534e218d6570
AUX iwlwifi-5000-exp-firmware.patch 475 RMD160 939e0bdc5245cbe9a126bdda00024b507286fcc1 SHA1 61fa5d19079bac708ac29efc1ede9420ec6b651b SHA256 7e486f5d28cfaa50a98d486f6456c11bebae25f9dd7fd4b09fc8e9b12517efff
AUX johill-negone-paul.patch 2987 RMD160 e5251606a8cfbbc639f71a20ea5ded98360f9804 SHA1 90283aaa5e7b99845dc694940ed70fecebb3b123 SHA256 0bcc6aaf343f3faaad09da3abdbf4308985dfc084c4213d8acc32dd1c52aab29
AUX johill-negone.patch 2972 RMD160 3b9055db9632483c2a6b940210718d6442e86dc9 SHA1 6af2da5949f6e425dd62f7a36019cdfaebff69fd SHA256 8acad1b386c6c849938a62a4d0216f8960f932ed3298a0f33739be39dce9fdc5
AUX led-oops.patch 733 RMD160 50dc59a8893e7d77cf41653d8d39e5255dae8273 SHA1 9875b139e4111eb137cd1b43e3b68c85eb8915f5 SHA256 381f52b08f1b4c268fcc4ad88b0059d27b438bdab6acd4d54c882cc2505c99b9
AUX leds-disable-strict.patch 1614 RMD160 9b256283c9e278426d218a99d59ec4d7c68fa426 SHA1 865a1d0221da08ae80dd014247292558a98a392e SHA256 58170c088e6d4d78be497d3efe808252df75d660b4ae1fa370d3bbd9ee6299f2
AUX leds-disable.patch 1232 RMD160 5d82d47828e01462312ba3dd9cdc71564dc05f9a SHA1 1ca99516a1a6d92c7c45de6e5c5afefdacaa8c27 SHA256 55080ec9838b3eac1c06bb0b360374fa8170266ba0d85ceb1a88c7caef97ace0
@ -54,6 +56,9 @@ DIST compat-wireless-2.6.39-1-sn.tar.bz2 4333239 RMD160 ce7cd4b6e5ae5437a77b3a54
DIST compat-wireless-3.0-2.tar.bz2 4238914 RMD160 c6a4f51680c0f6f5095a254fc91175fe69b9243c SHA1 b02a1c528bea3ec175924bc08404f724dd47a104 SHA256 492f9b5232cd061ca96c26718f5e4a98b9311f8f551713727fdd4fc0b57af79d
DIST compat-wireless-3.1-rc1-1.tar.bz2 4288331 RMD160 d6f28ecf99c47d9ae546e5ed1a1cc599aa213117 SHA1 1231c62447deff976609ee150ffda610c718738e SHA256 70670c4285c1e10314a9e956154a4976d9d60255ac64af4f02224e6e66581638
DIST compat-wireless-3.1-rc8-1.tar.bz2 4288800 RMD160 0d71078439b1e2b626fe82d6a0917a4288bec454 SHA1 db33de991c9764185707591da881963e041de9c8 SHA256 961f60dc4c618188be847338e30f4da3a06ae11145c9b9d52f8c034627c528d7
DIST compat-wireless-3.1.1-1.tar.bz2 4289900 RMD160 06db4f3c4eac87f23371b4cf50b51f7cd35aca6a SHA1 d0bb37b9643e21873a0edbe3f8a99f48a826c6e8 SHA256 3ce364fe5acddd6fb7ebf0b74358fc489487384ad34d5247c60b073745075d02
DIST compat-wireless-3.2-rc1-1.tar.bz2 4099272 RMD160 7c2ff56ee7679eb444e5d0b378fb62d4502c9bda SHA1 48089e935687e37c54f5f8dc073e42e7d3e79c8c SHA256 f906be3f4dabcdf14a6cccda3843142e2a778964ee61fa69969474df9a0d3578
DIST compat-wireless-3.2-rc6-3-s.tar.bz2 4106057 RMD160 1350f1541a6b45c70fd43275f779380fbd320176 SHA1 2e38d6cef35e3aea886e5615f902057d697f5c11 SHA256 6ad7c15147bcbe6be998dbfb1bbdb008124b2f70348bd3e4de6db68e94069511
EBUILD compat-wireless-2.6.32.8.ebuild 2368 RMD160 53d1a1401310d34cd03f2fa6bb41e60d2a16dcfd SHA1 c19445050e394bc0239c61fec11eab69e4f08daa SHA256 705bb5ad89ec2433edd4252488b3e7322c5137c49520203a3cbea44314ab9234
EBUILD compat-wireless-2.6.33-r1.ebuild 2747 RMD160 c120f1c92a7205097839c5dc42235bfd10cbf555 SHA1 2144302eab89dd5881eecf3725124d6c5b288f3f SHA256 0d425eec9472ed83cd1a29945ead1116612c938248c430653510011d56307a6b
EBUILD compat-wireless-2.6.34-r2.ebuild 3918 RMD160 48f91620cf68a993e63d3c9dfe565850650e6fc5 SHA1 44e4bec8543c93e456d3a2ac3e4ab1c7b55a8f01 SHA256 a729ecc6955dac802ed9b1585f23a48c54fdd45434d2673930322c792c77e159
@ -64,7 +69,10 @@ EBUILD compat-wireless-2.6.37-r8.ebuild 5665 RMD160 c4c93e64ff823ded6d960ac3fe13
EBUILD compat-wireless-2.6.38.2-r1.ebuild 5641 RMD160 2a7056e079083a3cfd5ce42b8b48b51ccdfd6430 SHA1 ea2b0a1d8ce9298ead5cdca1ec5c0b43140aed32 SHA256 e226115a59b6c8b91585231ca007d8929dc5f3e4ea7e1e4807c81a2e788869a1
EBUILD compat-wireless-2.6.39-r1.ebuild 5452 RMD160 400562e5a513c9686ea30773d689cebcf8c4c4ef SHA1 144b17dd5de5113db1b1c7cc2a5811f9461d086e SHA256 f93936fa1e85242c8380d6c0ae045b8e7d25930490fe5111f33e7736d9e26aea
EBUILD compat-wireless-3.0.ebuild 6461 RMD160 51e211bac46f5fedf4bf66d28fa84acf20793537 SHA1 6ff1ad045dd488334e2e84ddae5b4ceb67f2e71f SHA256 ed6bf245e9011e40296dac5f32f52f4166a9f684872509ef634f6aff78ba641e
EBUILD compat-wireless-3.1.1.ebuild 6626 RMD160 c021f18baff96b0f60dd8836e606ed64a9cb1c54 SHA1 d0bfc337b1851172cedc7d940f45641aa38022fd SHA256 1e63f09ad1a2576682aa0712fc1bac50f74cce73021de33390fa1fd1641dffd6
EBUILD compat-wireless-3.1_rc1.ebuild 6431 RMD160 2478b63967d464afd85a4a5533edfe559f201577 SHA1 78b55d36a489b17b02d42655a5ef9ceddaa52856 SHA256 6be43b005e638932e0943ba891a007d4aca9ff761a73c56834681d706faa77bb
EBUILD compat-wireless-3.1_rc8-r1.ebuild 6556 RMD160 5137035100fd89393d6587a2026b3effdacf02df SHA1 5819f9a304a57453c46b54b936ba0673189be1b2 SHA256 6a1baea642c2fa0662e4e5129e0d2b6f9cda5ec4e2f54ceee1aa48fecc281693
EBUILD compat-wireless-3.1_rc8.ebuild 6431 RMD160 2478b63967d464afd85a4a5533edfe559f201577 SHA1 78b55d36a489b17b02d42655a5ef9ceddaa52856 SHA256 6be43b005e638932e0943ba891a007d4aca9ff761a73c56834681d706faa77bb
EBUILD compat-wireless-3.2_rc1.ebuild 6614 RMD160 a407ae6e9d48e594b9b4c53fe5a80bdcd8ebb683 SHA1 12a233e46f56b1db0443978e539e3b5b10150d74 SHA256 7af445ff777b9be6ac7977e5776c5fb3c6a1f78cde27aabadc93e68c0592cc6d
EBUILD compat-wireless-3.2_rc6.ebuild 6616 RMD160 2943e07801425b8b39cb8f0ec819d2c586196cf8 SHA1 ab80fa153245b72d3937e75cd8b43dcfe5e00d01 SHA256 8469fa320af3f7257f508b1a4f2ff8d1b4aeeb55e5e7a37d261e17dd7a8a0d14
MISC metadata.xml 228 RMD160 cd3fb26b5d8049ab5dba38f21d7654ec033aa0eb SHA1 3148dfbdced7a623a311d21c6f728ab9c7135dae SHA256 8715828d1bff71d5d96b991ba600bae9376c1c80c96f0f102260fc335ca22487

View file

@ -0,0 +1,176 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="4"
inherit linux-mod linux-info versionator eutils
##Stable
MY_P=${P/_rc/-rc}
MY_PV=v$(get_version_component_range 1-2)
DESCRIPTION="Stable kernel pre-release wifi subsystem backport"
HOMEPAGE="http://wireless.kernel.org/en/users/Download/stable"
CRAZY_VERSIONING="1"
SRC_URI="http://www.orbit-lab.org/kernel/${PN}-3.0-stable/${MY_PV}/${MY_P}-${CRAZY_VERSIONING}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~arm amd64 x86"
IUSE="atheros_obey_crda bluetooth b43 b44 debugfs debug-driver full-debug injection livecd loadmodules noleds tinyversionoverride"
DEPEND=""
RDEPEND="livecd? ( =sys-kernel/linux-firmware-99999999 )
!livecd? ( >=sys-kernel/linux-firmware-20110709 )
sys-fs/udev"
S="${WORKDIR}"/"${MY_P}"-${CRAZY_VERSIONING}
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) && die "The version of compat-wireless you are trying to install contains older modules than your kernel. Failing before downgrading your system."
if kernel_is -eq $(get_version_component_range 1) $(get_version_component_range 2) ; then
if use tinyversionoverride; 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."
else
ewarn "Your kernel version is most likely newer than the compat-wireless release you are"
ewarn "trying to install. If you are certain that your kernel is older then you can set"
ewarn "the tinyversionoverride use flag to override this safety check."
die "Your kernel version is too close to the compat-wireless version to risk installation."
fi
fi
#these things are not optional
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_ !"
if use b43; then
linux_chkconfig_module SSB || die "You need to enable CONFIG_SSB or USE=-b43"
fi
if use b44; then
linux_chkconfig_present SSB || die "You need to enable CONFIG_SSB or USE=-b44"
linux_chkconfig_present NET_ETHERNET || die "You need to enable CONFIG_NET_ETHERNET or USE=-b44"
fi
}
src_prepare() {
epatch "${FILESDIR}"/make-make.patch
#this patch fixes a trivial typo in the config.mk
epatch "${FILESDIR}"/fix-typos-2.6.36_rc5.patch
#this may or may not HELP the channel -1 issue. this is not a fix
#epatch "${FILESDIR}"/channel-negative-one-maxim.patch
#Linville finally stepped in and offered this patch so we are testing it
#epatch "${FILESDIR}"/linville-aircrack-ng.patch
#johill
epatch "${FILESDIR}"/johill-negone-paul.patch
#this patch ignores the regulatory settings of an atheros card and uses what CRDA thinks is right
if use atheros_obey_crda; then
ewarn "You have enabled atheros_obey_crda which doesn't do what you think."
ewarn "This use flag will cause the eeprom of the card to be ignored and force"
ewarn "world roaming on the device until crda provides a valid regdomain."
ewarn "Short version, this is not a way to break the law, this will automatically"
ewarn "make your card less functional unless you set a proper regdomain with iw/crda."
ewarn "Pausing for 10 secs..."
epatch "${FILESDIR}"/ath_regd_optional.patch
fi
if use injection; then
epatch "${FILESDIR}"/4002_mac80211-2.6.29-fix-tx-ctl-no-ack-retry-count.patch
epatch "${FILESDIR}"/4004_zd1211rw-2.6.28.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
epatch "${FILESDIR}"/ipw2200-inject.2.6.36.patch
fi
use noleds && epatch "${FILESDIR}"/leds-disable-strict.patch
use debug-driver && epatch "${FILESDIR}"/driver-debug.patch
use debugfs && sed -i '/DEBUGFS/s/^# *//' "${S}"/config.mk
if use full-debug; then
if use debug-driver ; then
sed -i '/CONFIG=/s/^# *//' "${S}"/config.mk
else
ewarn "Enabling full-debug includes debug-driver."
sed -i '/DEBUG=/s/^# *//' "${S}"/config.mk
fi
fi
# Disable B44 ethernet driver
if ! use b44; then
sed -i '/CONFIG_B44=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver"
sed -i '/CONFIG_B44_PCI=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver"
fi
# Disable B43 driver
if ! use b43; then
sed -i '/CONFIG_B43=/s/ */#/' "${S}"/config.mk || die "unable to disable B43 driver"
sed -i '/CONFIG_B43_PCI_AUTOSELECT=/s/ */#/' "${S}"/config.mk || die "unable to disable B43 driver"
#CONFIG_B43LEGACY=
fi
# fixme: there are more bluethooth settings in the config.mk
if ! use bluetooth; then
sed -i '/CONFIG_COMPAT_BLUETOOTH=/s/ */#/' "${S}"/config.mk || die "unable to disable bluetooth driver"
sed -i '/CONFIG_COMPAT_BLUETOOTH_MODULES=/s/ */#/' "${S}"/config.mk || die "unable to bluetooth B44 driver"
fi
}
src_compile() {
addpredict "${KERNEL_DIR}"
set_arch_to_kernel
emake KLIB_BUILD="${DESTDIR}"/lib/modules/"${KV_FULL}"/build || die "emake failed"
}
src_install() {
for file in $(find -name \*.ko); do
insinto "/lib/modules/${KV_FULL}/updates/$(dirname ${file})"
doins "${file}"
done
dosbin scripts/athenable scripts/b43load scripts/iwl-enable \
scripts/madwifi-unload scripts/athload scripts/iwl-load \
scripts/b43enable scripts/unload.sh
dodir /usr/lib/compat-wireless
exeinto /usr/lib/compat-wireless
doexe scripts/modlib.sh
dodoc README
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
if use !livecd; then
if use loadmodules; then
/usr/sbin/unload.sh
/sbin/udevadm trigger
einfo "Your new modules have been loaded for you, sorry for the network hiccup."
fi
fi
einfo "If you didn't USE=loadmodules you can still switch to the new drivers without reboot."
einfo "Run 'unload.sh' then 'udevadm trigger' to cause udev to load the needed drivers."
}
pkg_postrm() {
remove_moduledb
}

View file

@ -0,0 +1,176 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="4"
inherit linux-mod linux-info versionator eutils
##Stable
MY_P=${P/_rc/-rc}
MY_PV=v$(get_version_component_range 1-2)
DESCRIPTION="Stable kernel pre-release wifi subsystem backport"
HOMEPAGE="http://wireless.kernel.org/en/users/Download/stable"
CRAZY_VERSIONING="1"
SRC_URI="http://www.orbit-lab.org/kernel/${PN}-3.0-stable/${MY_PV}/${MY_P}-${CRAZY_VERSIONING}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~arm ~amd64 ~x86"
IUSE="atheros_obey_crda bluetooth b43 b44 debugfs debug-driver full-debug injection livecd loadmodules noleds tinyversionoverride"
DEPEND=""
RDEPEND="livecd? ( =sys-kernel/linux-firmware-99999999 )
!livecd? ( >=sys-kernel/linux-firmware-20110709 )
sys-fs/udev"
S="${WORKDIR}"/"${MY_P}"-${CRAZY_VERSIONING}
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) && die "The version of compat-wireless you are trying to install contains older modules than your kernel. Failing before downgrading your system."
if kernel_is -eq $(get_version_component_range 1) $(get_version_component_range 2) ; then
if use tinyversionoverride; 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."
else
ewarn "Your kernel version is most likely newer than the compat-wireless release you are"
ewarn "trying to install. If you are certain that your kernel is older then you can set"
ewarn "the tinyversionoverride use flag to override this safety check."
die "Your kernel version is too close to the compat-wireless version to risk installation."
fi
fi
#these things are not optional
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_ !"
if use b43; then
linux_chkconfig_module SSB || die "You need to enable CONFIG_SSB or USE=-b43"
fi
if use b44; then
linux_chkconfig_present SSB || die "You need to enable CONFIG_SSB or USE=-b44"
linux_chkconfig_present NET_ETHERNET || die "You need to enable CONFIG_NET_ETHERNET or USE=-b44"
fi
}
src_prepare() {
epatch "${FILESDIR}"/make-make.patch
#this patch fixes a trivial typo in the config.mk
epatch "${FILESDIR}"/fix-typos-2.6.36_rc5.patch
#this may or may not HELP the channel -1 issue. this is not a fix
#epatch "${FILESDIR}"/channel-negative-one-maxim.patch
#Linville finally stepped in and offered this patch so we are testing it
#epatch "${FILESDIR}"/linville-aircrack-ng.patch
#johill
epatch "${FILESDIR}"/johill-negone-paul.patch
#this patch ignores the regulatory settings of an atheros card and uses what CRDA thinks is right
if use atheros_obey_crda; then
ewarn "You have enabled atheros_obey_crda which doesn't do what you think."
ewarn "This use flag will cause the eeprom of the card to be ignored and force"
ewarn "world roaming on the device until crda provides a valid regdomain."
ewarn "Short version, this is not a way to break the law, this will automatically"
ewarn "make your card less functional unless you set a proper regdomain with iw/crda."
ewarn "Pausing for 10 secs..."
epatch "${FILESDIR}"/ath_regd_optional.patch
fi
if use injection; then
epatch "${FILESDIR}"/4002_mac80211-2.6.29-fix-tx-ctl-no-ack-retry-count.patch
epatch "${FILESDIR}"/4004_zd1211rw-2.6.28.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
epatch "${FILESDIR}"/ipw2200-inject.2.6.36.patch
fi
use noleds && epatch "${FILESDIR}"/leds-disable-strict.patch
use debug-driver && epatch "${FILESDIR}"/driver-debug.patch
use debugfs && sed -i '/DEBUGFS/s/^# *//' "${S}"/config.mk
if use full-debug; then
if use debug-driver ; then
sed -i '/CONFIG=/s/^# *//' "${S}"/config.mk
else
ewarn "Enabling full-debug includes debug-driver."
sed -i '/DEBUG=/s/^# *//' "${S}"/config.mk
fi
fi
# Disable B44 ethernet driver
if ! use b44; then
sed -i '/CONFIG_B44=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver"
sed -i '/CONFIG_B44_PCI=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver"
fi
# Disable B43 driver
if ! use b43; then
sed -i '/CONFIG_B43=/s/ */#/' "${S}"/config.mk || die "unable to disable B43 driver"
sed -i '/CONFIG_B43_PCI_AUTOSELECT=/s/ */#/' "${S}"/config.mk || die "unable to disable B43 driver"
#CONFIG_B43LEGACY=
fi
# fixme: there are more bluethooth settings in the config.mk
if ! use bluetooth; then
sed -i '/CONFIG_COMPAT_BLUETOOTH=/s/ */#/' "${S}"/config.mk || die "unable to disable bluetooth driver"
sed -i '/CONFIG_COMPAT_BLUETOOTH_MODULES=/s/ */#/' "${S}"/config.mk || die "unable to bluetooth B44 driver"
fi
}
src_compile() {
addpredict "${KERNEL_DIR}"
set_arch_to_kernel
emake KLIB_BUILD="${DESTDIR}"/lib/modules/"${KV_FULL}"/build || die "emake failed"
}
src_install() {
for file in $(find -name \*.ko); do
insinto "/lib/modules/${KV_FULL}/updates/$(dirname ${file})"
doins "${file}"
done
dosbin scripts/athenable scripts/b43load scripts/iwl-enable \
scripts/madwifi-unload scripts/athload scripts/iwl-load \
scripts/b43enable scripts/unload.sh
dodir /usr/lib/compat-wireless
exeinto /usr/lib/compat-wireless
doexe scripts/modlib.sh
dodoc README
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
if use !livecd; then
if use loadmodules; then
/usr/sbin/unload.sh
/sbin/udevadm trigger
einfo "Your new modules have been loaded for you, sorry for the network hiccup."
fi
fi
einfo "If you didn't USE=loadmodules you can still switch to the new drivers without reboot."
einfo "Run 'unload.sh' then 'udevadm trigger' to cause udev to load the needed drivers."
}
pkg_postrm() {
remove_moduledb
}

View file

@ -0,0 +1,176 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="4"
inherit linux-mod linux-info versionator eutils
##Stable
MY_P=${P/_rc/-rc}
MY_PV=v$(get_version_component_range 1-2)
DESCRIPTION="Stable kernel pre-release wifi subsystem backport"
HOMEPAGE="http://wireless.kernel.org/en/users/Download/stable"
CRAZY_VERSIONING="3-s"
SRC_URI="http://www.orbit-lab.org/kernel/${PN}-3.0-stable/${MY_PV}/${MY_P}-${CRAZY_VERSIONING}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~arm ~amd64 ~x86"
IUSE="atheros_obey_crda bluetooth b43 b44 debugfs debug-driver full-debug injection livecd loadmodules noleds tinyversionoverride"
DEPEND=""
RDEPEND="livecd? ( =sys-kernel/linux-firmware-99999999 )
!livecd? ( >=sys-kernel/linux-firmware-20110709 )
sys-fs/udev"
S="${WORKDIR}"/"${MY_P}"-${CRAZY_VERSIONING}
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) && die "The version of compat-wireless you are trying to install contains older modules than your kernel. Failing before downgrading your system."
if kernel_is -eq $(get_version_component_range 1) $(get_version_component_range 2) ; then
if use tinyversionoverride; 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."
else
ewarn "Your kernel version is most likely newer than the compat-wireless release you are"
ewarn "trying to install. If you are certain that your kernel is older then you can set"
ewarn "the tinyversionoverride use flag to override this safety check."
die "Your kernel version is too close to the compat-wireless version to risk installation."
fi
fi
#these things are not optional
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_ !"
if use b43; then
linux_chkconfig_module SSB || die "You need to enable CONFIG_SSB or USE=-b43"
fi
if use b44; then
linux_chkconfig_present SSB || die "You need to enable CONFIG_SSB or USE=-b44"
linux_chkconfig_present NET_ETHERNET || die "You need to enable CONFIG_NET_ETHERNET or USE=-b44"
fi
}
src_prepare() {
epatch "${FILESDIR}"/make-make.patch
#this patch fixes a trivial typo in the config.mk
epatch "${FILESDIR}"/fix-typos-2.6.36_rc5.patch
#this may or may not HELP the channel -1 issue. this is not a fix
#epatch "${FILESDIR}"/channel-negative-one-maxim.patch
#Linville finally stepped in and offered this patch so we are testing it
#epatch "${FILESDIR}"/linville-aircrack-ng.patch
#johill
epatch "${FILESDIR}"/johill-negone-paul.patch
#this patch ignores the regulatory settings of an atheros card and uses what CRDA thinks is right
if use atheros_obey_crda; then
ewarn "You have enabled atheros_obey_crda which doesn't do what you think."
ewarn "This use flag will cause the eeprom of the card to be ignored and force"
ewarn "world roaming on the device until crda provides a valid regdomain."
ewarn "Short version, this is not a way to break the law, this will automatically"
ewarn "make your card less functional unless you set a proper regdomain with iw/crda."
ewarn "Pausing for 10 secs..."
epatch "${FILESDIR}"/ath_regd_optional.patch
fi
if use injection; then
epatch "${FILESDIR}"/4002_mac80211-2.6.29-fix-tx-ctl-no-ack-retry-count.patch
epatch "${FILESDIR}"/4004_zd1211rw-2.6.28.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
epatch "${FILESDIR}"/ipw2200-inject.2.6.36.patch
fi
use noleds && epatch "${FILESDIR}"/leds-disable-strict.patch
use debug-driver && epatch "${FILESDIR}"/driver-debug.patch
use debugfs && sed -i '/DEBUGFS/s/^# *//' "${S}"/config.mk
if use full-debug; then
if use debug-driver ; then
sed -i '/CONFIG=/s/^# *//' "${S}"/config.mk
else
ewarn "Enabling full-debug includes debug-driver."
sed -i '/DEBUG=/s/^# *//' "${S}"/config.mk
fi
fi
# Disable B44 ethernet driver
if ! use b44; then
sed -i '/CONFIG_B44=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver"
sed -i '/CONFIG_B44_PCI=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver"
fi
# Disable B43 driver
if ! use b43; then
sed -i '/CONFIG_B43=/s/ */#/' "${S}"/config.mk || die "unable to disable B43 driver"
sed -i '/CONFIG_B43_PCI_AUTOSELECT=/s/ */#/' "${S}"/config.mk || die "unable to disable B43 driver"
#CONFIG_B43LEGACY=
fi
# fixme: there are more bluethooth settings in the config.mk
if ! use bluetooth; then
sed -i '/CONFIG_COMPAT_BLUETOOTH=/s/ */#/' "${S}"/config.mk || die "unable to disable bluetooth driver"
sed -i '/CONFIG_COMPAT_BLUETOOTH_MODULES=/s/ */#/' "${S}"/config.mk || die "unable to bluetooth B44 driver"
fi
}
src_compile() {
addpredict "${KERNEL_DIR}"
set_arch_to_kernel
emake KLIB_BUILD="${DESTDIR}"/lib/modules/"${KV_FULL}"/build || die "emake failed"
}
src_install() {
for file in $(find -name \*.ko); do
insinto "/lib/modules/${KV_FULL}/updates/$(dirname ${file})"
doins "${file}"
done
dosbin scripts/athenable scripts/b43load scripts/iwl-enable \
scripts/madwifi-unload scripts/athload scripts/iwl-load \
scripts/b43enable scripts/unload.sh
dodir /usr/lib/compat-wireless
exeinto /usr/lib/compat-wireless
doexe scripts/modlib.sh
dodoc README
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
if use !livecd; then
if use loadmodules; then
/usr/sbin/unload.sh
/sbin/udevadm trigger
einfo "Your new modules have been loaded for you, sorry for the network hiccup."
fi
fi
einfo "If you didn't USE=loadmodules you can still switch to the new drivers without reboot."
einfo "Run 'unload.sh' then 'udevadm trigger' to cause udev to load the needed drivers."
}
pkg_postrm() {
remove_moduledb
}