Spec URL: http://www.ratml.org/misc/ensmallen.spec SRPM URL: http://www.ratml.org/misc/ensmallen-1.14.2-1.fc30.src.rpm Description: ensmallen is a header-only C++ library for efficient mathematical optimization. It provides a simple set of abstractions for writing an objective function to optimize. It also provides a large set of standard and cutting-edge optimizers that can be used for virtually any mathematical optimization task. These include full-batch gradient descent techniques, small-batch techniques, gradient-free optimizers, and constrained optimization. Fedora Account System Username: rcurtin This is being packaged as a new dependency of mlpack (it used to be a part of mlpack, now it is standalone). Once this is approved and merged, I'll be able to update mlpack in Fedora/RHEL to its latest version. If there are any issues I'll get them handled quickly. Thanks!
- The URL and Source look like they can use https://. - rm -rf $RPM_BUILD_ROOT should be removed - You do not need to install LICENSE.txt manually; just list it as a relative path and it will be installed for you. - Summary should not end in a period. - If you've built the tests, why not run them in %check? - %changelog is missing version-release - This fails to build for me due to missing armadillo; why is it not in BuildRequires also? (I don't think a new enough armadillo is packaged in Fedora, though.)
Hi Elliott, Thanks so much for your quick review. I handled each of the issues you pointed out and updated https://www.ratml.org/misc/ensmallen.spec and https://www.ratml.org/misc/ensmallen-1.14.2-1.fc30.src.rpm. > - The URL and Source look like they can use https://. Yeah, you're right, fixed. > - rm -rf $RPM_BUILD_ROOT should be removed Oops, didn't realize this was unnecessary. Gone now. > - You do not need to install LICENSE.txt manually; just list it as a relative path and it will be installed for you. Ah, nice! I didn't know that. Thanks. > - Summary should not end in a period. Fixed. > - If you've built the tests, why not run them in %check? Good point, they run in %check now. > - %changelog is missing version-release Oops, simple oversight. Fixed now. > - This fails to build for me due to missing armadillo; why is it not in BuildRequires also? (I don't think a new enough armadillo is packaged in Fedora, though.) Ah, yeah, you're right, Armadillo should be `BuildRequires` also. It is now, and the versions in Fedora should be new enough that it isn't a problem (6.500.0 or newer is necessary, and that was quite a while ago now). Let me know if you see any other issues and I'll get them handled. Thanks again! Ryan
Putting %package and %description all the way at the end there is a bit odd; it's usually before %prep. Unfortunately, the tests segfault for me: + ./ensmallen_tests ensmallen version: 1.14.2 (Difficult Crimp) armadillo version: 9.400.3 (Surrogate Miscreant) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ensmallen_tests is a Catch v2.4.1 host application. Run with -? for options ------------------------------------------------------------------------------- SmallLovaszThetaSdp ------------------------------------------------------------------------------- /builddir/build/BUILD/ensmallen-1.14.2/tests/sdp_primal_dual_test.cpp:286 ............................................................................... /builddir/build/BUILD/ensmallen-1.14.2/tests/sdp_primal_dual_test.cpp:286: FAILED: due to a fatal error condition: SIGSEGV - Segmentation violation signal =============================================================================== test cases: 102 | 101 passed | 1 failed assertions: 5732 | 5731 passed | 1 failed BUILDSTDERR: /var/tmp/rpm-tmp.xRlIat: line 31: 628 Segmentation fault (core dumped) ./ensmallen_tests
Hi Elliott, I spent a while working with it but I can't reproduce the segfault at all (I ran with tons of different random seeds). Do you think we should then just ignore running the tests in this case?
I should add, since ensmallen is header-only, the tests are primarily of importance for ensuring everything compiles. They are also tests of the internal optimizers, but given that during development the issue you see hasn't been encountered at all, I'm not sure we can effectively resolve it at the packaging level. We could report it upstream (although I am part of upstream :)) but I have no idea how long it will take to even reproduce, and I don't know if it makes sense to hold up adding the package on that. (Especially since adding ensmallen is a dependency for new versions of mlpack, so mlpack can't be updated until then.) Let me know what you think, and thanks again for your time. :)
Here is the backtrace if it's helpful? It looks like something is going wrong in armadillo though. #0 0x000055555564ebb4 in arma::Mat<double>::~Mat (this=0x1, __in_chrg=<optimized out>) at /usr/include/armadillo_bits/Mat_meat.hpp:23 #1 0x000055555574a594 in arma::auxlib::chol_band_common<double> (layout=<optimized out>, KD=<optimized out>, X=...) at /usr/include/bits/string_fortified.h:34 #2 arma::auxlib::chol_band<double> (layout=<optimized out>, KD=<optimized out>, X=...) at /usr/include/armadillo_bits/auxlib_meat.hpp:2008 #3 arma::op_chol::apply_direct<arma::Mat<double> > (A_expr=..., layout=<optimized out>, out=...) at /usr/include/armadillo_bits/op_chol_meat.hpp:72 #4 arma::op_chol::apply_direct<arma::Mat<double> > (layout=<optimized out>, A_expr=..., out=...) at /usr/include/armadillo_bits/op_chol_meat.hpp:43 #5 arma::chol<arma::Mat<double> > (out=..., X=..., layout=layout@entry=0x55555578b6e4 "lower") at /usr/include/armadillo_bits/fn_chol.hpp:59 #6 0x000055555573ae70 in ens::Alpha (A=..., dA=..., tau=0.98999999999999999, alpha=@0x7fffffffb900: 4.9406564584124654e-323) at /builddir/build/BUILD/ensmallen-1.14.2/include/ensmallen_bits/sdp/primal_dual_impl.hpp:127 #7 0x0000555555760ae6 in ens::PrimalDualSolver<ens::SDP<arma::Mat<double> > >::Optimize (this=this@entry=0x7fffffffd620, X=..., ysparse=..., ydense=..., Z=...) at /usr/include/armadillo_bits/Glue_meat.hpp:47 #8 0x000055555573f9df in ____C_A_T_C_H____T_E_S_T____2 () at /builddir/build/BUILD/ensmallen-1.14.2/tests/sdp_primal_dual_test.cpp:296 #9 0x00005555555ee1f7 in Catch::TestCase::invoke (this=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1020 #10 Catch::RunContext::invokeActiveTestCase (this=0x7fffffffe0c0) at /builddir/build/BUILD/ensmallen-1.14.2/tests/catch.hpp:9745 #11 0x0000555555601c7f in Catch::RunContext::runCurrentTest (this=0x7fffffffe0c0, redirectedCout="", redirectedCerr="") at /builddir/build/BUILD/ensmallen-1.14.2/tests/catch.hpp:9719 #12 0x0000555555612280 in Catch::RunContext::runTest (this=0x7fffffffe0c0, testCase=...) at /builddir/build/BUILD/ensmallen-1.14.2/tests/catch.hpp:9495 #13 0x00005555556167de in Catch::(anonymous namespace)::runTests (config=std::shared_ptr<Catch::Config> (use count 4, weak count 0) = {...}) at /builddir/build/BUILD/ensmallen-1.14.2/tests/catch.hpp:10035 #14 Catch::Session::runInternal (this=0x7fffffffe320) at /builddir/build/BUILD/ensmallen-1.14.2/tests/catch.hpp:10236 #15 0x0000555555616c6f in Catch::Session::run (this=0x7fffffffe320) at /builddir/build/BUILD/ensmallen-1.14.2/tests/catch.hpp:10193 #16 0x00005555555e0ddb in Catch::Session::run (argv=0x7fffffffe598, argc=1, this=0x7fffffffe320) at /builddir/build/BUILD/ensmallen-1.14.2/tests/catch.hpp:10161 #17 Catch::Session::run (argv=0x7fffffffe598, argc=1, this=0x7fffffffe320) at /builddir/build/BUILD/ensmallen-1.14.2/tests/catch.hpp:10156 #18 main (argc=1, argv=0x7fffffffe598) at /builddir/build/BUILD/ensmallen-1.14.2/tests/main.cpp:33 What versions of everything do you get? Is one of us outdated somewhere? Dependencies resolved. ====================================================================================================================================================== Package Architecture Version Repository Size ====================================================================================================================================================== Installing: armadillo-devel x86_64 9.400.3-1.fc31 fedora 1.4 M cmake x86_64 3.14.4-1.fc31 fedora 8.9 M gcc-c++ x86_64 9.1.1-1.fc31 fedora 12 M Installing dependencies: SuperLU x86_64 5.2.1-6.fc30 fedora 169 k SuperLU-devel x86_64 5.2.1-6.fc30 fedora 23 k annobin x86_64 8.76-1.fc31 fedora 180 k armadillo x86_64 9.400.3-1.fc31 fedora 26 k arpack x86_64 3.5.0-6.fc28 fedora 195 k arpack-devel x86_64 3.5.0-6.fc28 fedora 12 k atlas x86_64 3.10.3-8.fc30 fedora 6.3 M atlas-devel x86_64 3.10.3-8.fc30 fedora 1.5 M blas x86_64 3.8.0-11.fc30 fedora 415 k blas-devel x86_64 3.8.0-11.fc30 fedora 15 k cmake-data noarch 3.14.4-1.fc31 fedora 1.4 M cmake-filesystem x86_64 3.14.4-1.fc31 fedora 16 k cmake-rpm-macros noarch 3.14.4-1.fc31 fedora 15 k cpp x86_64 9.1.1-1.fc31 fedora 9.8 M emacs-filesystem noarch 1:26.2-1.fc31 fedora 9.8 k gcc x86_64 9.1.1-1.fc31 fedora 23 M gcc-gfortran x86_64 9.1.1-1.fc31 fedora 11 M gdbm-libs x86_64 1:1.18-4.fc30 fedora 50 k glibc-devel x86_64 2.29.9000-19.fc31 fedora 1.0 M glibc-headers x86_64 2.29.9000-19.fc31 fedora 487 k hdf5 x86_64 1.10.5-2.fc31 fedora 2.1 M hdf5-devel x86_64 1.10.5-2.fc31 fedora 1.1 M isl x86_64 0.16.1-8.fc30 fedora 796 k jsoncpp x86_64 1.8.4-6.fc30 fedora 86 k kernel-headers x86_64 5.1.0-1.fc31 fedora 1.2 M lapack x86_64 3.8.0-11.fc30 fedora 8.5 M lapack-devel x86_64 3.8.0-11.fc30 fedora 78 k libaec x86_64 1.0.4-1.fc30 fedora 35 k libaec-devel x86_64 1.0.4-1.fc30 fedora 11 k libgfortran x86_64 9.1.1-1.fc31 fedora 705 k libgomp x86_64 9.1.1-1.fc31 fedora 223 k libmpc x86_64 1.1.0-3.fc30 fedora 56 k libquadmath x86_64 9.1.1-1.fc31 fedora 194 k libquadmath-devel x86_64 9.1.1-1.fc31 fedora 36 k libstdc++-devel x86_64 9.1.1-1.fc31 fedora 2.1 M libuv x86_64 1:1.29.0-1.fc31 fedora 135 k libxcrypt-devel x86_64 4.4.6-1.fc31 fedora 35 k openblas x86_64 0.3.6-1.fc31 fedora 29 k openblas-devel x86_64 0.3.6-1.fc31 fedora 88 k openblas-openmp x86_64 0.3.6-1.fc31 fedora 4.9 M openblas-openmp64 x86_64 0.3.6-1.fc31 fedora 4.8 M openblas-openmp64_ x86_64 0.3.6-1.fc31 fedora 4.8 M openblas-serial x86_64 0.3.6-1.fc31 fedora 4.8 M openblas-serial64 x86_64 0.3.6-1.fc31 fedora 4.7 M openblas-serial64_ x86_64 0.3.6-1.fc31 fedora 4.7 M openblas-threads x86_64 0.3.6-1.fc31 fedora 4.9 M openblas-threads64 x86_64 0.3.6-1.fc31 fedora 4.8 M openblas-threads64_ x86_64 0.3.6-1.fc31 fedora 4.8 M python-pip-wheel noarch 19.1-1.fc31 fedora 1.1 M python-setuptools-wheel noarch 41.0.1-1.fc31 fedora 279 k python3 x86_64 3.7.3-3.fc31 fedora 38 k python3-libs x86_64 3.7.3-3.fc31 fedora 7.9 M rhash x86_64 1.3.8-1.fc30 fedora 168 k sqlite-libs x86_64 3.28.0-1.fc31 fedora 563 k zlib-devel x86_64 1.2.11-15.fc30 fedora 46 k
I tried reproducing the issue in an fc31 docker container by running the tests over and over with different random seeds, but I wasn't able to reproduce it at all. It does look like a lower-level Armadillo bug perhaps, but even if I wanted to figure out what was going on and submit a patch I can't make heads or tails of the actual issue. What do you think? The package builds and tests successfully on my system (and the multiple Docker images I tested), so I don't know if it's worth digging into (unless I can reproduce it, which I currently can't).
Well, unfortunately, it doesn't work on either Rawhide or F30 in koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=35079859 https://koji.fedoraproject.org/koji/taskinfo?taskID=35080468 which is where you'll have to build it... Only failing on x86_64 is suspicious though, and looks a bit familiar. This may be an OpenBLAS (or something linking to it) bug.
It took a while but I determined that the CXXFLAGS used by the %cmake macro cause the problem. Specifically, the -D_FORTIFY_SOURCE option causes the segfault. In any case, since ensmallen is not actually distributing that code and since the bug lies in some lower level library, I simply rewrote the spec to not use that particular flag. http://www.ratml.org/misc/ensmallen.spec http://www.ratml.org/misc/ensmallen-1.15.1-1.fc31.src.rpm (I also updated the version.)
That indicates a real error: https://access.redhat.com/blogs/766093/posts/1976213 Please report a bug for it. Instead of disabling all the flags (and then possibly forgetting to re-enable them), I would skip the broken test instead by running: ./ensmallen_tests ~SmallLovaszThetaSdp
Ah, good point, disabling the SmallLovaszThetaSdp test is the better way to go. I'll try to keep digging and report a bug to the right place. The spec and SRPM are updated now; let me know what you think: http://www.ratml.org/misc/ensmallen.spec http://www.ratml.org/misc/ensmallen-1.15.1-1.fc31.src.rpm Thanks again for your review and help with this. :)
Your spec and srpm are not in sync; be sure to use the right one when you import it. Approved. Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: If your application is a C or C++ application you must list a BuildRequires against gcc, gcc-c++ or clang. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated", "BSD 3-clause "New" or "Revised" License", "Boost Software License BSL BSD 3-clause "New" or "Revised" License", "*No copyright* BSL". 253 files have unknown license. Detailed output of licensecheck in 1706659-ensmallen/licensecheck.txt [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [-]: Package contains desktop file if it is a GUI application. [x]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [?]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. [x]: Package requires other packages for directories it uses. [x]: Package must own all directories that it creates. [x]: Package does not own files or directories owned by other packages. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package must not depend on deprecated() packages. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [-]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane (see attachments). [?]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [?]: Package should compile and build into binary rpms on all supported architectures. [x]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [!]: Spec file according to URL is the same as in SRPM. Note: Spec file as given by url is not the same as in SRPM (see attached diff). See: (this test has no URL) [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. Rpmlint ------- Checking: ensmallen-devel-1.15.1-1.fc31.x86_64.rpm ensmallen-1.15.1-1.fc31.src.rpm ensmallen-devel.x86_64: W: spelling-error %description -l en_US optimizers -> optimizer, optimizes, optimize rs ensmallen-devel.x86_64: W: no-documentation ensmallen.src: W: spelling-error %description -l en_US optimizers -> optimizer, optimizes, optimize rs ensmallen.src:34: W: macro-in-comment %{_prefix} ensmallen.src:35: W: macro-in-comment %{_includedir} ensmallen.src:36: W: macro-in-comment %{_libdir} ensmallen.src:37: W: macro-in-comment %{_sysconfdir} ensmallen.src:38: W: macro-in-comment %{_datadir} ensmallen.src:11: W: mixed-use-of-spaces-and-tabs (spaces: line 1, tab: line 11) 2 packages and 0 specfiles checked; 0 errors, 9 warnings. Rpmlint (installed packages) ---------------------------- ensmallen-devel.x86_64: W: spelling-error %description -l en_US optimizers -> optimizer, optimizes, optimize rs ensmallen-devel.x86_64: W: invalid-url URL: https://www.ensmallen.org <urlopen error [Errno -2] Name or service not known> ensmallen-devel.x86_64: W: no-documentation 1 packages and 0 specfiles checked; 0 errors, 3 warnings. Source checksums ---------------- https://www.ensmallen.org/files/ensmallen-1.15.1.tar.gz : CHECKSUM(SHA256) this package : e597a7d488b59add432dba7e8a3911eddbbce30ab665e9e3fc0541466245997a CHECKSUM(SHA256) upstream package : e597a7d488b59add432dba7e8a3911eddbbce30ab665e9e3fc0541466245997a Requires -------- ensmallen-devel (rpmlib, GLIBC filtered): Provides -------- ensmallen-devel: ensmallen-devel ensmallen-devel(x86-64) ensmallen-static Diff spec file in url and in SRPM --------------------------------- --- review/1706659-ensmallen/srpm/ensmallen.spec 2019-06-05 23:45:39.137176086 -0400 +++ review/1706659-ensmallen/srpm-unpacked/ensmallen.spec 2019-06-04 19:19:00.000000000 -0400 @@ -29,5 +29,12 @@ %build +# Don't use the usual RPM-based CXXFLAGS because they cause a segfault in the +# tests (at a lower level than ensmallen). %cmake +# -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ +# -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \ +# -DLIB_INSTALL_DIR:PATH=%{_libdir} \ +# -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \ +# -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} . # Technically we don't need to build anything but it's a good sanity check to @@ -39,6 +46,4 @@ %check -# Disable the SmallLovaszThetaSdp test---it exposes a bug in one of ensmallen's -# dependencies. ./ensmallen_tests ~SmallLovaszThetaSdp Generated by fedora-review 0.7.2 (65d36bb) last change: 2019-04-09 Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -b 1706659 Buildroot used: fedora-rawhide-x86_64 Active plugins: C/C++, Generic, Shell-api Disabled plugins: Perl, R, PHP, fonts, Haskell, Python, SugarActivity, Java, Ocaml Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH
Thanks! And you're right, I did change the spec file after building the SRPM, but in this case I only changed comments. Sorry for any confusion. Does anything else need to be done by me here? And thanks again.
No, it's approved already.
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/ensmallen
FEDORA-2019-e5d4aeaacc has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-e5d4aeaacc
FEDORA-2019-b5dbfb1cb5 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-b5dbfb1cb5
FEDORA-EPEL-2019-96c517757d has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-96c517757d
ensmallen-1.15.1-1.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-e5d4aeaacc
ensmallen-1.15.1-1.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-96c517757d
ensmallen-1.15.1-1.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-b5dbfb1cb5
ensmallen-1.15.1-1.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.
ensmallen-1.15.1-1.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.
ensmallen-1.15.1-1.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.
Everything's stable now; can't we close this?
Oh, definitely, I just forgot to. Thank you again for your help!