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