diff --git a/net-wireless/compat-wireless/Manifest b/net-wireless/compat-wireless/Manifest index d0a4b0dff..57c34f2ef 100644 --- a/net-wireless/compat-wireless/Manifest +++ b/net-wireless/compat-wireless/Manifest @@ -16,6 +16,7 @@ AUX channel-negative-one-maxim.patch 1021 SHA256 19f7fc0753636c32026e444e23bd101 AUX compat-chaos.patch 6187 SHA256 5e8c11b46bc8acf10a2ce8b934fec32662b57c003c99e5e0ca4717a8c6b19474 SHA512 40f8c15935d3f942dc08a223405e4cb46d0e48ad94d568da582f4b45c1fee41142b3b98d9079d0dfc621fbdfc0d9a8887247fd0e477e04bef571415b7f961409 WHIRLPOOL b749dd4f7f9802335ed610f0d51e0de35a9d88209a67530527428025c494f64759b052549e57afe10928bac5e2747f60ab47f0c8e1f5a5f442fa9db099ccad21 AUX compat-sched.patch 286 SHA256 675e1f877f076f7941dc89248a99b01508cf8a05255bd5a2e2a46c71b148f73e SHA512 20530c0ed571da7cffd33cdf7bab7b4d77cd8c43e2fce9541efca4413a557de8ec676909648fd16c2f142fde3067c37bbc09b14331d8af3dd816d89723f475dd WHIRLPOOL fce079084ea5314880be3f82aa2cbd869309d79b391d6b54d8041abff02514dbd44ff74f6ac000325628b7005903e9cc3535f97686311f5019c312e8a7eb749f AUX compat-wireless-3.5-grsec.patch 14300 SHA256 ad7cdbf8fca6d3dbe9c125b2b9be1f88cbe3e99bc7dee83d6b2797873b7f9922 SHA512 0cc019cbcfc74135545fdf706b5db222c50c95a3b3e9c16b5e2db219365a328ba1f25a50512734fc0b4f8866db7c99ccc721d04f35df0e7ca376bb08369358c0 WHIRLPOOL 7c4595fe92afd4635e355773bb20ace6810a51880f3495a979c6e360e64cc3850c46acdf28cde7831f725c77ce15b7071b1be0382577fd43dbea5388de4b37ee +AUX compat-wireless-3.5-grsec2.patch 819 SHA256 03add201c40734549319f927975e8bf65fc0d051072af1d2347525bc02da0cd1 SHA512 0471890ee528a15f14b3e6778b2eafca0e6f3b1ed3e7a98309986c57fd1de1718c60ddf716d80d74721b453a48c80ba9f0c1cef17578d1b92f56d4946e6edee1 WHIRLPOOL 1575683f1e368b262ab84d54e96d486b7de8c7dc455ff2a31e186fb3229590225a773e6935b120aa23f4650b145f5949077eb3672f0f0dab0541c1fc894fd843 AUX driver-debug.patch 2801 SHA256 06a37359ac7129a6f7db2f4e7f72d67c1f7014fd0adf439a89d119415a4316c2 SHA512 38947057ad7dd553f608216eb6858368a97d25a9711463ffb4c1ef477898300d401a8e7e881189ae85063f3e03ef1f432778db1a720b3f9fa04f14a14d2c1d8b WHIRLPOOL fb3ebc2e83a817454b0ec8e3a41ffba1c53fd32813f3cbd3aeda3452f9fc74267ffd6bec19a4a29160b86f4fed993bd0c665325b4e82edc091d3723dba05d510 AUX failed_ath5k-frequency-chaos-2.6.28.patch 5787 SHA256 8e9e0888e890a2970274a7ba9d40d75e01ebaedb0e16700d8994b9ecfe921185 SHA512 160bea5dbc42b420690a6373666bd0e59eafb98937127d7ea0b02f380b6a49a78d732a773e63461a2ae6b1e882ba37201a6e00cc161b78ec9042aa8d377004cd WHIRLPOOL 2ee067b660c9c70faf28e3b6a4c94d93a4df7735683e97566e6726bbf22a9af9cdafc8e88b9dc7b73cddfda2cc392796195a4679d67c380807242a34c3270982 AUX failed_ieee80211_inject-2.6.22.patch 772 SHA256 7403780cd3df720439f54b6cad88a803aacc0260af8fbbab0cfa25e523ae2ae9 SHA512 ed3279754e2bb97d79c61373903714d53790fa10201784c39931829ba9cc634bb7c9e3e4a17de7fe671545ba1c367ac5ae59d849c66325ad90f9b5f71134d26f WHIRLPOOL f61cc0e7e5a4505504aa5028a25871c0f8fafc3b30c9de93ff1d74cb0c42ca6758f005329b886183157c858ca09a6c48534c7e1c2486cd4fb9eb2ea78204e30a @@ -83,6 +84,7 @@ EBUILD compat-wireless-3.3.ebuild 6274 SHA256 71cecd0c190a6e7e769e09ad3d567837ab EBUILD compat-wireless-3.4_rc1-r1.ebuild 6104 SHA256 62aa12b407887d185ecf615156055c95996683226afb335becfb8c0f4b2a65f7 SHA512 8a96e2469664c164ef5a3c3a8a3693f4b7f9b522b71e99902a548ea320b7dd5598a0c444f75356978e8468138bede484673b4c6adfd4a99b76d5c7a478ec1784 WHIRLPOOL 69312db58e2afe774187dce18b2dd30f05e962ed56da93a54f362be9859a411d4ec804c9fd4494a059d8067286e4f6aa10c6ed0e434581ac68bb84b37b8117dc EBUILD compat-wireless-3.4_rc1.ebuild 6136 SHA256 c251d84ecafe0562548cc922bf412a5d3b311c1aebf8449b6d73a11d4cdfd649 SHA512 9f367dd14a3fad1bbed9af569b34dd88cc64e28de8173ab863e3f7999f91fd1be49444fe8213ff4ec7e7d379c30648452ddfb8b81fca60aa022749c442eeb1c7 WHIRLPOOL 004d8366fcd5a9fbfa68b4daf1a869f60d9c25e608deddd9d264b505294c50996f05eee51d53f91dc9ca798c37f6e17383dd9a41fe24ea65c1b3227da13a6db6 EBUILD compat-wireless-3.4_rc3.ebuild 5871 SHA256 609960ce2388900472d079cba2947ed6fa73275dd9b0adbb1cc94e5a8b500ef7 SHA512 22b48e5e84cf7145a111a92737b1c6bcd50331a59c8453ee2687ae45c6ef68cc56ec6d5ab8827a272ed56e3353f6387b51420b930ef272aa7cf3462300447ac9 WHIRLPOOL 76f5087b23a6ee70a92529b5fa91838c67115f2e9f737c6f64481f1f008860965b6426a6586fd9a7c2629e11f28ac266413d4260b24211759f703662484d5961 +EBUILD compat-wireless-3.5-r1.ebuild 6795 SHA256 762f90d7fcb0771555a212e3d0c45b3f2641a688e32c03ecc2aeab1161fa1771 SHA512 bbe14b427338dbf6d5f3ae9d9ab2f066920216e6b39fb50bf7cc41cf40c005d43746a84cd6001f69bcf309692c14780983045ba55031650e93fefdd4cb8b9206 WHIRLPOOL b1b7dd73404a9447c50eaf4281621e5ac9d19223a1b5b5f5bfec96f4a7820ae32470881287191d79a298f97038e7a7bb522fe940b689bb25d60f23fa02a53cf9 EBUILD compat-wireless-3.5.ebuild 6737 SHA256 e960ae34c7e9457d0b144324515c61a5244af52cec0c6ad39a1e1c89a37c6d42 SHA512 f892159db95404a9dfc43645dd1f83d9033f135255ef840e07c44f7e1dcf6f2a7ffde549389e1da535a60db133a5859d5dd905f86ab9a7e8c7860848ab858376 WHIRLPOOL 077fd3a76598e23a475a7023c730f58bd14fff71d0fb8fd4e91e27b09d69fa97e4212db683bcceae7a0f804287307b404789e9a4078a68a2299a56b3d87ebb26 EBUILD compat-wireless-3.5_rc3.ebuild 5812 SHA256 b2987b81c8a24e15373bd95143e2bf54d693d6c49a76d35b0eb7994f4c43f509 SHA512 4613134287641f1b4a3338b6956eaa279a1ca71152093f49d887e47044be14b03a91b5cb3df6fd7b6a9081cf65553ce758a1003bbbd0b821f47ac83a6946868a WHIRLPOOL ab32986b6153a70f5212cf157492357879166661933186897e4105234252cfa867440ede23494347d827998c13bd11a05956df2c9e2b5509067e64a3d7abcef0 MISC metadata.xml 228 SHA256 8715828d1bff71d5d96b991ba600bae9376c1c80c96f0f102260fc335ca22487 SHA512 006b031017fe79d0da68ed1c2684d2b87f75976111d8abdb18d126ffe142df8ded67805f14fe4adfe17e93287080126b7f4af64dac0ebaa1d9fe4c97e5f9573a WHIRLPOOL e711ede3bf7bcf0dc9d3ecd2706e4120270d4942718ee901f8d42c1c86055c8b153bdb24d6682a56d14f5b14d4ff220c115f14714b3f039bdc3deeece3d1fd02 diff --git a/net-wireless/compat-wireless/compat-wireless-3.5-r1.ebuild b/net-wireless/compat-wireless/compat-wireless-3.5-r1.ebuild new file mode 100644 index 000000000..fc1a4fda9 --- /dev/null +++ b/net-wireless/compat-wireless/compat-wireless-3.5-r1.ebuild @@ -0,0 +1,170 @@ +# 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-snpc" +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="~amd64 ~arm ~x86" +IUSE="atheros_obey_crda bluetooth b43 b44 debugfs debug-driver full-debug injection livecd loadmodules noleds pax_kernel" + +DEPEND="!net-wireless/compat-wireless-builder" +RDEPEND="${DEPEND} + >=sys-kernel/linux-firmware-20110219 + sys-fs/udev" + +S="${WORKDIR}"/"${MY_P}"-${CRAZY_VERSIONING} +RESTRICT="strip" + +CONFIG_CHECK="!DYNAMIC_FTRACE" + +pkg_setup() { + CONFIG_CHECK="~NET_SCHED" + CONFIG_CHECK="~IPW2200_PROMISCUOUS" + 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." + + #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_ !" + linux_chkconfig_module LIBIPW || ewarn "CONFIG_LIBIPW really should be set or there will be no WEXT compat" + + 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_module SSB || die "You need to enable CONFIG_SSB or USE=-b44" + fi +} + +src_prepare() { + use pax_kernel && epatch "${FILESDIR}"/${P}-grsec.patch + use pax_kernel && epatch "${FILESDIR}"/${P}-grsec2.patch + + #mcgrof said prep for inclusion in compat-wireless.git but this causes issues + #find "${S}" -name Makefile | xargs sed -i -e 's/export CONFIG_/export CONFIG_COMPAT_/' -e 's/COMPAT_COMPAT_/COMPAT_/' -e 's/CONFIG_COMPAT_CHECK/CONFIG_CHECK/' + #sed -i -e 's/export CONFIG_/export CONFIG_COMPAT_/' -e 's/COMPAT_COMPAT_/COMPAT_/' "${S}"/config.mk + + # CONFIG_CFG80211_REG_DEBUG=y + sed -i '/CFG80211_REG_DEBUG/s/^# *//' "${S}"/config.mk + + #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." + 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}"/ipw2200-inject.3.4.6.patch + fi + use noleds && epatch "${FILESDIR}"/leds-disable-strict.patch + use debug-driver && sed -i '/DEBUG=y/s/^# *//' "${S}"/config.mk + 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 '/B44=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver" + sed -i '/B44_PCI=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver" + fi + +# Disable B43 driver + if ! use b43; then + sed -i '/B43=/s/ */#/' "${S}"/config.mk || die "unable to disable B43 driver" + sed -i '/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 '/COMPAT_BLUETOOTH=/s/ */#/' "${S}"/config.mk || die "unable to disable bluetooth driver" + sed -i '/COMPAT_BLUETOOTH_MODULES=/s/ */#/' "${S}"/config.mk || die "unable to bluetooth B44 driver" + fi + + #enable alx atheros ethernet driver + sed -i 's/ALX=n/ALX=m/' "${S}"/config.mk || die "Failed to enable Atheros ALX driver" + + #avoid annoying ACCESS DENIED sandbox errors + sed -i "s/\${MAKE} -C \${KLIB_BUILD} kernelversion/echo ${KV_FULL}/g" compat/scripts/gen-compat-config.sh || die "sed failed" + sed -i "s/shell \$(MAKE) -C \$(KLIB_BUILD) kernelversion/echo ${KV_FULL}/g" config.mk || die "sed failed" + sed -i "s/make -C \$KLIB_BUILD kernelversion/echo ${KV_FULL}/g" scripts/gen-compat-autoconf.sh || die "sed failed" +} + +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 + einfo "Attempting to unload modules..." + /usr/sbin/unload.sh 2>&1 | grep -E FATAL && ewarn "Unable to remove running modules, system may be unhappy, reboot HIGHLY recommended!" + einfo "Triggering automatic reload of needed modules..." + /sbin/udevadm trigger + einfo "We have attempted to load your new modules for you, this may fail horribly, or may just cause a network hiccup." + einfo "If you experience any issues reboot is the simplest course of action." + fi + fi + if use !loadmodules; then + einfo "You didn't USE=loadmodules but you can still attempt to switch to the new drivers without reboot." + einfo "Run 'unload.sh' then 'udevadm trigger' to cause udev to load the needed drivers." + einfo "If unload.sh fails for some reason you should be able to simply reboot to fix everything and load the new modules." + fi +} + +pkg_postrm() { + remove_moduledb +} diff --git a/net-wireless/compat-wireless/files/compat-wireless-3.5-grsec2.patch b/net-wireless/compat-wireless/files/compat-wireless-3.5-grsec2.patch new file mode 100644 index 000000000..b52cd6d63 --- /dev/null +++ b/net-wireless/compat-wireless/files/compat-wireless-3.5-grsec2.patch @@ -0,0 +1,33 @@ +--- drivers/net/wireless/ti/wl12xx/main.c ++++ drivers/net/wireless/ti/wl12xx/main.c +Thanks to ryao for explaining the fix on ZFS! +@@ -612,6 +612,10 @@ + } + } + ++static struct wlcore_ops wl127x_ops = { ++ .prepare_read = wl127x_prepare_read ++}; ++ + static int wl12xx_identify_chip(struct wl1271 *wl) + { + int ret = 0; +@@ -631,7 +635,8 @@ + sizeof(wl->conf.mem)); + + /* read data preparation is only needed by wl127x */ +- wl->ops->prepare_read = wl127x_prepare_read; ++ /* wl->ops->prepare_read = wl127x_prepare_read; */ ++ wl->ops = &wl127x_ops; + + break; + +@@ -650,7 +655,8 @@ + sizeof(wl->conf.mem)); + + /* read data preparation is only needed by wl127x */ +- wl->ops->prepare_read = wl127x_prepare_read; ++ /* wl->ops->prepare_read = wl127x_prepare_read; */ ++ wl->ops = &wl127x_ops; + + break;