diff --git a/_service b/_service
new file mode 100644
index 0000000..a6a691b
--- /dev/null
+++ b/_service
@@ -0,0 +1,14 @@
+
+
+ git
+ https://github.com/gnuradio/volk.git
+ v2.4.0
+ 2.4.0
+
+
+ *.tar
+ xz
+
+
+
+
diff --git a/volk-2.3.0.tar.gz b/volk-2.3.0.tar.gz
deleted file mode 100644
index 151f933..0000000
--- a/volk-2.3.0.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f42c928f561b128acfe4adb21227e4a62a3f6ab8103592fc3233765ff326d5fc
-size 344763
diff --git a/volk-2.4.0.tar.xz b/volk-2.4.0.tar.xz
new file mode 100644
index 0000000..db78075
--- /dev/null
+++ b/volk-2.4.0.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:99a5b8649520ad11088525f88b4c98e070a7cdb6982af40b7fdab555ea5b8cb5
+size 313828
diff --git a/volk-fix-cpu_features-compilation-error.patch b/volk-fix-cpu_features-compilation-error.patch
new file mode 100644
index 0000000..64c846e
--- /dev/null
+++ b/volk-fix-cpu_features-compilation-error.patch
@@ -0,0 +1,12 @@
+diff --git a/cpu_features/src/utils/list_cpu_features.c b/cpu_features/src/utils/list_cpu_features.c
+index c80ffc5..82a8e72 100644
+--- a/cpu_features/src/utils/list_cpu_features.c
++++ b/cpu_features/src/utils/list_cpu_features.c
+@@ -340,6 +340,7 @@ static Node* GetCacheTypeString(CacheType cache_type) {
+ case CPU_FEATURE_CACHE_PREFETCH:
+ return CreateConstantString("prefetch");
+ }
++ return 0;
+ }
+
+ static void AddCacheInfo(Node* root, const CacheInfo* cache_info) {
diff --git a/volk.changes b/volk.changes
index 59e1933..8ee1901 100644
--- a/volk.changes
+++ b/volk.changes
@@ -1,3 +1,28 @@
+-------------------------------------------------------------------
+Mon Nov 30 11:31:35 UTC 2020 - Martin Hauke
+
+- Update to version 2.4.0
+ Documentation
+ * Update README to be more verbose and to improve usefulness.
+ CMake
+ * Enable to not install volk_modtool.
+ * Remove "find_package_handle_standard_args" warning.
+ cpu_features
+ * Use cpu_features v0.6.0 as a private submodule to detect
+ available CPU features.
+ * Fix incorrect feature detection for newer AVX versions.
+ * Circumvent platform specific feature detection.
+ * Enable more architecture specific kernels on more platforms.
+ Kernels
+ * Disable slow and broken SSE4.1 kernel in
+ volk_32fc_x2_dot_prod_32fc.
+ * Adjust min/max for 32f_s32f_convert_8i kernel
+ * Use INT8_* instead of CHAR_*
+- Upstream tarball does not have the cpu_features included so use
+ a service file to generate the tarball.
+- Add patch:
+ * volk-fix-cpu_features-compilation-error.patch
+
-------------------------------------------------------------------
Sat May 9 12:09:27 UTC 2020 - Martin Hauke
diff --git a/volk.spec b/volk.spec
index f670e22..738fd49 100644
--- a/volk.spec
+++ b/volk.spec
@@ -17,16 +17,16 @@
%global sonum 2
-%global soname 2_3
-
+%global soname 2_4
Name: volk
-Version: 2.3.0
+Version: 2.4.0
Release: 0
Summary: Vector-Optimized Library of Kernels
License: GPL-3.0-only
Group: Development/Libraries/C and C++
-URL: http://libvolk.org/
-Source: https://github.com/gnuradio/volk/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
+URL: https://libvolk.org/
+Source: %{name}-%{version}.tar.xz
+Patch0: volk-fix-cpu_features-compilation-error.patch
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -35,6 +35,7 @@ BuildRequires: libboost_system-devel
BuildRequires: orc
BuildRequires: python-rpm-macros
BuildRequires: python3-Mako
+Provides: bundled(cpu_features) = 0.6.0
%description
VOLK provides a library of vector-optimized kernels. It is a subproject
@@ -45,9 +46,9 @@ Summary: Development files for VOLK
# Formerly part of gnuradio 3.7.x.y
Group: Development/Libraries/C and C++
Requires: libvolk%{soname} = %{version}
+Recommends: volk_modtool
Conflicts: gnuradio-devel < 3.8.0.0
Provides: gnuradio-devel:%{_libdir}/pkgconfig/volk.pc
-Recommends: volk_modtool
%description devel
This package provides the the development files for VOLK.
@@ -70,6 +71,7 @@ VOLK kernels.
%prep
%setup -q
+%patch0 -p1
%build
%cmake
@@ -77,10 +79,15 @@ VOLK kernels.
%install
%cmake_install
-
chmod -x %{buildroot}%{python3_sitearch}/volk_modtool/*py
sed -i -e '1 { \@.*/bin/env.*python.*@ d }' %{buildroot}%{python3_sitearch}/volk_modtool/*py
+# remove stuff from bundled cpu_features
+rm %{buildroot}%{_bindir}/list_cpu_features
+rm -R %{buildroot}%{_includedir}/cpu_features
+rm -R %{buildroot}%{_libdir}/cmake/CpuFeatures
+rm %{buildroot}%{_libdir}/libcpu_features.a
+
%fdupes %{buildroot}
%post -n libvolk%{soname} -p /sbin/ldconfig