]> git.pld-linux.org Git - packages/wl.git/blobdiff - wl.spec
- fix building with linux 4.7
[packages/wl.git] / wl.spec
diff --git a/wl.spec b/wl.spec
index f5c60e358e066c972dbfa4e3be08ddc1c10d15f0..988c911f6eeb87514fcf92c906f4b49f806d7275 100644 (file)
--- a/wl.spec
+++ b/wl.spec
@@ -1,38 +1,47 @@
 # Conditional build:
 # 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_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 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
+
+%if %{without userspace}
+%undefine      with_dkms
+%endif
 
 # nothing to be placed to debuginfo package
 %define                _enable_debug_packages  0
 
 
 # nothing to be placed to debuginfo package
 %define                _enable_debug_packages  0
 
-%define                rel     3
+%define                _duplicate_files_terminate_build        0
+
+%define                rel     2
 %define                pname   wl
 %define                file_ver        %(echo %{version} | tr . _)
 Summary:       Broadcom 802.11 a/b/g/n hybrid Linux networking device driver
 %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.141
-Release:       %{rel}
+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
 License:       other
 Group:         Base/Kernel
 Source0:       http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-%{file_ver}.tar.gz
-# Source0-md5: f4809d9149e8e60ef95021ae93a4bf21
+# Source0-md5: 4e75f4cb7d87f690f9659ffc478495f0
 Source1:       http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-%{file_ver}.tar.gz
 Source1:       http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-%{file_ver}.tar.gz
-# Source1-md5: 039f33d2a3ff2890e42717092d1eb0c4
+# Source1-md5: 115903050c41d466161784d4c843f4f9
 Source2:       http://www.broadcom.com/docs/linux_sta/README.txt
 # Source2-md5: 8a6e8708a5e00ab6d841cde51d70eb1b
 Source3:       dkms.conf
 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
+Source4:       modprobe.conf
+Patch1:                gcc-4.9.patch
+Patch2:                no-dead-code.patch
+Patch3:                linux-4.7.patch
 URL:           http://www.broadcom.com/support/802.11/linux_sta.php
 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}
+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
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -44,25 +53,6 @@ BCM43228-based hardware.
 This is an Official Release of Broadcom's hybrid Linux driver for use
 with Broadcom based hardware.
 
 This is an Official Release of Broadcom's hybrid Linux driver for use
 with Broadcom based hardware.
 
-%package -n kernel%{_alt_kernel}-net-wl
-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
-device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-,
-BCM4321-, BCM4322-, BCM43224-, and BCM43225-, BCM43227- and
-BCM43228-based hardware.
-
-This is an Official Release of Broadcom's hybrid Linux driver for use
-with Broadcom based hardware.
-
 %package -n dkms-%{pname}
 Summary:       DKMS-ready driver for Broadcom WL driver
 Group:         Base/Kernel
 %package -n dkms-%{pname}
 Summary:       DKMS-ready driver for Broadcom WL driver
 Group:         Base/Kernel
@@ -76,49 +66,85 @@ BuildArch:  noarch
 %description -n dkms-%{pname}
 This package contains a DKMS-ready driver for Broadcom WL driver.
 
 %description -n dkms-%{pname}
 This package contains a DKMS-ready driver for Broadcom WL driver.
 
+%define        kernel_pkg()\
+%package -n kernel%{_alt_kernel}-net-wl\
+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\
+%requires_releq_kernel\
+Requires(postun):      %releq_kernel\
+\
+%description -n kernel%{_alt_kernel}-net-wl\
+These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux\
+device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-,\
+BCM4321-, BCM4322-, BCM43224-, and BCM43225-, BCM43227- and\
+BCM43228-based hardware.\
+\
+This is an Official Release of Broadcom's hybrid Linux driver for use\
+with Broadcom based hardware.\
+\
+%files -n kernel%{_alt_kernel}-net-wl\
+%defattr(644,root,root,755)\
+%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}\
+\
+%posttrans -n kernel%{_alt_kernel}-net-wl\
+%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\
+%depmod %{_kernel_ver}\
+%{nil}
+
+%define build_kernel_pkg()\
+%{__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:%create_kernel_packages}}
+
 %prep
 %prep
-%ifarch %{x8664}
+%ifarch %{x8664} x32
 %define src 1
 %else
 %define src 0
 %endif
 %setup -c -T -q -n %{pname}-%{version} -b%{src}
 %define src 1
 %else
 %define src 0
 %endif
 %setup -c -T -q -n %{pname}-%{version} -b%{src}
-%patch0 -p2
-
-# cleanup backups after patching
-find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
 
 
+mkdir wl
+mv lib src Makefile wl/
 cp -p %{SOURCE2} .
 
 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
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
 
 %build
 
 %build
-%if %{with kernel}
-%build_kernel_modules -m wl
-%endif
+%{?with_kernel:%{expand:%build_kernel_packages}}
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
 %install
 rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT/etc/modprobe.d
+
 %if %{with kernel}
 %if %{with kernel}
-%install_kernel_modules -m wl -d kernel/drivers/net/wireless
+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}
 %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
 sed -e 's|@pname@|%{pname}|g' -e 's|@MODVERSION@|%{version}-%{rel}|g' \
        %{SOURCE3} > $RPM_BUILD_ROOT%{_usrsrc}/%{pname}-%{version}-%{rel}/dkms.conf
 %endif
@@ -126,18 +152,6 @@ sed -e 's|@pname@|%{pname}|g' -e 's|@MODVERSION@|%{version}-%{rel}|g' \
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%post -n kernel%{_alt_kernel}-net-wl
-%depmod %{_kernel_ver}
-
-%posttrans -n kernel%{_alt_kernel}-net-wl
-%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
-%depmod %{_kernel_ver}
-
 %post -n dkms-%{pname}
 %{_sbindir}/dkms add -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade && \
 %{_sbindir}/dkms build -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade && \
 %post -n dkms-%{pname}
 %{_sbindir}/dkms add -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade && \
 %{_sbindir}/dkms build -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade && \
@@ -146,13 +160,6 @@ EOF
 %preun -n dkms-%{pname}
 %{_sbindir}/dkms remove -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade --all || :
 
 %preun -n dkms-%{pname}
 %{_sbindir}/dkms remove -m %{pname} -v %{version}-%{rel} --rpm_safe_upgrade --all || :
 
-%if %{with kernel}
-%files -n kernel%{_alt_kernel}-net-wl
-%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-%{pname}
 %defattr(644,root,root,755)
 %if %{with dkms}
 %files -n dkms-%{pname}
 %defattr(644,root,root,755)
This page took 0.067524 seconds and 4 git commands to generate.