Bug 1389016
Summary: | Review Request: libxsmm - Library for small matrix-matrix multiplications on Intel x86_64 (e.g. for cp2k) | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Dave Love <dave.love> |
Component: | Package Review | Assignee: | Antonio T. (sagitter) <anto.trande> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | anto.trande, hans.pabst, orion, package-review, rc040203 |
Target Milestone: | --- | Flags: | anto.trande:
fedora-review+
|
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2016-12-23 12:19:40 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Dave Love
2016-10-26 16:37:57 UTC
If you can 'numcosmo' is ready for reviewing: https://bugzilla.redhat.com/show_bug.cgi?id=1387927 Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - Default compiler flags are not honored. - doc sub-package does not provide any license. - libxsmm-debuginfo.x86_64: E: debuginfo-without-sources - libxsmm 1.5.1 is available - W: mixed-use-of-spaces-and-tabs - OMP support is disabled, but libs are linked to libgomp anyway. Can unused-direct-shlib-dependency warnings be silenced? ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: Header files in -devel subpackage, if present. [x]: ldconfig called in %post and %postun if required. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. [x]: Development (unversioned) .so files in -devel subpackage, if present. 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. [ ]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "BSD (3 clause)", "Unknown or generated". 57 files have unknown license. Detailed output of licensecheck in /home/sagitter/1389016-libxsmm/licensecheck.txt [!]: License file installed when any subpackage combination is installed. [!]: %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. [x]: 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. [!]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 61440 bytes in 1 files. [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 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]: 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). [x]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libxsmm- doc , libxsmm-debuginfo [ ]: Package functions as described. [!]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [x]: Scriptlets must be sane, if used. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [?]: %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]: Uses parallel make %{?_smp_mflags} macro. [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Package should compile and build into binary rpms on all supported architectures. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on debuginfo package(s). Note: There are rpmlint messages (see attachment). [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. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: libxsmm-1.5-4.fc26.x86_64.rpm libxsmm-devel-1.5-4.fc26.x86_64.rpm libxsmm-doc-1.5-4.fc26.noarch.rpm libxsmm-debuginfo-1.5-4.fc26.x86_64.rpm libxsmm-1.5-4.fc26.src.rpm libxsmm.x86_64: W: spelling-error %description -l en_US coprocessors -> co processors, co-processors, microprocessors libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmmgen.so.1.5 exit.5 libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmm.so.1.5 exit.5 libxsmm.x86_64: W: no-documentation libxsmm-devel.x86_64: W: only-non-binary-in-usr-lib libxsmm-devel.x86_64: W: no-manual-page-for-binary libxsmm_gemm_generator libxsmm-debuginfo.x86_64: E: debuginfo-without-sources libxsmm.src: W: spelling-error %description -l en_US coprocessors -> co processors, co-processors, microprocessors libxsmm.src:23: W: mixed-use-of-spaces-and-tabs (spaces: line 23, tab: line 12) 5 packages and 0 specfiles checked; 1 errors, 8 warnings. Rpmlint (debuginfo) ------------------- Checking: libxsmm-debuginfo-1.5-4.fc26.x86_64.rpm libxsmm-debuginfo.x86_64: E: debuginfo-without-sources 1 packages and 0 specfiles checked; 1 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- libxsmm-devel.x86_64: W: only-non-binary-in-usr-lib libxsmm-devel.x86_64: W: no-manual-page-for-binary libxsmm_gemm_generator libxsmm-debuginfo.x86_64: E: debuginfo-without-sources libxsmm.x86_64: W: spelling-error %description -l en_US coprocessors -> co processors, co-processors, microprocessors libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmext.so.1.5 /lib64/libpthread.so.0 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmnoblas.so.1.5 /lib64/libgomp.so.1 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmnoblas.so.1.5 /lib64/libpthread.so.0 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmgen.so.1.5 /lib64/libpthread.so.0 libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmmgen.so.1.5 exit.5 libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmmf.so.1.5 dgemm_ libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmmf.so.1.5 sgemm_ libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmf.so.1.5 /lib64/libm.so.6 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmf.so.1.5 /lib64/libgcc_s.so.1 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmf.so.1.5 /lib64/libquadmath.so.0 libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmm.so.1.5 dgemm_ libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmm.so.1.5 sgemm_ libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmm.so.1.5 exit.5 libxsmm.x86_64: W: no-documentation 4 packages and 0 specfiles checked; 1 errors, 17 warnings. Requires -------- libxsmm-devel (rpmlib, GLIBC filtered): libc.so.6()(64bit) libpthread.so.0()(64bit) libxsmm(x86-64) libxsmm.so.1()(64bit) libxsmmext.so.1()(64bit) libxsmmf.so.1()(64bit) libxsmmgen.so.1()(64bit) libxsmmnoblas.so.1()(64bit) rtld(GNU_HASH) libxsmm-doc (rpmlib, GLIBC filtered): libxsmm-debuginfo (rpmlib, GLIBC filtered): libxsmm (rpmlib, GLIBC filtered): /sbin/ldconfig ld-linux-x86-64.so.2()(64bit) libc.so.6()(64bit) libdl.so.2()(64bit) libgcc_s.so.1()(64bit) libgfortran.so.3()(64bit) libgfortran.so.3(GFORTRAN_1.0)(64bit) libgomp.so.1()(64bit) libgomp.so.1(GOMP_1.0)(64bit) libgomp.so.1(GOMP_2.0)(64bit) libgomp.so.1(GOMP_4.0)(64bit) libgomp.so.1(OMP_1.0)(64bit) libm.so.6()(64bit) libpthread.so.0()(64bit) libquadmath.so.0()(64bit) librt.so.1()(64bit) libxsmm.so.1()(64bit) rtld(GNU_HASH) Provides -------- libxsmm-devel: libxsmm-devel libxsmm-devel(x86-64) libxsmm-doc: libxsmm-doc libxsmm-debuginfo: libxsmm-debuginfo libxsmm-debuginfo(x86-64) libxsmm: libxsmm libxsmm(x86-64) libxsmm.so.1()(64bit) libxsmmext.so.1()(64bit) libxsmmf.so.1()(64bit) libxsmmgen.so.1()(64bit) libxsmmnoblas.so.1()(64bit) Source checksums ---------------- https://github.com/hfp/libxsmm/archive/1.5.tar.gz#/libxsmm-1.5.tar.gz : CHECKSUM(SHA256) this package : c52568c5e0e8dc9d8fcf869a716d73598e52f71c3d83af5a4c0b3be81403b423 CHECKSUM(SHA256) upstream package : c52568c5e0e8dc9d8fcf869a716d73598e52f71c3d83af5a4c0b3be81403b423 Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02 Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -b 1389016 Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6 I was planning to package this, actually, so thanks for being here first! Please update to 1.5.1 which fixes a serious bug in 1.5: https://github.com/hfp/libxsmm/releases/tag/1.5.1 [...] fixed bug in the Fortran interface (SMM functionality), where requesting a JIT kernel never returned a suitable PROCEDURE POINTER (always NULL). I'll be happy to build cp2k with libxsmm support on x86_64 once this package approved. Please add me (FAS: rathann) to co-maintainers list if you don't mind. (In reply to Antonio Trande from comment #1) > If you can 'numcosmo' is ready for reviewing: > https://bugzilla.redhat.com/show_bug.cgi?id=1387927 That was fast! I'm not sure about reviewing something from a subject area I don't know anything about, but I'll see what I can make of it if there's no-one better qualified. (In reply to Antonio Trande from comment #2) I don't know why I didn't see these myself with fedora-review. Anyhow I'll look into the others, thanks. > - Default compiler flags are not honored. Surely that's not sensible in something like this? I could justify them in the spec file as chosen by Intel for performance. > - libxsmm 1.5.1 is available Only just (!), but thanks for spotting it -- will update. > Can unused-direct-shlib-dependency warnings be silenced? I looked into it (and probably should have noted so), and it looked as if probably not, as it seemed the linkage was intentional. I'll try to find that again, though it was in an earlier version. (In reply to Dominik 'Rathann' Mierzejewski from comment #3) > I was planning to package this, actually, so thanks for being here first! Happy to oblige -- I tried to make things findable in copr and could be persuaded to push other things there that are useful. There's at least one other cp2k add-on available now. > I'll be happy to build cp2k with libxsmm support on x86_64 once this package > approved. Please add me (FAS: rathann) to co-maintainers list if you don't > mind. Sure. Do you know if an openmp version should be used for the relevant builds of cp2k? I should have had a more thorough check, but it looked as if serial was OK. (In reply to Dave Love from comment #5) > > - Default compiler flags are not honored. > > Surely that's not sensible in something like this? No. I regret, this is a non-negotiable must. Thank you all for reviewing/maintaining this package! I was looking at Dave's work/logs since he wrapped it up as a package for the first time, and tried to "anticipate" what could be useful for his next wrap. Over time this became (but is not limited to): * Fairly generic target (by default) when building the library (SSE3) to cover a general Linux distribution i.e., critical code is CPUID dispatched. * Previously static decisions made at build time became CPUID dispatched. * Versioned .so files to adhere to standards (major, minor scheme). * Warnings during build for "sophisticated" (over-specified) build options, which could have inadvertent effects e.g. OMP=1 when building the library. However, this indirect interaction has some limits. Please do not hesitate to bring up any issue or annoyance you would like to see fixed (https://github.com/hfp/libxsmm/issues). As a side-note, the relatively sophisticated GCC build flags are mostly paranoid and present due to "good practice". Though, any critical code is either independent of the compiler used (JIT) or hand-crafted. As a (likely repeated) comment: the library (under Linux) is agnostic with respect to a specific LAPACK/BLAS implementation. Perhaps your (copr) dependence on OpenBLAS is just to trigger a presence for *some* BLAS... I wonder about the item "Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files." - to me it looks like 3 files with below 200KB in total. If you don't mind, perhaps you guys can adjust the package description (see below for convenience). This is because the functionality now covers deep learning primitives, and small JIT generated convolutions as well. --- Short description: Library targeting Intel Architecture (x86) for small, dense or sparse matrix multiplications, and small convolutions. Description: LIBXSMM is a library for small dense and small sparse matrix-matrix multiplications as well as for deep learning primitives such as small convolutions targeting Intel Architecture (x86). The library is generating code for the following instruction set extensions: Intel SSE, Intel AVX, Intel AVX2, IMCI (KNCni) for Intel Xeon Phi coprocessors ("KNC"), and Intel AVX‑512 as found in the Intel Xeon Phi processor family ("KNL") and future Intel Xeon processors. Small convolutions are currently only optimized for Intel AVX‑512. Historically the library was solely targeting the Intel Many Integrated Core Architecture "MIC") using intrinsic functions, meanwhile optimized assembly code is targeting all aforementioned instruction set extensions (static code generation), and Just‑In‑Time (JIT) code generation is targeting Intel AVX and beyond. (In reply to Hans Pabst from comment #8) > Thank you all for reviewing/maintaining this package! Apologies for not referring to it previously. I hadn't got round to making the bug report where I just have done before getting back to the review. Thanks for commenting. > I was looking at Dave's work/logs since he wrapped it up as a package for > the first time, and tried to "anticipate" what could be useful for his next > wrap. Over time this became (but is not limited to): It's likely I should have paid more attention to your changes... > * Fairly generic target (by default) when building the library (SSE3) to > cover a general Linux distribution i.e., critical code is CPUID dispatched. Unfortunately an SSE2 baseline is necessary for packaging. (There are actually AMD Barcelonas -- and older! -- still running here which don't have it, though they have a variety of sse4a.) > * Versioned .so files to adhere to standards (major, minor scheme). I don't know if it's intentional, but the .so links are the wrong way round, which causes confusion with ldconfig, and I don't think is specific to Fedora: see the patch for it in the package which I should probably have reported as well. > * Warnings during build for "sophisticated" (over-specified) build options, > which could have inadvertent effects e.g. OMP=1 when building the library. Should the options be changed, do you think? I'm still not sure whether OMP=1 is worthwhile. A problem with the build, which I've just fixed in response to what I'd missed in fedora-review, is that make install actually builds things, which meant sse3 and openmp were being used inadvertently. I haven't got round to finding out why, but have fixed it up in the spec. > However, this indirect interaction has some limits. Please do not hesitate > to bring up any issue or annoyance you would like to see fixed > (https://github.com/hfp/libxsmm/issues). As a side-note, the relatively > sophisticated GCC build flags are mostly paranoid and present due to "good > practice". Though, any critical code is either independent of the compiler > used (JIT) or hand-crafted. Thanks. I was assuming there was some highly-optimized C for which they were important -- life's too short to understand things at the level a packager probably should... > As a (likely repeated) comment: the library (under Linux) is agnostic with > respect to a specific LAPACK/BLAS implementation. Perhaps your (copr) > dependence on OpenBLAS is just to trigger a presence for *some* BLAS... Yes, but it's silly to use anything else, and the Makefile looks for openblas as far as I remember. I don't understand why rpmlint complains about the reference to dgemm (?), though. > I wonder about the item "Large documentation must go in a -doc subpackage. > Large could be size (~1MB) or number of files." - to me it looks like 3 > files with below 200KB in total. Thanks. It was meant to include the samples (which are large). Is that worthwhile? Otherwise, I agree. > If you don't mind, perhaps you guys can adjust the package description (see > below for convenience). This is because the functionality now covers deep > learning primitives, and small JIT generated convolutions as well. Fine for the description, but the summary is too long for the packaging-defined limit. (The current one says x86_64 because ix86 currently doesn't build.) How about something like Small dense or sparse matrix multiplications and convolutions for x86 I don't think the historical reference in the description is useful, but don't feel strongly about it, and I'd Anglicize a phrase or two. Thanks, and thanks to Intel for all the free software like this being made available recently, in contrast to some competitors. (Just a pity we're currently missing optimized KNL BLAS.) I'll wait for any more comments before putting up a new package. > Unfortunately an SSE2 baseline is necessary for packaging. Well, SSE2 is "nothing" wrt 64-bit since it's already part of the 64-bit ABI. > There are actually AMD Barcelonas They support SSE3; no problem! > they have a variety of sse4a. which includes SSE3. I have selected SSE3 as a baseline on purpose to not exclude such systems. > -- and older! Hmm, for systems without SSE3 you need to go back pretty far. I doubt that any of those systems run 64-bit, and if -- they are unlikely interested in LIBXSMM. More important, they value of the library goes towards zero since JIT is only supported with AVX and beyond. Also, statically generating our SMM kernels won't help either since our baseline there is SSE3 as well (inline assembly). There is some value left, but it's more on the edge of what the library aims to provide. > I'm still not sure whether OMP=1 is worthwhile. Sorry my comment might have been misleading. The library warns if you use OMP=1 since it's meant to be agnostic wrt threading runtime. The OpenMP compiler flags is automatically applied only for libxsmmext, which is meant to keep the OpenMP dependency separate. In the early times of LIBXSMM, OMP=1 (when applied) meant to use OpenMP synchronization primitives for the code registry (instead of OS-level primitives or Pthreads). The warning I was mentioning is related to the latter. > Yes, but it's silly to use anything else There OpenBLAS is the default I am looking for (just learned people would take it in any case). However, RefLAPACK/BLAS is surprisingly good (I believe for small matrices it even better than OpenBLAS). But sure, relying on OpenBLAS makes much sense. > I don't understand why rpmlint complains about the reference to dgemm (?) This is a real dependency on the ?gemm_ symbol. Anyhow, this symbol is still satisfied by any kind BLAS (OpenBLAS, RefLAPACK/BLAS, MKL, ATLAS, etc.) > It was meant to include the samples (which are large). > Is that worthwhile? No it's not worth. People who want the dev-package would typically need to copy the sample source code anyways into a writable destination. If the sample source code would not compile then (or easy to get it to) -- the impression of the library will be ruined (which is not your problem :-). > Small dense or sparse matrix multiplications and convolutions for x86 Sure go ahead! I am not on particular words e.g., this NA Digest (http://www.netlib.org/na-digest-html/16/v16n38.html; search for LIBXSMM) says: "Library for small convolutions (Machine Learning), and small dense or sparse matrix multiplications." (which leaves out the mighty x86 ;-) > Just a pity we're currently missing optimized KNL BLAS. I guess the MKL community download is somewhat inconvenient? As a side-note, LIBXSMM makes some attempt to come up with regular BLAS sizes as well (status may be here: https://github.com/hfp/libxsmm/issues/99#issuecomment-255314392). First signs are the libxsmm_gemm_omp functions and the "blkgemm" sample code. A lot of work is still left. (In reply to Hans Pabst from comment #10) > > Unfortunately an SSE2 baseline is necessary for packaging. > Well, SSE2 is "nothing" wrt 64-bit since it's already part of the 64-bit ABI. Yes, that's the point. This is a policy issue for packaging, not anything to do with practical reality for HPC. (However, there were first generation (?) opterons online here until a PSU blew recently...) > > There are actually AMD Barcelonas > They support SSE3; no problem! [Oh, I see it's included in "PNI" if I look at cpuid rather than cpuinfo.] > > I'm still not sure whether OMP=1 is worthwhile. > Sorry my comment might have been misleading. The library warns if you use > OMP=1 since it's meant to be agnostic wrt threading runtime. The OpenMP > compiler flags is automatically applied only for libxsmmext, which is meant > to keep the OpenMP dependency separate. In the early times of LIBXSMM, OMP=1 > (when applied) meant to use OpenMP synchronization primitives for the code > registry (instead of OS-level primitives or Pthreads). The warning I was > mentioning is related to the latter. > > > Yes, but it's silly to use anything else > There OpenBLAS is the default I am looking for (just learned people would > take it in any case). However, RefLAPACK/BLAS is surprisingly good (I > believe for small matrices it even better than OpenBLAS). But sure, relying > on OpenBLAS makes much sense. > > > I don't understand why rpmlint complains about the reference to dgemm (?) > This is a real dependency on the ?gemm_ symbol. Anyhow, this symbol is still > satisfied by any kind BLAS (OpenBLAS, RefLAPACK/BLAS, MKL, ATLAS, etc.) Yes, I just couldn't see why the warning was emitted when the blas is linked. > > It was meant to include the samples (which are large). > > Is that worthwhile? > No it's not worth. People who want the dev-package would typically need to > copy the sample source code anyways into a writable destination. If the > sample source code would not compile then (or easy to get it to) -- the > impression of the library will be ruined (which is not your problem :-). Examples from the distributed source are typically included in -doc rpms, or a separate -examples one, though I don't remember specific policy on that, and there's only any point if they are useful. However, I don't understand why the samples are included if they are problematic -- I'm doubtless mis-understanding. > > Small dense or sparse matrix multiplications and convolutions for x86 > Sure go ahead! I am not on particular words e.g., this NA Digest > (http://www.netlib.org/na-digest-html/16/v16n38.html; search for LIBXSMM) > says: > "Library for small convolutions (Machine Learning), and small dense or > sparse matrix multiplications." (which leaves out the mighty x86 ;-) OK. I assumed there was a desire to say "Intel" as much as possible and I only took that out of the summary to shorten it -- but slightly undo that by saying x86_64, as the packaging is specific. > > Just a pity we're currently missing optimized KNL BLAS. > I guess the MKL community download is somewhat inconvenient? It's obviously not usable for Fedora or OK for general use on a cluster. (I read the conditions, unlike most people...) > As a side-note, LIBXSMM makes some attempt to come up with regular BLAS > sizes as well (status may be here: > https://github.com/hfp/libxsmm/issues/99#issuecomment-255314392). First > signs are the libxsmm_gemm_omp functions and the "blkgemm" sample code. A > lot of work is still left. Thanks for the pointer (and the rest); I'll pass it on. A new srpm may have to wait until Monday now. > Examples from the distributed source are typically included [...] Ok, I think it was a misunderstanding again. I thought you've pre-compiled the sample code and thereby got beyond this magic 2MB barrier (hence the comment that this is not useful IMHO, etc.). Now, I remember the issue you probably tapped into: the SeisSol sample folder (samples/seissol) is rather large due to accompanying data (*.bound, *.neigh, *.orient, *.sides, *.size). If you rely on the Git clone, you get all that data. However, if you rely on the source code archive (from the release download page), this large data set is left out (due to .gitattributes). As a good compromise, the SeisSol sample always contains a script, which downloads this large data set (proxy_download_data.sh). This script downloads from the original GitHub location. Though, I had same problem with somewhat inconveniently large source code package as offered by our release page. This was a burden when these package were redistributed for certain applications. For example CP2K's installer uses https://www.cp2k.org/static/downloads/. At that URL, you can see that v1.1, v1.2, are v1.3 rather large ("burden") but later versions dropped to a reasonable size. (In reply to Hans Pabst from comment #12) > > Examples from the distributed source are typically included [...] > > Ok, I think it was a misunderstanding again. I obviously have a talent! The samples seem sufficiently large without the SeisSol stuff. I've added the samples (not built) on the assumption they are useful, with a note about modifying the make files. I don't think the extra rpmlint warnings are worth worrying about, but I can fix them if required. These should address other comments too: SRPM URL: https://loveshack.fedorapeople.org/review/libxsmm-1.5.1-1.el6.src.rpm Spec URL: https://loveshack.fedorapeople.org/review/libxsmm.spec Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - gfortran and link commands still do not use default flags. - Some minor warnings from rpmlint. - Python? BuildRequires: gcc-gfortran gcc-c++ python ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: Header files in -devel subpackage, if present. [x]: ldconfig called in %post and %postun if required. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. [x]: Development (unversioned) .so files in -devel subpackage, if present. 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: "BSD (3 clause)", "Unknown or generated". 60 files have unknown license. Detailed output of licensecheck in /home/sagitter/1389016-libxsmm/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [!]: %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. [x]: 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. [-]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 61440 bytes in 1 files. [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 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]: 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). [x]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libxsmm- doc , libxsmm-debuginfo [ ]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [x]: Scriptlets must be sane, if used. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [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]: Uses parallel make %{?_smp_mflags} macro. [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Package should compile and build into binary rpms on all supported architectures. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [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. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: libxsmm-1.5.1-1.fc26.x86_64.rpm libxsmm-devel-1.5.1-1.fc26.x86_64.rpm libxsmm-doc-1.5.1-1.fc26.noarch.rpm libxsmm-debuginfo-1.5.1-1.fc26.x86_64.rpm libxsmm-1.5.1-1.fc26.src.rpm libxsmm.x86_64: W: spelling-error %description -l en_US coprocessors -> co processors, co-processors, microprocessors libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmm.so.1.5 exit.5 libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmmgen.so.1.5 exit.5 libxsmm.x86_64: W: no-documentation libxsmm-devel.x86_64: W: only-non-binary-in-usr-lib libxsmm-devel.x86_64: W: no-manual-page-for-binary libxsmm_gemm_generator libxsmm-doc.noarch: W: spurious-executable-perm /usr/share/doc/libxsmm-doc/samples/spmdm/compile_skx libxsmm-doc.noarch: W: spurious-executable-perm /usr/share/doc/libxsmm-doc/samples/spmdm/compile_bdx libxsmm-doc.noarch: W: hidden-file-or-dir /usr/share/doc/libxsmm-doc/samples/smm/.make libxsmm-doc.noarch: E: zero-length /usr/share/doc/libxsmm-doc/samples/smm/.make libxsmm-doc.noarch: W: hidden-file-or-dir /usr/share/doc/libxsmm-doc/samples/cp2k/.make libxsmm-doc.noarch: E: zero-length /usr/share/doc/libxsmm-doc/samples/cp2k/.make libxsmm-doc.noarch: W: hidden-file-or-dir /usr/share/doc/libxsmm-doc/samples/nek/.make libxsmm-doc.noarch: E: zero-length /usr/share/doc/libxsmm-doc/samples/nek/.make libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_overfeat.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_deepbench.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/pyfr/test.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_googlenetv1.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/wrap/dgemm-test.sh /bin/bash libxsmm.src: W: spelling-error %description -l en_US coprocessors -> co processors, co-processors, microprocessors 5 packages and 0 specfiles checked; 3 errors, 17 warnings. Rpmlint (debuginfo) ------------------- Checking: libxsmm-debuginfo-1.5.1-1.fc26.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- libxsmm-devel.x86_64: W: only-non-binary-in-usr-lib libxsmm-devel.x86_64: W: no-manual-page-for-binary libxsmm_gemm_generator libxsmm-doc.noarch: W: spurious-executable-perm /usr/share/doc/libxsmm-doc/samples/spmdm/compile_bdx libxsmm-doc.noarch: W: hidden-file-or-dir /usr/share/doc/libxsmm-doc/samples/smm/.make libxsmm-doc.noarch: E: zero-length /usr/share/doc/libxsmm-doc/samples/smm/.make libxsmm-doc.noarch: W: spurious-executable-perm /usr/share/doc/libxsmm-doc/samples/spmdm/compile_skx libxsmm-doc.noarch: W: hidden-file-or-dir /usr/share/doc/libxsmm-doc/samples/nek/.make libxsmm-doc.noarch: E: zero-length /usr/share/doc/libxsmm-doc/samples/nek/.make libxsmm-doc.noarch: W: hidden-file-or-dir /usr/share/doc/libxsmm-doc/samples/cp2k/.make libxsmm-doc.noarch: E: zero-length /usr/share/doc/libxsmm-doc/samples/cp2k/.make libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_deepbench.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_googlenetv1.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_overfeat.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/pyfr/test.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/wrap/dgemm-test.sh /bin/bash libxsmm.x86_64: W: spelling-error %description -l en_US coprocessors -> co processors, co-processors, microprocessors libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmnoblas.so.1.5 /lib64/libpthread.so.0 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmext.so.1.5 /lib64/libpthread.so.0 libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmm.so.1.5 dgemm_ libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmm.so.1.5 sgemm_ libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmm.so.1.5 exit.5 libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmmf.so.1.5 dgemm_ libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmmf.so.1.5 sgemm_ libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmf.so.1.5 /lib64/libm.so.6 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmf.so.1.5 /lib64/libgcc_s.so.1 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmf.so.1.5 /lib64/libquadmath.so.0 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmgen.so.1.5 /lib64/libpthread.so.0 libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmmgen.so.1.5 exit.5 libxsmm.x86_64: W: no-documentation 4 packages and 0 specfiles checked; 3 errors, 26 warnings. Requires -------- libxsmm-devel (rpmlib, GLIBC filtered): libc.so.6()(64bit) libpthread.so.0()(64bit) libxsmm(x86-64) libxsmm.so.1()(64bit) libxsmmext.so.1()(64bit) libxsmmf.so.1()(64bit) libxsmmgen.so.1()(64bit) libxsmmnoblas.so.1()(64bit) rtld(GNU_HASH) libxsmm-doc (rpmlib, GLIBC filtered): /bin/bash /bin/sh libxsmm-debuginfo (rpmlib, GLIBC filtered): libxsmm (rpmlib, GLIBC filtered): /sbin/ldconfig ld-linux-x86-64.so.2()(64bit) libc.so.6()(64bit) libdl.so.2()(64bit) libgcc_s.so.1()(64bit) libgfortran.so.3()(64bit) libgfortran.so.3(GFORTRAN_1.0)(64bit) libm.so.6()(64bit) libpthread.so.0()(64bit) libquadmath.so.0()(64bit) librt.so.1()(64bit) libxsmm.so.1()(64bit) rtld(GNU_HASH) Provides -------- libxsmm-devel: libxsmm-devel libxsmm-devel(x86-64) libxsmm-doc: libxsmm-doc libxsmm-debuginfo: libxsmm-debuginfo libxsmm-debuginfo(x86-64) libxsmm: libxsmm libxsmm(x86-64) libxsmm.so.1()(64bit) libxsmmext.so.1()(64bit) libxsmmf.so.1()(64bit) libxsmmgen.so.1()(64bit) libxsmmnoblas.so.1()(64bit) Source checksums ---------------- https://github.com/hfp/libxsmm/archive/1.5.1.tar.gz#/libxsmm-1.5.1.tar.gz : CHECKSUM(SHA256) this package : 9e2a400e63b6fb2d4954e53536090eb8eb6f0ca25d0f34dd3a4f166802aa3d54 CHECKSUM(SHA256) upstream package : 9e2a400e63b6fb2d4954e53536090eb8eb6f0ca25d0f34dd3a4f166802aa3d54 Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02 Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -b 1389016 Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6 One more comment about the OMP build key. It's actually a "tristate": (1) OMP=1: default (note: -fopenmp [or equivalent] only applies to libxsmmext) (2) OMP=0: non-default, turns OpenMP off (even for libxsmmext!) (3) OMP build key is not specified -> similar to #1 I recommend to stay with #3. Other comments about the build specification: - STATIC=0: that's fine if you want shared libraries. Btw, you can build static libraries in addition if needed. - PREFETCH=1: superfluous, it's the default anyways (CPUID-based prefetch strategy). - SYM=1: non-default but just fine (if symbols are needed/policy). - SSE=0: turns generating SSE3 instructions off; fine if that's the policy. Regarding the latter, in particular critical code is CPUID-dispatched e.g., using CRC32 instruction/s (SSE4.2) for the JIT-code registry. One more comment regarding the package warnings: .make files are indeed empty, those are build artifacts and do not need to be packaged. The spelling of "coprocessor" (as opposed to co-processor) is intentionally wrt to KNC. Regarding the "spurious-executable-perm", i may rename these scripts to .sh if that helps (though this sample needs to be scrubbed a bit anyways ;-). (In reply to Antonio Trande from comment #14) > - gfortran and link commands still do not use default flags. I'll check. > - Some minor warnings from rpmlint. Which ones do you want removed? I wasn't convinced they were worth bothering with. > - Python? > BuildRequires: gcc-gfortran gcc-c++ python What's the problem? It's not in at least the f24 mock root. (In reply to Hans Pabst from comment #15) > (3) OMP build key is not specified -> similar to #1 > I recommend to stay with #3. Thanks -- I'd meant to change that. > Other comments about the build specification: > - STATIC=0: that's fine if you want shared libraries. Btw, you can build > static libraries in addition if needed. They're normally omitted in Fedora. > - PREFETCH=1: superfluous, it's the default anyways (CPUID-based prefetch > strategy). Thanks. I thought it was documented as building a separate interface, but I hadn't checked. > - SYM=1: non-default but just fine (if symbols are needed/policy). It's needed for the debuginfo package, i.e. what you install to use gdb. > One more comment regarding the package warnings: .make files are indeed > empty, those are build artifacts and do not need to be packaged. Thanks. > The > spelling of "coprocessor" (as opposed to co-processor) is intentionally wrt > to KNC. Regarding the "spurious-executable-perm", i may rename these scripts > to .sh if that helps (though this sample needs to be scrubbed a bit anyways > ;-). Most of what rpmlint reports isn't actual speling erors and can be ignored. (It does grate if I have to use US/Cambridge English per policy.) I don't think there's anything particularly wrong with the executable scripts. I think the complaint is about them not starting with #! but the ones I checked don't actually need to. (There's typically rpmlint noise about the contents of doc/example packages.) Thanks for the expert comments generally. One question: is it a bug that "make install" actually builds things after the build stage has run? Ideally it wouldn't, but I didn't think it was worth worrying about. I will look into the "make install" thing as well as resolving the issue about the version stamps. For the latter, I will make the major.minor-file a real file while the non-decorated file becomes a symlink. (In reply to Dave Love from comment #16) > (In reply to Antonio Trande from comment #14) > > > - Some minor warnings from rpmlint. > > Which ones do you want removed? I wasn't convinced they were worth > bothering with. 'spurious-executable-perm', 'zero-length'. doc sub-package contains source files to compile samples. Is it the right place for them? > > > - Python? > > BuildRequires: gcc-gfortran gcc-c++ python > > What's the problem? It's not in at least the f24 mock root. Why does need python? > Why does need python?
It's used by the build system. It's also used to "print code" when statically generating specialized kernels (non-JIT). The latter is not used by the way the library is built for general distribution, but the former is (used by the build system).
There is also the "build key" called PYTHON, which allows to specify the Python interpreter e.g.,
$ make PYTHON=python3.4
(Btw, the Python scripts are scrubbed to be compatible with Python 2.4-3.x.)
In a narrow sense, Python is not needed after the library is built. However, from a (library-)user's point of view there is also some sample code (samples/pyfr), which relies on Python...
Version 1.5.2 addresses the soname issue, avoids building code as part of the "install" target, and also resolves other (minor) issues or glitches. More details can be found at https://github.com/hfp/libxsmm/releases/tag/1.5.2 (In reply to Antonio Trande from comment #19) > (In reply to Dave Love from comment #16) > > (In reply to Antonio Trande from comment #14) > > > > > - Some minor warnings from rpmlint. > > > > Which ones do you want removed? I wasn't convinced they were worth > > bothering with. > > 'spurious-executable-perm', 'zero-length'. I'm not convinced the permission is spurious, since they are scripts. The .make files are cleaned up now > doc sub-package contains source files to compile samples. Is it the right > place for them? I don't know. I thought that's OK, but I can't find any relevant policy. I'll do something else reasonable with them if you say what. I'll update to 1.5.2 when I get a chance (thanks). I need to know what to do about the samples, but here's an update to the current version anyway. SRPM URL: https://loveshack.fedorapeople.org/review/libxsmm-1.5.2-1.el6.src.rpm Spec URL: https://loveshack.fedorapeople.org/review/libxsmm.spec FWIW - samples in -doc seems entirely appropriate to me. Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= >I need to know what to do about the samples, If you want provide those files under %doc, executable permissions must be removed. https://fedoraproject.org/wiki/Packaging:Guidelines#Documentation ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: Header files in -devel subpackage, if present. [x]: ldconfig called in %post and %postun if required. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. [x]: Development (unversioned) .so files in -devel subpackage, if present. 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: "BSD (3 clause)", "Unknown or generated". 60 files have unknown license. Detailed output of licensecheck in /home/sagitter/1389016-libxsmm/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [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. [x]: 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]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 61440 bytes in 1 files. [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 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]: 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). [x]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libxsmm- doc , libxsmm-debuginfo [ ]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [x]: Scriptlets must be sane, if used. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [-]: %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]: Uses parallel make %{?_smp_mflags} macro. [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Package should compile and build into binary rpms on all supported architectures. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [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. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: libxsmm-1.5.2-1.fc26.x86_64.rpm libxsmm-devel-1.5.2-1.fc26.x86_64.rpm libxsmm-doc-1.5.2-1.fc26.noarch.rpm libxsmm-debuginfo-1.5.2-1.fc26.x86_64.rpm libxsmm-1.5.2-1.fc26.src.rpm libxsmm.x86_64: W: spelling-error %description -l en_US coprocessors -> co processors, co-processors, microprocessors libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmm.so.1.5 exit.5 libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmmgen.so.1.5 exit.5 libxsmm.x86_64: W: no-documentation libxsmm-devel.x86_64: W: only-non-binary-in-usr-lib libxsmm-devel.x86_64: W: no-manual-page-for-binary libxsmm_gemm_generator libxsmm-devel.x86_64: W: no-manual-page-for-binary libxsmm_conv_generator libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_deepbench.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/pyfr/test.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_overfeat.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/wrap/dgemm-test.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_googlenetv1.sh /bin/bash libxsmm.src: W: spelling-error %description -l en_US coprocessors -> co processors, co-processors, microprocessors 5 packages and 0 specfiles checked; 0 errors, 13 warnings. Rpmlint (debuginfo) ------------------- Checking: libxsmm-debuginfo-1.5.2-1.fc26.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- libxsmm-devel.x86_64: W: only-non-binary-in-usr-lib libxsmm-devel.x86_64: W: no-manual-page-for-binary libxsmm_conv_generator libxsmm-devel.x86_64: W: no-manual-page-for-binary libxsmm_gemm_generator libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/pyfr/test.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_deepbench.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_overfeat.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/dnn/run_conv_googlenetv1.sh /bin/bash libxsmm-doc.noarch: W: doc-file-dependency /usr/share/doc/libxsmm-doc/samples/wrap/dgemm-test.sh /bin/bash libxsmm.x86_64: W: spelling-error %description -l en_US coprocessors -> co processors, co-processors, microprocessors libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmext.so.1.5 /lib64/libpthread.so.0 libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmmf.so.1.5 dgemm_ libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmmf.so.1.5 dlerror libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmmf.so.1.5 dlsym libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmmf.so.1.5 sgemm_ libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmf.so.1.5 /lib64/libm.so.6 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmf.so.1.5 /lib64/libgcc_s.so.1 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmf.so.1.5 /lib64/libquadmath.so.0 libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmm.so.1.5 dgemm_ libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmm.so.1.5 dlerror libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmm.so.1.5 dlsym libxsmm.x86_64: W: undefined-non-weak-symbol /usr/lib64/libxsmm.so.1.5 sgemm_ libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmm.so.1.5 exit.5 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmgen.so.1.5 /lib64/libpthread.so.0 libxsmm.x86_64: W: shared-lib-calls-exit /usr/lib64/libxsmmgen.so.1.5 exit.5 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmnoblas.so.1.5 /lib64/libgomp.so.1 libxsmm.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libxsmmnoblas.so.1.5 /lib64/libpthread.so.0 libxsmm.x86_64: W: no-documentation 4 packages and 0 specfiles checked; 0 errors, 27 warnings. Requires -------- libxsmm-devel (rpmlib, GLIBC filtered): libc.so.6()(64bit) libpthread.so.0()(64bit) libxsmm(x86-64) libxsmm.so.1()(64bit) libxsmmext.so.1()(64bit) libxsmmf.so.1()(64bit) libxsmmgen.so.1()(64bit) libxsmmnoblas.so.1()(64bit) rtld(GNU_HASH) libxsmm-doc (rpmlib, GLIBC filtered): /bin/bash /bin/sh libxsmm-debuginfo (rpmlib, GLIBC filtered): libxsmm (rpmlib, GLIBC filtered): /sbin/ldconfig ld-linux-x86-64.so.2()(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libgfortran.so.3()(64bit) libgfortran.so.3(GFORTRAN_1.0)(64bit) libgomp.so.1()(64bit) libgomp.so.1(GOMP_1.0)(64bit) libgomp.so.1(GOMP_2.0)(64bit) libgomp.so.1(GOMP_4.0)(64bit) libgomp.so.1(OMP_1.0)(64bit) libm.so.6()(64bit) libpthread.so.0()(64bit) libquadmath.so.0()(64bit) librt.so.1()(64bit) libxsmm.so.1()(64bit) rtld(GNU_HASH) Provides -------- libxsmm-devel: libxsmm-devel libxsmm-devel(x86-64) libxsmm-doc: libxsmm-doc libxsmm-debuginfo: libxsmm-debuginfo libxsmm-debuginfo(x86-64) libxsmm: libxsmm libxsmm(x86-64) libxsmm.so.1()(64bit) libxsmmext.so.1()(64bit) libxsmmf.so.1()(64bit) libxsmmgen.so.1()(64bit) libxsmmnoblas.so.1()(64bit) Source checksums ---------------- https://github.com/hfp/libxsmm/archive/1.5.2.tar.gz#/libxsmm-1.5.2.tar.gz : CHECKSUM(SHA256) this package : a037b7335932921960d687ef3d49b50ee38a83e0c8ad237bc20d3f4a0523f7d3 CHECKSUM(SHA256) upstream package : a037b7335932921960d687ef3d49b50ee38a83e0c8ad237bc20d3f4a0523f7d3 Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02 Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -b 1389016 Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6 (In reply to Antonio Trande from comment #25) > If you want provide those files under %doc, executable permissions must be > removed. > https://fedoraproject.org/wiki/Packaging:Guidelines#Documentation That's not what it says, and the previous version doesn't install extra dependencies, but I removed the shell dependencies from: SRPM URL: https://loveshack.fedorapeople.org/review/libxsmm-1.5.2-2.el6.src.rpm Spec URL: https://loveshack.fedorapeople.org/review/libxsmm.spec Package approved. Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/libxsmm libxsmm-1.5.2-2.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-e9e3962e27 libxsmm-1.5.2-2.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-02fb3b4515 libxsmm-1.5.2-2.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-120603edb4 libxsmm-1.5.2-2.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-041c46cdc9 libxsmm-1.5.2-2.fc25 has been pushed to the Fedora 25 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-2016-120603edb4 libxsmm-1.5.2-2.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-2016-02fb3b4515 libxsmm-1.5.2-2.fc23 has been pushed to the Fedora 23 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-2016-041c46cdc9 libxsmm-1.5.2-2.fc24 has been pushed to the Fedora 24 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-2016-e9e3962e27 libxsmm-1.6.1-1.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-89d6a0cf1b libxsmm-1.6.1-1.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-043d784a2b libxsmm-1.6.1-1.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-0d598f3556 libxsmm-1.6.1-1.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-1d69950d26 libxsmm-1.6.1-1.fc24 has been pushed to the Fedora 24 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-2016-043d784a2b libxsmm-1.6.1-1.fc23 has been pushed to the Fedora 23 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-2016-1d69950d26 libxsmm-1.6.1-1.fc25 has been pushed to the Fedora 25 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-2016-0d598f3556 libxsmm-1.6.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-2016-89d6a0cf1b libxsmm-1.6.1-1.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report. libxsmm-1.6.1-1.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report. libxsmm-1.6.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. |