]> git.pld-linux.org Git - packages/wl.git/blobdiff - kernel-net-wl.spec
add dkms support
[packages/wl.git] / kernel-net-wl.spec
index 3437f2e10d8d2efc8675b50fa60bf57abd27c1ae..e33a23e903eb2081090b848b0c3dba3fc88bdfdd 100644 (file)
 # Conditional build:
 %bcond_without dist_kernel     # allow non-distribution kernel
+%bcond_without kernel          # don't build kernel modules
 %bcond_with    verbose         # verbose build (V=1)
-
-%define                _enable_debug_packages  0
-
-%define                rel     1
-%define                pname   wl
-Summary:       Linux kernel module for BCM network cards
-Name:          %{pname}%{_alt_kernel}
-Version:       5.100.82.38
-%define ver    5_100_82_38
-Release:       %{rel}
+%bcond_with    dkms    # build dkms package
+
+%define                rel     3
+%define                modname wl
+%define                file_ver        %(echo %{version} | tr . _)
+Summary:       Broadcom 802.11 a/b/g/n hybrid Linux networking device driver
+Name:          kernel%{_alt_kernel}-net-wl
+Version:       6.30.223.141
+Release:       %{rel}@%{_kernel_ver_str}
 License:       other
 Group:         Base/Kernel
-Source0:       http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_32-v%{ver}.tar.gz
-# Source0-md5: c0074a1622c75916442e26763ddf47d0
-Source1:       http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_64-v%{ver}.tar.gz
-# Source1-md5: cac172f7422fa43264049c7065fe21d6
+Source0:       http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-%{file_ver}.tar.gz
+# Source0-md5: f4809d9149e8e60ef95021ae93a4bf21
+Source1:       http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-%{file_ver}.tar.gz
+# Source1-md5: 039f33d2a3ff2890e42717092d1eb0c4
 Source2:       http://www.broadcom.com/docs/linux_sta/README.txt
-# Source2-md5: 24976921c7b8854ed2cd56fbc5b1c13c
+# Source2-md5: 8a6e8708a5e00ab6d841cde51d70eb1b
+Source3:       dkms.conf
+Patch0:                broadcom-sta-6.30.223.141-kernel-3.10.patch
 URL:           http://www.broadcom.com/support/802.11/linux_sta.php
 %{?with_dist_kernel:BuildRequires:     kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
 BuildRequires: rpmbuild(macros) >= 1.379
+Requires(post,postun): /sbin/depmod
+%if %{with dist_kernel}
+%requires_releq_kernel
+Requires(postun):      %releq_kernel
+%endif
 ExclusiveArch: %{ix86} %{x8664}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+# nothing to be placed to debuginfo package
+%define                _enable_debug_packages  0
+
 %description
 These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux
-device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4321-,
-and BCM4322-based hardware.
+device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-,
+BCM4321-, BCM4322-, BCM43224-, and BCM43225-, BCM43227- and
+BCM43228-based hardware.
 
-%package -n kernel%{_alt_kernel}-net-wl
-Summary:       Linux driver for wl
-Summary(pl.UTF-8):     Sterownik dla Linuksa do wl
-Release:       %{rel}@%{_kernel_ver_str}
+This is an Official Release of Broadcom's hybrid Linux driver for use
+with Broadcom based hardware.
+
+%package -n dkms-%{modname}
+Summary:       DKMS-ready driver for Broadcom WL driver
 Group:         Base/Kernel
-Requires(post,postun): /sbin/depmod
-%if %{with dist_kernel}
-%requires_releq_kernel
-Requires(postun):      %releq_kernel
+Release:       %{rel}
+Requires(pre): dkms
+Requires(post):        dkms
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
 %endif
 
-%description -n kernel%{_alt_kernel}-net-wl
-This is driver for wl for Linux. These packages contain Broadcom's
-IEEE 802.11a/b/g/n hybrid Linux device driver for use with Broadcom's
-BCM4311-, BCM4312-, BCM4321-, and BCM4322-based hardware.
-
-This package contains Linux module.
+%description -n dkms-%{modname}
+This package contains a DKMS-ready driver for Broadcom WL driver.
 
 %prep
 %ifarch %{x8664}
-%define                src 1
+%define src 1
 %else
-%define                src 0
+%define src 0
 %endif
-%setup -c -T -q -n %{pname}-%{version} -b%src
+%setup -c -T -q -n %{modname}-%{version} -b%{src}
+%patch0 -p2
+
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+
+cp -p %{SOURCE2} .
 
 cat > Makefile << EOF
 obj-m  += wl.o
 
-wl-objs                := src/wl/sys/wl_linux.o
+wl-objs                += src/wl/sys/wl_linux.o
 wl-objs                += src/wl/sys/wl_iw.o
 wl-objs                += src/shared/linux_osl.o
 
-EXTRA_CFLAGS   := -I%{_builddir}/%{pname}-%{version}/src/include
-EXTRA_CFLAGS   += -I%{_builddir}/%{pname}-%{version}/src/wl/sys
+EXTRA_CFLAGS   += -I%{_builddir}/%{modname}-%{version}/src/include
+EXTRA_CFLAGS   += -I%{_builddir}/%{modname}-%{version}/src/common/include
+EXTRA_CFLAGS   += -I%{_builddir}/%{modname}-%{version}/src/wl/sys
+EXTRA_CFLAGS   += -I%{_builddir}/%{modname}-%{version}/src/shared/bcmwifi/include
 
 EXTRA_LDFLAGS  := $PWD/lib/wlc_hybrid.o_shipped
 EOF
 
 %build
+%if %{with kernel}
 %build_kernel_modules -m wl
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
+%if %{with kernel}
 %install_kernel_modules -m wl -d kernel/drivers/net/wireless
-install %{SOURCE2} .
+%endif
+
+%if %{with dkms}
+install -d $RPM_BUILD_ROOT%{_usrsrc}/%{modname}-%{version}-%{rel}
+cp -a Makefile lib src $RPM_BUILD_ROOT%{_usrsrc}/%{modname}-%{version}-%{rel}
+sed -e 's|@MODNAME@|%{modname}|g' -e 's|@MODVERSION@|%{version}-%{rel}|g' \
+       %{SOURCE3} > $RPM_BUILD_ROOT%{_usrsrc}/%{modname}-%{version}-%{rel}/dkms.conf
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%post  -n kernel%{_alt_kernel}-net-wl
+%post
 %depmod %{_kernel_ver}
 
-%posttrans -n kernel%{_alt_kernel}-net-wl
+%posttrans
 %banner -e kernel%{_alt_kernel}-net-wl <<EOF
 WARNING! This kernel module is not GPL licensed.
 Before using it be sure to accept license: %{_docdir}/kernel%{_alt_kernel}-net-wl-%{version}/LICENSE.txt*
 EOF
 
-%postun        -n kernel%{_alt_kernel}-net-wl
+%postun
 %depmod %{_kernel_ver}
 
-%files -n kernel%{_alt_kernel}-net-wl
+%post -n dkms-%{modname}
+%{_sbindir}/dkms add -m %{modname} -v %{version}-%{rel} --rpm_safe_upgrade && \
+%{_sbindir}/dkms build -m %{modname} -v %{version}-%{rel} --rpm_safe_upgrade && \
+%{_sbindir}/dkms install -m %{modname} -v %{version}-%{rel} --rpm_safe_upgrade || :
+
+%preun -n dkms-%{modname}
+%{_sbindir}/dkms remove -m %{modname} -v %{version}-%{rel} --rpm_safe_upgrade --all || :
+
+%if %{with kernel}
+%files
 %defattr(644,root,root,755)
 %doc lib/LICENSE.txt README.txt
 /lib/modules/%{_kernel_ver}/kernel/drivers/net/wireless/*.ko*
+%endif
+
+%if %{with dkms}
+%files -n dkms-%{modname}
+%defattr(644,root,root,755)
+%{_usrsrc}/%{modname}-%{version}-%{rel}
+%endif
This page took 0.066033 seconds and 4 git commands to generate.