The package rpms/compat-libvpx5.git has added or updated architecture specific content in
its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/compat-libvpx5.git/commit/?id=142....
Change:
+%ifarch armv7hl
Thanks.
Full change:
============
commit 142e45bf7c95d5a52c5e5822de30f398d400ff6e
Author: Pete Walter <pwalter(a)fedoraproject.org>
Date: Tue Feb 5 14:30:15 2019 +0000
Initial import
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..eb11a9d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/v1.7.0.tar.gz
diff --git a/compat-libvpx5.spec b/compat-libvpx5.spec
new file mode 100644
index 0000000..e8ce39c
--- /dev/null
+++ b/compat-libvpx5.spec
@@ -0,0 +1,178 @@
+%global somajor 5
+%global sominor 0
+%global sotiny 0
+%global soversion %{somajor}.%{sominor}.%{sotiny}
+
+Name: compat-libvpx5
+Summary: Compat package with libvpx libraries
+Version: 1.7.0
+Release: 1%{?dist}
+License: BSD
+#Source0:
http://downloads.webmproject.org/releases/webm/%{name}-%{version}.tar.bz2
+Source0:
https://github.com/webmproject/libvpx/archive/v%{version}.tar.gz
+# Thanks to debian.
+Source2: libvpx.ver
+URL:
http://www.webmproject.org/code/
+BuildRequires: gcc
+BuildRequires: gcc-c++
+%ifarch %{ix86} x86_64
+BuildRequires: yasm
+%endif
+BuildRequires: doxygen, php-cli, perl(Getopt::Long)
+# Do not disable FORTIFY_SOURCE=2
+Patch0: libvpx-1.7.0-leave-fortify-source-on.patch
+
+# Explicitly conflict with older libvpx packages that ship libraries
+# with the same soname as this compat package
+Conflicts: libvpx < 1.8.0
+
+%description
+Compatibility package with libvpx libraries ABI version 5.
+
+%prep
+%setup -q -n libvpx-%{version}
+%patch0 -p1 -b .leave-fs-on
+
+%build
+%ifarch %{ix86}
+%global vpxtarget x86-linux-gcc
+%else
+%ifarch x86_64
+%global vpxtarget x86_64-linux-gcc
+%else
+%ifarch armv7hl
+%global vpxtarget armv7-linux-gcc
+%else
+%ifarch aarch64
+%global vpxtarget arm64-linux-gcc
+%else
+%global vpxtarget generic-gnu
+%endif
+%endif
+%endif
+%endif
+
+# History: The configure script used to reject the shared flag on the generic target.
+# This meant that we needed to fall back to manual shared lib creation.
+# However, the modern configure script permits the shared flag and assumes ELF.
+# Additionally, the libvpx.ver would need to be updated to work properly.
+# As a result, we disable this universally, but keep it around in case we ever need to
support
+# something "special".
+%if "%{vpxtarget}" == "generic-gnu"
+%global generic_target 0
+%else
+%global generic_target 0
+%endif
+
+# only found in Fedora 28+
+%if 0%{?fedora} >= 28
+%set_build_flags
+%endif
+
+%ifarch armv7hl
+CROSS=armv7hl-redhat-linux-gnueabi- CHOST=armv7hl-redhat-linux-gnueabi-hardfloat
./configure \
+%else
+./configure --target=%{vpxtarget} \
+%endif
+%ifarch %{arm}
+--disable-neon --disable-neon_asm \
+%endif
+--enable-pic --disable-install-srcs \
+--enable-vp9-decoder --enable-vp9-encoder \
+--enable-experimental --enable-spatial-svc \
+--enable-vp9-highbitdepth \
+%if ! %{generic_target}
+--enable-shared \
+%endif
+--prefix=%{_prefix} --libdir=%{_libdir} --size-limit=16384x16384
+
+# Hack our optflags in.
+sed -i "s|-O3|%{optflags}|g" libs-%{vpxtarget}.mk
+sed -i "s|-O3|%{optflags}|g" examples-%{vpxtarget}.mk
+sed -i "s|-O3|%{optflags}|g" docs-%{vpxtarget}.mk
+
+%ifarch armv7hl
+#hackety hack hack
+sed -i "s|AR=armv7hl-redhat-linux-gnueabi-ar|AR=ar|g" libs-%{vpxtarget}.mk
+sed -i "s|AR=armv7hl-redhat-linux-gnueabi-ar|AR=ar|g" examples-%{vpxtarget}.mk
+sed -i "s|AR=armv7hl-redhat-linux-gnueabi-ar|AR=ar|g" docs-%{vpxtarget}.mk
+
+sed -i "s|AS=armv7hl-redhat-linux-gnueabi-as|AS=as|g" libs-%{vpxtarget}.mk
+sed -i "s|AS=armv7hl-redhat-linux-gnueabi-as|AS=as|g" examples-%{vpxtarget}.mk
+sed -i "s|AS=armv7hl-redhat-linux-gnueabi-as|AS=as|g" docs-%{vpxtarget}.mk
+
+sed -i "s|NM=armv7hl-redhat-linux-gnueabi-nm|NM=nm|g" libs-%{vpxtarget}.mk
+sed -i "s|NM=armv7hl-redhat-linux-gnueabi-nm|NM=nm|g" examples-%{vpxtarget}.mk
+sed -i "s|NM=armv7hl-redhat-linux-gnueabi-nm|NM=nm|g" docs-%{vpxtarget}.mk
+%endif
+
+make %{?_smp_mflags} verbose=true
+
+# Manual shared library creation
+# We should never need to do this anymore, and if we do, we need to fix the
version-script.
+%if %{generic_target}
+mkdir tmp
+cd tmp
+ar x ../libvpx_g.a
+cd ..
+gcc -fPIC -shared -pthread -lm -Wl,--no-undefined -Wl,-soname,libvpx.so.%{somajor}
-Wl,--version-script,%{SOURCE2} -Wl,-z,noexecstack -o libvpx.so.%{soversion} tmp/*.o
+rm -rf tmp
+%endif
+
+# Temporarily dance the static libs out of the way
+# mv libvpx.a libNOTvpx.a
+# mv libvpx_g.a libNOTvpx_g.a
+
+# We need to do this so the examples can link against it.
+# ln -sf libvpx.so.%{soversion} libvpx.so
+
+# make %{?_smp_mflags} verbose=true target=examples CONFIG_SHARED=1
+# make %{?_smp_mflags} verbose=true target=docs
+
+# Put them back so the install doesn't fail
+# mv libNOTvpx.a libvpx.a
+# mv libNOTvpx_g.a libvpx_g.a
+
+%install
+%ifarch armv7hl
+export CROSS=armv7hl-redhat-linux-gnueabi-
+export CHOST=armv7hl-redhat-linux-gnueabi-hardfloat
+%endif
+make DIST_DIR=%{buildroot}%{_prefix} dist
+
+# Simpler to label the dir as %%doc.
+if [ -d %{buildroot}%{_prefix}/docs ]; then
+ mv %{buildroot}%{_prefix}/docs doc/
+fi
+
+# Again, we should never need to do this anymore.
+%if %{generic_target}
+install -p libvpx.so.%{soversion} %{buildroot}%{_libdir}
+pushd %{buildroot}%{_libdir}
+ln -sf libvpx.so.%{soversion} libvpx.so
+ln -sf libvpx.so.%{soversion} libvpx.so.%{somajor}
+ln -sf libvpx.so.%{soversion} libvpx.so.%{somajor}.%{sominor}
+popd
+%endif
+
+pushd %{buildroot}
+# Stuff we don't need.
+rm -rf .%{_prefix}/build/ .%{_prefix}/md5sums.txt .%{_libdir}*/*.a .%{_prefix}/CHANGELOG
.%{_prefix}/README
+# No, bad google. No treat.
+mv .%{_bindir}/examples/* .%{_bindir}
+rm -rf .%{_bindir}/examples
+popd
+
+# Remove files that aren't needed for the compat package
+rm -rf %{buildroot}%{_bindir}
+rm -rf %{buildroot}%{_includedir}
+rm -rf %{buildroot}%{_libdir}/*.so
+rm -rf %{buildroot}%{_libdir}/pkgconfig/
+
+%files
+%license LICENSE
+%{_libdir}/libvpx.so.*
+
+%changelog
+* Tue Feb 05 2019 Pete Walter <pwalter(a)fedoraproject.org> - 1.7.0-1
+- Initial packaging
diff --git a/libvpx-1.7.0-leave-fortify-source-on.patch
b/libvpx-1.7.0-leave-fortify-source-on.patch
new file mode 100644
index 0000000..23099da
--- /dev/null
+++ b/libvpx-1.7.0-leave-fortify-source-on.patch
@@ -0,0 +1,12 @@
+diff -up libvpx-1.7.0/build/make/configure.sh.leave-fs-on
libvpx-1.7.0/build/make/configure.sh
+--- libvpx-1.7.0/build/make/configure.sh.leave-fs-on 2018-01-26 15:02:18.767645332 -0500
++++ libvpx-1.7.0/build/make/configure.sh 2018-01-26 15:02:28.594420775 -0500
+@@ -1440,7 +1440,7 @@ EOF
+
+ # Work around longjmp interception on glibc >= 2.11, to improve binary
+ # compatibility. See
http://code.google.com/p/webm/issues/detail?id=166
+- enabled linux && check_add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
++ # enabled linux && check_add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
+
+ # Check for strip utility variant
+ ${STRIP} -V 2>/dev/null | grep GNU >/dev/null && enable_feature
gnu_strip
diff --git a/libvpx.ver b/libvpx.ver
new file mode 100644
index 0000000..aa147ab
--- /dev/null
+++ b/libvpx.ver
@@ -0,0 +1,79 @@
+{ global:
+vpx_codec_build_config;
+vpx_codec_control_;
+vpx_codec_dec_init_ver;
+vpx_codec_decode;
+vpx_codec_destroy;
+vpx_codec_enc_config_default;
+vpx_codec_enc_config_set;
+vpx_codec_enc_init_ver;
+vpx_codec_encode;
+vpx_codec_error;
+vpx_codec_error_detail;
+vpx_codec_err_to_string;
+vpx_codec_get_caps;
+vpx_codec_get_cx_data;
+vpx_codec_get_frame;
+vpx_codec_get_global_headers;
+vpx_codec_get_mem_map;
+vpx_codec_get_preview_frame;
+vpx_codec_get_stream_info;
+vpx_codec_iface_name;
+vpx_codec_peek_stream_info;
+vpx_codec_register_put_frame_cb;
+vpx_codec_register_put_slice_cb;
+vpx_codec_set_cx_data_buf;
+vpx_codec_set_frame_buffer_functions;
+vpx_codec_set_mem_map;
+vpx_codec_version;
+vpx_codec_version_extra_str;
+vpx_codec_version_str;
+vpx_codec_vp8_algo;
+vpx_codec_vp8_cx;
+vpx_codec_vp8_cx_algo;
+vpx_codec_vp8_dx;
+vpx_codec_vp8_dx_algo;
+vpx_codec_vp9_cx;
+vpx_codec_vp9_cx_algo;
+vpx_codec_vp9_dx;
+vpx_codec_vp9_dx_algo;
+vpx_dec_control;
+vpx_dec_decode;
+vpx_dec_destroy;
+vpx_dec_error;
+vpx_dec_error_detail;
+vpx_dec_err_to_string;
+vpx_dec_get_caps;
+vpx_dec_get_frame;
+vpx_dec_get_mem_map;
+vpx_dec_get_stream_info;
+vpx_dec_iface_name;
+vpx_dec_init_ver;
+vpx_dec_peek_stream_info;
+vpx_dec_register_put_frame_cb;
+vpx_dec_register_put_slice_cb;
+vpx_dec_set_mem_map;
+vpx_dec_xma_init_ver;
+vpx_enc_vp8_algo;
+vpx_img_alloc;
+vpx_img_flip;
+vpx_img_free;
+vpx_img_set_rect;
+vpx_img_wrap;
+vpx_svc_dump_statistics;
+vpx_svc_encode;
+vpx_svc_get_buffer;
+vpx_svc_get_encode_frame_count;
+vpx_svc_get_frame_size;
+vpx_svc_get_layer_resolution;
+vpx_svc_get_message;
+vpx_svc_get_rc_stats_buffer;
+vpx_svc_get_rc_stats_buffer_size;
+vpx_svc_init;
+vpx_svc_is_keyframe;
+vpx_svc_release;
+vpx_svc_set_keyframe;
+vpx_svc_set_options;
+vpx_svc_set_quantizers;
+vpx_svc_set_scale_factors;
+local: *; };
diff --git a/sources b/sources
new file mode 100644
index 0000000..6954b10
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (v1.7.0.tar.gz) =
8b3b766b550f8d86907628d7ed88035f9a2612aac21542e0fd5ad35b905eb82cbe1be02a1a24afce7a3bcc4766f62611971f72724761996b392136c40a1e7ff0