]> git.pld-linux.org Git - packages/wl.git/blame - wl.spec
- fix build with kernels using gcc 4.9 features
[packages/wl.git] / wl.spec
CommitLineData
cd8b6608
ZU
1# Conditional build:
2%bcond_without dist_kernel # allow non-distribution kernel
b51b81d5 3%bcond_without kernel # don't build kernel modules
cd8b6608 4%bcond_with verbose # verbose build (V=1)
ed656948
JR
5%bcond_with dkms # build dkms package
6
7%if %{without kernel}
8%undefine with_dist_kernel
9%endif
10
ed656948
JR
11%if "%{_alt_kernel}" != "%{nil}"
12%if 0%{?build_kernels:1}
13%{error:alt_kernel and build_kernels are mutually exclusive}
14exit 1
15%endif
16%global _build_kernels %{alt_kernel}
17%else
18%global _build_kernels %{?build_kernels:,%{?build_kernels}}
19%endif
cd8b6608 20
7cf02690
JR
21# nothing to be placed to debuginfo package
22%define _enable_debug_packages 0
23
ed656948
JR
24%define kbrs %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo "BuildRequires:kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2" ; done)
25%define kpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%kernel_pkg ; done)
26%define bkpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%build_kernel_pkg ; done)
27
1f723013 28%define rel 2
7cf02690 29%define pname wl
041038fe 30%define file_ver %(echo %{version} | tr . _)
682c838a 31Summary: Broadcom 802.11 a/b/g/n hybrid Linux networking device driver
7cf02690 32Name: %{pname}%{_alt_kernel}
c2429599 33Version: 6.30.223.248
ed656948 34Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
cd8b6608
ZU
35License: other
36Group: Base/Kernel
b2160a76 37Source0: http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-%{file_ver}.tar.gz
c2429599 38# Source0-md5: e048154b3f4c7ad6bee36cab5b37486d
b2160a76 39Source1: http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-%{file_ver}.tar.gz
c2429599 40# Source1-md5: 0237917f75d121589ec16a44eac5f5b0
ab9a647c 41Source2: http://www.broadcom.com/docs/linux_sta/README.txt
b2160a76 42# Source2-md5: 8a6e8708a5e00ab6d841cde51d70eb1b
b51b81d5 43Source3: dkms.conf
10c48a9f 44Patch0: linux-3.17.patch
1f723013 45Patch1: gcc-4.9.patch
cd8b6608 46URL: http://www.broadcom.com/support/802.11/linux_sta.php
ed656948
JR
47BuildRequires: rpmbuild(macros) >= 1.678
48%{?with_dist_kernel:%{expand:%kbrs}}
ab9a647c 49ExclusiveArch: %{ix86} %{x8664}
cd8b6608
ZU
50BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51
52%description
53These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux
041038fe
ER
54device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-,
55BCM4321-, BCM4322-, BCM43224-, and BCM43225-, BCM43227- and
56BCM43228-based hardware.
cd8b6608 57
b2160a76
ER
58This is an Official Release of Broadcom's hybrid Linux driver for use
59with Broadcom based hardware.
60
7cf02690 61%package -n dkms-%{pname}
b51b81d5
ER
62Summary: DKMS-ready driver for Broadcom WL driver
63Group: Base/Kernel
64Release: %{rel}
65Requires(pre): dkms
66Requires(post): dkms
67%if "%{_rpmversion}" >= "5"
68BuildArch: noarch
69%endif
70
7cf02690 71%description -n dkms-%{pname}
b51b81d5
ER
72This package contains a DKMS-ready driver for Broadcom WL driver.
73
ed656948
JR
74%define kernel_pkg()\
75%package -n kernel%{_alt_kernel}-net-wl\
76Summary: Broadcom 802.11 a/b/g/n hybrid Linux networking device driver\
77Release: %{rel}@%{_kernel_ver_str}\
78Group: Base/Kernel\
79Requires(post,postun): /sbin/depmod\
80%if %{with dist_kernel}\
81%requires_releq_kernel\
82Requires(postun): %releq_kernel\
83%endif\
84\
85%description -n kernel%{_alt_kernel}-net-wl\
86These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux\
87device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-,\
88BCM4321-, BCM4322-, BCM43224-, and BCM43225-, BCM43227- and\
89BCM43228-based hardware.\
90\
91This is an Official Release of Broadcom's hybrid Linux driver for use\
92with Broadcom based hardware.\
93\
94%files -n kernel%{_alt_kernel}-net-wl\
95%defattr(644,root,root,755)\
96%doc lib/LICENSE.txt README.txt\
97/lib/modules/%{_kernel_ver}/kernel/drivers/net/wireless/*.ko*\
98\
99%post -n kernel%{_alt_kernel}-net-wl\
100%depmod %{_kernel_ver}\
101\
102%posttrans -n kernel%{_alt_kernel}-net-wl\
103%banner -e kernel%{_alt_kernel}-net-wl <<EOF\
104WARNING! This kernel module is not GPL licensed.\
105Before using it be sure to accept license: %{_docdir}/kernel%{_alt_kernel}-net-wl-%{version}/LICENSE.txt*\
106EOF\
107\
108%postun -n kernel%{_alt_kernel}-net-wl\
109%depmod %{_kernel_ver}\
110%{nil}
111
112%define build_kernel_pkg()\
113%build_kernel_modules -m wl\
114%install_kernel_modules -D installed -m wl -d kernel/drivers/net/wireless\
115%{nil}
116
117%{?with_kernel:%{expand:%kpkg}}
118
cd8b6608 119%prep
ab9a647c 120%ifarch %{x8664}
041038fe 121%define src 1
ab9a647c 122%else
041038fe 123%define src 0
ab9a647c 124%endif
7cf02690 125%setup -c -T -q -n %{pname}-%{version} -b%{src}
10c48a9f 126%patch0 -p1
1f723013 127%patch1 -p1
cd8b6608 128
b51b81d5
ER
129# cleanup backups after patching
130find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
131
0c2c4e39
ER
132cp -p %{SOURCE2} .
133
b8a75460 134cat > Makefile << 'EOF'
ab9a647c 135obj-m += wl.o
cd8b6608 136
b2160a76 137wl-objs += src/wl/sys/wl_linux.o
ab9a647c 138wl-objs += src/wl/sys/wl_iw.o
139wl-objs += src/shared/linux_osl.o
cd8b6608 140
b8a75460
ER
141EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/src/include
142EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/src/common/include
143EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/src/wl/sys
144EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/src/shared/bcmwifi/include
cd8b6608 145
b8a75460 146EXTRA_LDFLAGS := $(KBUILD_EXTMOD)/lib/wlc_hybrid.o_shipped
cd8b6608
ZU
147EOF
148
cd8b6608 149%build
ed656948 150%{?with_kernel:%{expand:%bkpkg}}
cd8b6608 151
cd8b6608
ZU
152%install
153rm -rf $RPM_BUILD_ROOT
b51b81d5 154%if %{with kernel}
ed656948
JR
155install -d $RPM_BUILD_ROOT
156cp -a installed/* $RPM_BUILD_ROOT
b51b81d5
ER
157%endif
158
159%if %{with dkms}
7cf02690
JR
160install -d $RPM_BUILD_ROOT%{_usrsrc}/%{pname}-%{version}-%{rel}
161cp -a Makefile lib src $RPM_BUILD_ROOT%{_usrsrc}/%{pname}-%{version}-%{rel}
162sed -e 's|@pname@|%{pname}|g' -e 's|@MODVERSION@|%{version}-%{rel}|g' \
163 %{SOURCE3} > $RPM_BUILD_ROOT%{_usrsrc}/%{pname}-%{version}-%{rel}/dkms.conf
b51b81d5 164%endif
cd8b6608 165
cd8b6608
ZU
166%clean
167rm -rf $RPM_BUILD_ROOT
168
7cf02690
JR
169%post -n dkms-%{pname}
170%{_sbindir}/dkms add -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade && \
171%{_sbindir}/dkms build -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade && \
172%{_sbindir}/dkms install -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade || :
b51b81d5 173
7cf02690
JR
174%preun -n dkms-%{pname}
175%{_sbindir}/dkms remove -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade --all || :
b51b81d5 176
b51b81d5 177%if %{with dkms}
7cf02690 178%files -n dkms-%{pname}
b51b81d5 179%defattr(644,root,root,755)
7cf02690 180%{_usrsrc}/%{pname}-%{version}-%{rel}
b51b81d5 181%endif
This page took 0.101489 seconds and 4 git commands to generate.