The package rpms/auryn.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/auryn.git/commit/?id=44839f881fbc....
Change:
+%ifarch %{power64}
Thanks.
Full change:
============
commit 44839f881fbca6ddf96cb7d8abba5358a79c6d2d
Author: Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur(a)gmail.com>
Date: Tue Feb 19 11:37:06 2019 +0000
Initial import
diff --git a/.gitignore b/.gitignore
index 8bd40c5..3c13ace 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/auryn-0.8.1.tar.gz
+/auryn-0.8.2.tar.gz
diff --git a/auryn.spec b/auryn.spec
index f8ec194..33111ec 100644
--- a/auryn.spec
+++ b/auryn.spec
@@ -7,17 +7,22 @@
%bcond_without openmpi
%bcond_without doc
+# Doxygen crashes on aarch64. Temporarily disabling dev docs
+%bcond_with dev_doc
%bcond_without tests
Name: auryn
-Version: 0.8.1
-Release: 3%{?dist}
+Version: 0.8.2
+Release: 1%{?dist}
Summary: Plastic Recurrent Network Simulator
License: GPLv3
URL:
http://www.fzenke.net/auryn/
-Source0:
https://github.com/fzenke/%{name}/archive/v%{version}/%{name}-%{version}....
+Source0:
https://github.com/fzenke/%{name}/archive/v%{version}m/%{name}-%{version}...
+
+# Upstream added an m prefix to the directory structure for some reason
+%global _version %{version}m
BuildRequires: boost-devel
BuildRequires: cmake
@@ -28,6 +33,9 @@ Auryn is a source package used to create highly specialized and
optimized code
to simulate recurrent spiking neural networks with spike timing dependent
plasticity (STDP)
+Detailed documentation and a forum for support/discussion are available at
+https://fzenke.net/auryn.
+
%if %{with doc}
%package doc
Summary: Documentation for %{name}
@@ -88,22 +96,27 @@ developing applications that use %{name}-openmpi.
%endif # openmpi
%prep
-%autosetup -c -n %{name}-%{version}
+%autosetup -c -n %{name}-%{_version}
# Tweaks for all versions
-pushd %{name}-%{version}
+pushd %{name}-%{_version}
# Don't let it set its own optimisation flags
sed -i '/SET(CMAKE_CXX_FLAGS/ d' CMakeLists.txt
sed -i '/^BUILDDIR/ d' test/*.sh
sed -i 's|^.BUILDDIR/test/||' test/*.sh
+
+# Need to disable vector intrinsics on these architectures
+%ifarch %{arm} s390x aarch64
+ sed -i 's|^\(#define CODE_USE_SIMD_INSTRUCTIONS_EXPLICITLY\)|//\1|'
src/auryn/auryn_definitions.h
+%endif
popd
%if %{with mpich}
- cp -a %{name}-%{version} %{name}-%{version}-mpich
+ cp -a %{name}-%{_version} %{name}-%{_version}-mpich
%endif # mpich
%if %{with openmpi}
- cp -a %{name}-%{version} %{name}-%{version}-openmpi
+ cp -a %{name}-%{_version} %{name}-%{_version}-openmpi
%endif # openmpi
@@ -111,10 +124,15 @@ popd
#
https://cmake.org/cmake/help/latest/variable/CMAKE_FIND_NO_INSTALL_PREFIX...
%global do_cmake_config %{expand: \
echo
-echo "*** BUILDING %{name}-%{version}$MPI_COMPILE_TYPE ***"
+echo "*** BUILDING %{name}-%{_version}$MPI_COMPILE_TYPE ***"
echo
%set_build_flags
-pushd %{name}-%{version}$MPI_COMPILE_TYPE &&
+# Vector intrinsics for powerpc
+%ifarch %{power64}
+ export CXXFLAGS="$CXXFLAGS -DNO_WARN_X86_INTRINSICS"
+ export CFLAGS="$CFLAGS -DNO_WARN_X86_INTRINSICS"
+%endif
+pushd %{name}-%{_version}$MPI_COMPILE_TYPE &&
cmake . \\\
-DCMAKE_FIND_NO_INSTALL_PREFIX:BOOL=TRUE \\\
-DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
@@ -137,14 +155,14 @@ popd || exit -1;
}
%global do_make_build %{expand: \
- make %{?_smp_mflags} -C %{name}-%{version}$MPI_COMPILE_TYPE || exit -1
+ make %{?_smp_mflags} -C %{name}-%{_version}$MPI_COMPILE_TYPE || exit -1
}
-%if %{with doc}
+%if %{with dev_doc}
# Does not permit non MPI versions
# Only build docs
-pushd %{name}-%{version}/doc
+pushd %{name}-%{_version}/doc
doxygen Doxyfile
popd
%endif
@@ -172,9 +190,9 @@ export MPI_COMPILE_TYPE="-openmpi"
%install
%global do_install %{expand:
echo
-echo "*** INSTALLING %{name}-%{version}$MPI_COMPILE_TYPE ***"
+echo "*** INSTALLING %{name}-%{_version}$MPI_COMPILE_TYPE ***"
echo
- make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" CPPROG="cp
-p" -C %{name}-%{version}$MPI_COMPILE_TYPE || exit -1
+ make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" CPPROG="cp
-p" -C %{name}-%{_version}$MPI_COMPILE_TYPE || exit -1
# Add suffix
pushd $RPM_BUILD_ROOT/$MPI_BIN/
@@ -207,9 +225,9 @@ export MPI_COMPILE_TYPE="-openmpi"
%check
%global do_tests %{expand:
echo
-echo "*** TESTING %{name}-%{version}$MPI_COMPILE_TYPE ***"
+echo "*** TESTING %{name}-%{_version}$MPI_COMPILE_TYPE ***"
echo
- pushd %{name}-%{version}$MPI_COMPILE_TYPE/test
+ pushd %{name}-%{_version}$MPI_COMPILE_TYPE/test
./run_unit_tests.sh || exit -1
popd
}
@@ -230,39 +248,45 @@ export MPI_COMPILE_TYPE="-openmpi"
%if %{with doc}
%files doc
-%license %{name}-%{version}/COPYING
-%doc %{name}-%{version}/AUTHORS %{name}-%{version}/README.md
-%doc %{name}-%{version}/doc/html/ %{name}-%{version}/examples/
-%endif
+%license %{name}-%{_version}/COPYING
+%doc %{name}-%{_version}/AUTHORS
+%doc %{name}-%{_version}/README.md
+%doc %{name}-%{_version}/examples/
+%if %{with dev_doc}
+%doc %{name}-%{_version}/doc/html/
+%endif # dev_doc
+%endif # doc
%if %{with mpich}
%files mpich
-%license %{name}-%{version}/COPYING
+%license %{name}-%{_version}/COPYING
%{_libdir}/mpich/bin/aube_mpich
%{_libdir}/mpich/bin/aubs_mpich
%files mpich-devel
-%license %{name}-%{version}/COPYING
%{_libdir}/mpich/include/%{name}
%{_libdir}/mpich/include/%{name}.h
%{_libdir}/mpich/lib/libauryn.a
-
%endif # mpich
%if %{with openmpi}
%files openmpi
-%license %{name}-%{version}/COPYING
+%license %{name}-%{_version}/COPYING
%{_libdir}/openmpi/bin/aube_openmpi
%{_libdir}/openmpi/bin/aubs_openmpi
%files openmpi-devel
-%license %{name}-%{version}/COPYING
%{_libdir}/openmpi/include/%{name}
%{_libdir}/openmpi/include/%{name}.h
%{_libdir}/openmpi/lib/libauryn.a
%endif # openmpi
%changelog
+* Tue Feb 19 2019 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.8.2-1
+- Update to latest upstream release that fixes build on all arches
+- Make required arch specific changes
+- Temporarily disable dev doc generation which crashes on aarch64
+
* Sat Feb 16 2019 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.8.1-3
- Make doc package noarch
diff --git a/sources b/sources
index 4679bad..e45acb9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (auryn-0.8.1.tar.gz) =
473624ab277ad34427a55fa72ad6d9243185a5e7f4123c00f22bcfeb1bc75f9393cf1e25a178743fbdeb6c968d2a229a5e6473b6259e022992f9e61c1778c182
+SHA512 (auryn-0.8.2.tar.gz) =
73cfe808c7ae39a30ace8e2c8b5694ca04dbacd125641493bee74d2991d47c45e2fc212062c84c0dfd6f5f557ba60b5aa51b421444cec2554fd7575869ea9887
commit 145dc03545e3f5582d4b59239534cec4cb78dbbb
Author: Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur(a)gmail.com>
Date: Sun Feb 17 13:29:11 2019 +0000
initial import
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8bd40c5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/auryn-0.8.1.tar.gz
diff --git a/auryn.spec b/auryn.spec
new file mode 100644
index 0000000..f8ec194
--- /dev/null
+++ b/auryn.spec
@@ -0,0 +1,273 @@
+# Upstream only provides static libraries
+#
https://github.com/fzenke/auryn/issues/4
+
+# Switch them off if you want
+# Best to start with the serial version
+%bcond_without mpich
+%bcond_without openmpi
+
+%bcond_without doc
+
+%bcond_without tests
+
+Name: auryn
+Version: 0.8.1
+Release: 3%{?dist}
+Summary: Plastic Recurrent Network Simulator
+
+License: GPLv3
+URL:
http://www.fzenke.net/auryn/
+Source0:
https://github.com/fzenke/%{name}/archive/v%{version}/%{name}-%{version}....
+
+BuildRequires: boost-devel
+BuildRequires: cmake
+BuildRequires: gcc-c++
+
+%description
+Auryn is a source package used to create highly specialized and optimized code
+to simulate recurrent spiking neural networks with spike timing dependent
+plasticity (STDP)
+
+%if %{with doc}
+%package doc
+Summary: Documentation for %{name}
+BuildRequires: doxygen
+BuildRequires: /usr/bin/dot
+BuildArch: noarch
+
+
+%description doc
+This package contains the doxygen generated documentation for %{name}
+%endif
+
+
+%if %{with mpich}
+%package mpich
+Summary: %{name} built with mpich
+BuildRequires: mpich-devel
+BuildRequires: boost-mpich-devel
+BuildRequires: boost-mpich
+BuildRequires: rpm-mpi-hooks
+Requires: mpich
+
+%description mpich
+%{description}
+
+%package mpich-devel
+Summary: Development files for %{name}-mpich
+Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
+Provides: %{name}-mpich-static = %{version}-%{release}
+
+%description mpich-devel
+The %{name}-mpich-devel package contains libraries and header files for
+developing applications that use %{name}-mpich.
+
+%endif # mpich
+
+%if %{with openmpi}
+%package openmpi
+Summary: %{name} built with openmpi
+BuildRequires: openmpi-devel
+BuildRequires: boost-openmpi-devel
+BuildRequires: boost-openmpi
+BuildRequires: rpm-mpi-hooks
+Requires: openmpi
+
+%description openmpi
+%{description}
+
+%package openmpi-devel
+Summary: Development files for %{name}-openmpi
+Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
+Provides: %{name}-openmpi-static = %{version}-%{release}
+
+%description openmpi-devel
+The %{name}-openmpi-devel package contains libraries and header files for
+developing applications that use %{name}-openmpi.
+
+%endif # openmpi
+
+%prep
+%autosetup -c -n %{name}-%{version}
+
+# Tweaks for all versions
+pushd %{name}-%{version}
+ # Don't let it set its own optimisation flags
+ sed -i '/SET(CMAKE_CXX_FLAGS/ d' CMakeLists.txt
+ sed -i '/^BUILDDIR/ d' test/*.sh
+ sed -i 's|^.BUILDDIR/test/||' test/*.sh
+popd
+
+%if %{with mpich}
+ cp -a %{name}-%{version} %{name}-%{version}-mpich
+%endif # mpich
+
+%if %{with openmpi}
+ cp -a %{name}-%{version} %{name}-%{version}-openmpi
+%endif # openmpi
+
+
+%build
+#
https://cmake.org/cmake/help/latest/variable/CMAKE_FIND_NO_INSTALL_PREFIX...
+%global do_cmake_config %{expand: \
+echo
+echo "*** BUILDING %{name}-%{version}$MPI_COMPILE_TYPE ***"
+echo
+%set_build_flags
+pushd %{name}-%{version}$MPI_COMPILE_TYPE &&
+ cmake . \\\
+ -DCMAKE_FIND_NO_INSTALL_PREFIX:BOOL=TRUE \\\
+ -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
+ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \\\
+ -DCMAKE_INSTALL_PREFIX:PATH="$MPI_HOME" \\\
+ -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \\\
+ -DLIB_INSTALL_DIR:PATH=%{_libdir} \\\
+ -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\
+ -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\
+ -DCMAKE_SKIP_RPATH:BOOL=ON \\\
+ -DBUILD_SHARED_LIBS:BOOL=ON \\\
+%if "%{_lib}" == "lib64"
+ -DLIB_SUFFIX=64 &&
+%else
+ -DLIB_SUFFIX="" &&
+%endif
+popd || exit -1;
+}
+
+%global do_make_build %{expand: \
+ make %{?_smp_mflags} -C %{name}-%{version}$MPI_COMPILE_TYPE || exit -1
+}
+
+
+%if %{with doc}
+# Does not permit non MPI versions
+# Only build docs
+pushd %{name}-%{version}/doc
+ doxygen Doxyfile
+popd
+%endif
+
+# Build mpich version
+%if %{with mpich}
+%{_mpich_load}
+export MPI_COMPILE_TYPE="-mpich"
+%{do_cmake_config}
+%{do_make_build}
+
+%{_mpich_unload}
+%endif # mpich
+
+# Build OpenMPI version
+%if %{with openmpi}
+%{_openmpi_load}
+export MPI_COMPILE_TYPE="-openmpi"
+%{do_cmake_config}
+%{do_make_build}
+
+%{_openmpi_unload}
+%endif # openmpi
+
+%install
+%global do_install %{expand:
+echo
+echo "*** INSTALLING %{name}-%{version}$MPI_COMPILE_TYPE ***"
+echo
+ make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" CPPROG="cp
-p" -C %{name}-%{version}$MPI_COMPILE_TYPE || exit -1
+
+ # Add suffix
+ pushd $RPM_BUILD_ROOT/$MPI_BIN/
+ mv -v aube{,$MPI_SUFFIX}
+ mv -v aubs{,$MPI_SUFFIX}
+ popd
+}
+
+# No serial version, skip
+
+# Install MPICH version
+%if %{with mpich}
+%{_mpich_load}
+export MPI_COMPILE_TYPE="-mpich"
+%{do_install}
+
+%{_mpich_unload}
+%endif # mpich
+
+# Install OpenMPI version
+%if %{with openmpi}
+%{_openmpi_load}
+export MPI_COMPILE_TYPE="-openmpi"
+%{do_install}
+
+%{_openmpi_unload}
+%endif # openmpi
+
+%if %{with tests}
+%check
+%global do_tests %{expand:
+echo
+echo "*** TESTING %{name}-%{version}$MPI_COMPILE_TYPE ***"
+echo
+ pushd %{name}-%{version}$MPI_COMPILE_TYPE/test
+ ./run_unit_tests.sh || exit -1
+ popd
+}
+
+%if %{with mpich}
+%{_mpich_load}
+export MPI_COMPILE_TYPE="-mpich"
+%{do_tests}
+%endif # mpich
+
+%if %{with openmpi}
+%{_openmpi_load}
+export MPI_COMPILE_TYPE="-openmpi"
+%{do_tests}
+%endif # openmpi
+
+%endif # tests
+
+%if %{with doc}
+%files doc
+%license %{name}-%{version}/COPYING
+%doc %{name}-%{version}/AUTHORS %{name}-%{version}/README.md
+%doc %{name}-%{version}/doc/html/ %{name}-%{version}/examples/
+%endif
+
+%if %{with mpich}
+%files mpich
+%license %{name}-%{version}/COPYING
+%{_libdir}/mpich/bin/aube_mpich
+%{_libdir}/mpich/bin/aubs_mpich
+
+%files mpich-devel
+%license %{name}-%{version}/COPYING
+%{_libdir}/mpich/include/%{name}
+%{_libdir}/mpich/include/%{name}.h
+%{_libdir}/mpich/lib/libauryn.a
+
+%endif # mpich
+
+%if %{with openmpi}
+%files openmpi
+%license %{name}-%{version}/COPYING
+%{_libdir}/openmpi/bin/aube_openmpi
+%{_libdir}/openmpi/bin/aubs_openmpi
+
+%files openmpi-devel
+%license %{name}-%{version}/COPYING
+%{_libdir}/openmpi/include/%{name}
+%{_libdir}/openmpi/include/%{name}.h
+%{_libdir}/openmpi/lib/libauryn.a
+%endif # openmpi
+
+%changelog
+* Sat Feb 16 2019 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.8.1-3
+- Make doc package noarch
+
+* Thu Jan 31 2019 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.8.1-2
+- Enable unit tests
+
+* Wed Jan 30 2019 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.8.1-1
+- Initial build
diff --git a/sources b/sources
new file mode 100644
index 0000000..4679bad
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (auryn-0.8.1.tar.gz) =
473624ab277ad34427a55fa72ad6d9243185a5e7f4123c00f22bcfeb1bc75f9393cf1e25a178743fbdeb6c968d2a229a5e6473b6259e022992f9e61c1778c182