X-Git-Url: http://git.pld-linux.org/?p=packages%2Fwl.git;a=blobdiff_plain;f=wl.spec;h=33ab3dd320c4a87c0ae535c61f743f6b1578a80e;hp=35282f384059de8130f98b5e879436dac4578dd2;hb=c504579;hpb=e9e4c66cd61c0cff4ecf516b6f3c1711373cb9b2 diff --git a/wl.spec b/wl.spec index 35282f3..33ab3dd 100644 --- a/wl.spec +++ b/wl.spec @@ -1,51 +1,56 @@ # 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) -%bcond_with dkms # build dkms package +%bcond_without userspace # don't build userspace programs +%bcond_without dkms # build dkms package -%if %{without kernel} -%undefine with_dist_kernel -%endif - -%if "%{_alt_kernel}" != "%{nil}" -%if 0%{?build_kernels:1} -%{error:alt_kernel and build_kernels are mutually exclusive} +%if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace} +%{error:kernel and userspace cannot be built at the same time on PLD builders} exit 1 %endif -%global _build_kernels %{alt_kernel} -%else -%global _build_kernels %{?build_kernels:,%{?build_kernels}} + +%if %{without userspace} +%undefine with_dkms %endif # nothing to be placed to debuginfo package %define _enable_debug_packages 0 -%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) -%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) -%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) +%define _duplicate_files_terminate_build 0 -%define rel 0.1 +%define rel 12 %define pname wl %define file_ver %(echo %{version} | tr . _) Summary: Broadcom 802.11 a/b/g/n hybrid Linux networking device driver -Name: %{pname}%{_alt_kernel} -Version: 6.30.223.248 +Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel} +Version: 6.30.223.271 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}} License: other Group: Base/Kernel Source0: http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-%{file_ver}.tar.gz -# Source0-md5: e048154b3f4c7ad6bee36cab5b37486d +# Source0-md5: 4e75f4cb7d87f690f9659ffc478495f0 Source1: http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-%{file_ver}.tar.gz -# Source1-md5: 0237917f75d121589ec16a44eac5f5b0 +# Source1-md5: 115903050c41d466161784d4c843f4f9 Source2: http://www.broadcom.com/docs/linux_sta/README.txt # 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 -BuildRequires: rpmbuild(macros) >= 1.678 -%{?with_dist_kernel:%{expand:%kbrs}} -ExclusiveArch: %{ix86} %{x8664} +Source4: modprobe.conf +Patch0: 13-broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch +Patch1: gcc-4.9.patch +Patch2: no-dead-code.patch +Patch3: linux-4.7.patch +Patch4: linux-4.8.patch +Patch5: 17-fix-kernel-warnings.patch +Patch6: linux-4.11.patch +Patch7: linux-4.12.patch +Patch8: 008-linux415.patch +Patch9: kernel-4.14.patch +Patch10: linux-5.6.patch +Patch11: kernel-5.10.patch +URL: http://www.broadcom.com/support/802.11 +BuildRequires: rpmbuild(macros) >= 1.701 +%{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}} +ExclusiveArch: %{ix86} %{x8664} x32 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -76,10 +81,8 @@ Summary: Broadcom 802.11 a/b/g/n hybrid Linux networking device driver\ Release: %{rel}@%{_kernel_ver_str}\ Group: Base/Kernel\ Requires(post,postun): /sbin/depmod\ -%if %{with dist_kernel}\ %requires_releq_kernel\ Requires(postun): %releq_kernel\ -%endif\ \ %description -n kernel%{_alt_kernel}-net-wl\ These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux\ @@ -92,8 +95,9 @@ with Broadcom based hardware.\ \ %files -n kernel%{_alt_kernel}-net-wl\ %defattr(644,root,root,755)\ -%doc lib/LICENSE.txt README.txt\ +%doc wl/lib/LICENSE.txt README.txt\ /lib/modules/%{_kernel_ver}/kernel/drivers/net/wireless/*.ko*\ +%config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/%{pname}.conf\ \ %post -n kernel%{_alt_kernel}-net-wl\ %depmod %{_kernel_ver}\ @@ -109,54 +113,56 @@ EOF\ %{nil} %define build_kernel_pkg()\ -%build_kernel_modules -m wl\ -%install_kernel_modules -D installed -m wl -d kernel/drivers/net/wireless\ +%{__make} -C wl KERNELRELEASE=%{_kernel_ver} KBUILD_DIR=%{_kernelsrcdir} clean\ +%{__make} -C wl KERNELRELEASE=%{_kernel_ver} KBUILD_DIR=%{_kernelsrcdir}\ +%install_kernel_modules -D installed -m wl/wl -d kernel/drivers/net/wireless\ %{nil} -%{?with_kernel:%{expand:%kpkg}} +%{?with_kernel:%{expand:%create_kernel_packages}} %prep -%ifarch %{x8664} +%ifarch %{x8664} x32 %define src 1 %else %define src 0 %endif %setup -c -T -q -n %{pname}-%{version} -b%{src} -#%patch0 -p2 +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p2 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p2 +%patch11 -p1 + +mkdir wl +mv lib src Makefile wl/ +cp -p %{SOURCE2} . # 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_iw.o -wl-objs += src/shared/linux_osl.o - -EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/src/include -EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/src/common/include -EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/src/wl/sys -EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/src/shared/bcmwifi/include - -EXTRA_LDFLAGS := $(KBUILD_EXTMOD)/lib/wlc_hybrid.o_shipped -EOF - %build -%{?with_kernel:%{expand:%bkpkg}} +%{?with_kernel:%{expand:%build_kernel_packages}} %install rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT/etc/modprobe.d + %if %{with kernel} install -d $RPM_BUILD_ROOT cp -a installed/* $RPM_BUILD_ROOT +cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/modprobe.d/%{pname}.conf %endif %if %{with dkms} install -d $RPM_BUILD_ROOT%{_usrsrc}/%{pname}-%{version}-%{rel} -cp -a Makefile lib src $RPM_BUILD_ROOT%{_usrsrc}/%{pname}-%{version}-%{rel} +cp -a wl/Makefile wl/lib wl/src $RPM_BUILD_ROOT%{_usrsrc}/%{pname}-%{version}-%{rel} sed -e 's|@pname@|%{pname}|g' -e 's|@MODVERSION@|%{version}-%{rel}|g' \ %{SOURCE3} > $RPM_BUILD_ROOT%{_usrsrc}/%{pname}-%{version}-%{rel}/dkms.conf %endif