Bug 1826621
| Summary: | Review Request: rmd - Resource Manager Deamon | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | ArunPrabhu Vijayan <arunprabhu.vijayan> |
| Component: | Package Review | Assignee: | Neil Horman <nhorman> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | krishnan.raghuram, nhorman, package-review |
| Target Milestone: | --- | Flags: | nhorman:
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: | 2020-06-24 00:59:24 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1531160, 1744531 | ||
|
Description
ArunPrabhu Vijayan
2020-04-22 06:57:03 UTC
*** Bug 1536230 has been marked as a duplicate of this bug. *** I'll start this review today. Just FYI, when we are done, and the package is integrated, I'll add you as a co-maintainer, but I expect that you will be the responsible party for ongoing maintenence and updates, correct? Spec URL: https://raw.githubusercontent.com/arunprabhu123/rmd/master/rmd.spec SRPM URL: https://github.com/arunprabhu123/rmd/blob/master/rmd-1.0-1.fc30.src.rpm This srpm isn't properly constructed in how it builds the application The Makefile makes several targets (specifically deps and build) which calls the included scripts/deps.sh and scripts/build.sh file Those script files run several go get commands to pull in go libraries from their upstream sources which violates the Fedora golang packaging guidelines: https://docs.fedoraproject.org/en-US/packaging-guidelines/Golang/#_dependencies The deps script needs to not be run. instead of pulling in those golang libraries, they should be added as dependencies in the spec file: go get github.com/Masterminds/glide => BuildRequires: golang-github-masterminds-glide-devel go get github.com/mh-cbon/go-bin-deb => shouldn't be required for Fedora go get github.com/mh-cbon/go-bin-rpm => Shouldn't be required for Fedora since we're already running rpmbuild You also need to include BuildRequires: go-rpm-macros That will autogenerate requirements for you in the completed rpm Note also that your build.sh script uses git to determine the version/revision/branch/go_version variables. When building an SRPM, you won't be working from within a git repo, but from a source tarball. As such those commands will all fail. It may not be fatal, but the resultant binary will not have proper version information built in. Assuming the above are corrected, this is the result of the review: This is a review *template*. Besides handling the [ ]-marked tests you are also supposed to fix the template before pasting into bugzilla: - Add issues you find to the list of issues on top. If there isn't such a list, create one. - Add your own remarks to the template checks. - Add new lines marked [!] or [?] when you discover new things not listed by fedora-review. - Change or remove any text in the template which is plain wrong. In this case you could also file a bug against fedora-review - Remove the "[ ] Manual check required", you will not have any such lines in what you paste. - Remove attachments which you deem not really useful (the rpmlint ones are mandatory, though) - Remove this text Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - If your application is a C or C++ application you must list a BuildRequires against gcc, gcc-c++ or clang. Note: No gcc, gcc-c++ or clang found in BuildRequires See: https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/ ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [-]: Package contains no static executables. [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", "*No copyright* Apache License (v2.0)", "Apache License (v2.0)", "BSD 2-clause "Simplified" License". 159 files have unknown license. Detailed output of licensecheck in /home/nhorman/review/review-rmd/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [-]: %build honors applicable compiler flags or justifies otherwise. [!]: Package contains no bundled libraries without FPC exception. <= Can't bundle golang libraries with go get [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [!]: %config files are marked noreplace or the reason is justified. Note: No (noreplace) in %config(missingok) /usr/bin/scripts %config(missingok) /usr/bin/etc [-]: Package contains desktop file if it is a GUI application. [-]: 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. [!]: Package obeys FHS, except libexecdir and /usr/target. <= /etc in /usr/bin (see warnings/errors below) [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [!]: Requires correct, justified where necessary. (missing BuildRequires for build/run : see above) [x]: Spec file is legible and written in American English. [!]: Package contains systemd file(s) if in need. <= you probably want to add a systemd unit to start rmd [x]: Useful -debuginfo package or justification otherwise. [!]: Package is not known to require an ExcludeArch tag. <= Not sure why this isn't buildable on non-x86 arches [-]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 20480 bytes in 1 files. [!]: Package complies to the Packaging Guidelines <= golang bundling issues [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]: No %config files under /usr. [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: [!]: Sources can be downloaded from URI in Source: tag Note: Could not download Source0: https://www.example.com/rmd/releases/rmd-1.0.tar.gz See: https://docs.fedoraproject.org/en-US/packaging- guidelines/SourceURL/ [-]: 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. <= description in spec file needs to be more verbose [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [!]: SourceX tarball generation or download is documented. Note: Package contains tarball without URL, check comments <= example.com is not where this package comes from [-]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. Note: gpgverify is not 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]: Fully versioned dependency in subpackages if applicable. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Uses parallel make %{?_smp_mflags} macro. [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 <= Note, all of these warnings/errors need to be fixed ------- Checking: rmd-1.0-1.fc33.x86_64.rpm rmd-debuginfo-1.0-1.fc33.x86_64.rpm rmd-debugsource-1.0-1.fc33.x86_64.rpm rmd-1.0-1.fc33.src.rpm rmd.x86_64: W: description-shorter-than-summary rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/acl/roles/admin/cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/acl/roles/admin/cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/acl/roles/user/user-cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/acl/roles/user/user-cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/acl/url/model.conf rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/acl/url/model.conf rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/acl/url/policy.csv rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/acl/url/policy.csv rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/ca.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/ca.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/key.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/key.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/user-cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/user-cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/user-key.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/user-key.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/server/ca.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/server/ca.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/server/rmd-cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/server/rmd-cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/server/rmd-key.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/server/rmd-key.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cpu_map.toml rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cpu_map.toml rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/pam/rmd rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/pam/rmd rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/pam/test/rmd rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/pam/test/rmd rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/policy.toml rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/policy.toml rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/policy.yaml rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/policy.yaml rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/rmd.toml rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/rmd.toml rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/build-opts-get rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/build-opts-get rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/build.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/build.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/deps.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/deps.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/go-env rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/go-env rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/hacking.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/hacking.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/hacking_v2.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/hacking_v2.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/install.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/install.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/setup_pam_files.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/setup_pam_files.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/setup_rmd_users.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/setup_rmd_users.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/test.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/test.sh rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles/admin rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles/admin/cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/acl/roles/admin/cert.pem 644 rmd.x86_64: W: pem-certificate /usr/bin/etc/rmd/acl/roles/admin/cert.pem rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/acl/roles/admin/cert.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles/user rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles/user/user-cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/acl/roles/user/user-cert.pem 644 rmd.x86_64: W: pem-certificate /usr/bin/etc/rmd/acl/roles/user/user-cert.pem rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/acl/roles/user/user-cert.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/url rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/url/model.conf rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/acl/url/model.conf 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/acl/url/model.conf rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/url/policy.csv rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/acl/url/policy.csv 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/acl/url/policy.csv rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/ca.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/ca.pem 644 rmd.x86_64: W: pem-certificate /usr/bin/etc/rmd/cert/client/ca.pem rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/cert/client/ca.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/cert.pem 644 rmd.x86_64: W: pem-certificate /usr/bin/etc/rmd/cert/client/cert.pem rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/cert/client/cert.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/key.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/key.pem 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/cert/client/key.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/user-cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/user-cert.pem 644 rmd.x86_64: W: pem-certificate /usr/bin/etc/rmd/cert/client/user-cert.pem rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/cert/client/user-cert.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/user-key.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/user-key.pem 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/cert/client/user-key.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/server rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/server/ca.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/server/ca.pem 644 rmd.x86_64: W: pem-certificate /usr/bin/etc/rmd/cert/server/ca.pem rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/cert/server/ca.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/server/rmd-cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/server/rmd-cert.pem 644 rmd.x86_64: W: pem-certificate /usr/bin/etc/rmd/cert/server/rmd-cert.pem rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/cert/server/rmd-cert.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/server/rmd-key.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/server/rmd-key.pem 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/cert/server/rmd-key.pem rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cpu_map.toml rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cpu_map.toml 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/cpu_map.toml rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/pam rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/pam/rmd rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/pam/rmd 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/pam/rmd rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/pam/test rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/pam/test/rmd rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/pam/test/rmd 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/pam/test/rmd rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/policy.toml rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/policy.toml 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/policy.toml rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/policy.yaml rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/policy.yaml 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/policy.yaml rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/rmd.toml rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/rmd.toml 644 rmd.x86_64: E: script-without-shebang /usr/bin/etc/rmd/rmd.toml rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/build-opts-get rmd.x86_64: W: non-executable-in-bin /usr/bin/scripts/build-opts-get 644 rmd.x86_64: E: script-without-shebang /usr/bin/scripts/build-opts-get rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/build.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/build.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/deps.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/deps.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/go-env rmd.x86_64: W: non-executable-in-bin /usr/bin/scripts/go-env 644 rmd.x86_64: E: script-without-shebang /usr/bin/scripts/go-env rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/hacking.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/hacking.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/hacking_v2.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/hacking_v2.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/install.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/install.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/setup_pam_files.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/setup_pam_files.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/setup_rmd_users.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/setup_rmd_users.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/test.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/test.sh rmd.x86_64: W: no-manual-page-for-binary gen_conf rmd.x86_64: W: no-manual-page-for-binary rmd rmd.x86_64: W: dangerous-command-in-%post rm rmd.x86_64: W: dangerous-command-in-%preun rm rmd.src: W: description-shorter-than-summary rmd.src: W: invalid-url Source0: https://www.example.com/rmd/releases/rmd-1.0.tar.gz HTTP Error 404: Not Found 4 packages and 0 specfiles checked; 67 errors, 90 warnings. Rpmlint (debuginfo) ------------------- Checking: rmd-debuginfo-1.0-1.fc33.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "C.UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "C.UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). rmd-debuginfo.x86_64: W: invalid-url URL: https://github.com/intel/rmd <urlopen error [Errno -2] Name or service not known> rmd-debugsource.x86_64: W: invalid-url URL: https://github.com/intel/rmd <urlopen error [Errno -2] Name or service not known> rmd.x86_64: W: description-shorter-than-summary rmd.x86_64: W: invalid-url URL: https://github.com/intel/rmd <urlopen error [Errno -2] Name or service not known> rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/acl/roles/admin/cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/acl/roles/admin/cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/acl/roles/user/user-cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/acl/roles/user/user-cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/acl/url/model.conf rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/acl/url/model.conf rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/acl/url/policy.csv rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/acl/url/policy.csv rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/ca.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/ca.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/key.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/key.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/user-cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/user-cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/client/user-key.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/client/user-key.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/server/ca.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/server/ca.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/server/rmd-cert.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/server/rmd-cert.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cert/server/rmd-key.pem rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cert/server/rmd-key.pem rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/cpu_map.toml rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/cpu_map.toml rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/pam/rmd rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/pam/rmd rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/pam/test/rmd rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/pam/test/rmd rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/policy.toml rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/policy.toml rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/policy.yaml rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/policy.yaml rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/etc/rmd/rmd.toml rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/etc/rmd/rmd.toml rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/build-opts-get rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/build-opts-get rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/build.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/build.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/deps.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/deps.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/go-env rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/go-env rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/hacking.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/hacking.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/hacking_v2.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/hacking_v2.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/install.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/install.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/setup_pam_files.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/setup_pam_files.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/setup_rmd_users.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/setup_rmd_users.sh rmd.x86_64: W: non-etc-or-var-file-marked-as-conffile /usr/bin/scripts/test.sh rmd.x86_64: W: conffile-without-noreplace-flag /usr/bin/scripts/test.sh rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles/admin rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles/admin/cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/acl/roles/admin/cert.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/acl/roles/admin/cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/acl/roles/admin/cert.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/acl/roles/admin/cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/acl/roles/admin/cert.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles/user rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/roles/user/user-cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/acl/roles/user/user-cert.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/acl/roles/user/user-cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/acl/roles/user/user-cert.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/acl/roles/user/user-cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/acl/roles/user/user-cert.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/url rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/url/model.conf rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/acl/url/model.conf 644 rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/acl/url/policy.csv rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/acl/url/policy.csv 644 rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/ca.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/ca.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/ca.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/ca.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/ca.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/ca.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/cert.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/cert.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/cert.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/key.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/key.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/key.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/key.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/key.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/key.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/user-cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/user-cert.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/user-cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/user-cert.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/user-cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/user-cert.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/client/user-key.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/client/user-key.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/user-key.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/user-key.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/client/user-key.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/client/user-key.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/server rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/server/ca.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/server/ca.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/server/ca.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/server/ca.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/server/ca.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/server/ca.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/server/rmd-cert.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/server/rmd-cert.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/server/rmd-cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/server/rmd-cert.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/server/rmd-cert.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/server/rmd-cert.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cert/server/rmd-key.pem rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cert/server/rmd-key.pem 644 rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/server/rmd-key.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/server/rmd-key.pem' rmd.x86_64: W: read-error /usr/bin/etc/rmd/cert/server/rmd-key.pem [Errno 2] No such file or directory: '/usr/bin/etc/rmd/cert/server/rmd-key.pem' rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/cpu_map.toml rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/cpu_map.toml 644 rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/pam rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/pam/rmd rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/pam/rmd 644 rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/pam/test rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/pam/test/rmd rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/pam/test/rmd 644 rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/policy.toml rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/policy.toml 644 rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/policy.yaml rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/policy.yaml 644 rmd.x86_64: E: subdir-in-bin /usr/bin/etc/rmd/rmd.toml rmd.x86_64: W: non-executable-in-bin /usr/bin/etc/rmd/rmd.toml 644 rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/build-opts-get rmd.x86_64: W: non-executable-in-bin /usr/bin/scripts/build-opts-get 644 rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/build.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/build.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/deps.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/deps.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/go-env rmd.x86_64: W: non-executable-in-bin /usr/bin/scripts/go-env 644 rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/hacking.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/hacking.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/hacking_v2.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/hacking_v2.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/install.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/install.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/setup_pam_files.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/setup_pam_files.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/setup_rmd_users.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/setup_rmd_users.sh rmd.x86_64: E: subdir-in-bin /usr/bin/scripts/test.sh rmd.x86_64: E: executable-marked-as-config-file /usr/bin/scripts/test.sh rmd.x86_64: W: no-manual-page-for-binary gen_conf rmd.x86_64: W: no-manual-page-for-binary rmd rmd.x86_64: W: dangerous-command-in-%post rm rmd.x86_64: W: dangerous-command-in-%preun rm 3 packages and 0 specfiles checked; 47 errors, 104 warnings. Requires -------- rmd (rpmlib, GLIBC filtered): /bin/sh /usr/bin/bash config(rmd) libc.so.6()(64bit) libdl.so.2()(64bit) libpam.so.0()(64bit) libpam.so.0(LIBPAM_1.0)(64bit) libpthread.so.0()(64bit) rtld(GNU_HASH) rmd-debuginfo (rpmlib, GLIBC filtered): rmd-debugsource (rpmlib, GLIBC filtered): Provides -------- rmd: config(rmd) rmd rmd(x86-64) rmd-debuginfo: debuginfo(build-id) rmd-debuginfo rmd-debuginfo(x86-64) rmd-debugsource: rmd-debugsource rmd-debugsource(x86-64) Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16 Command line :/usr/bin/fedora-review -n rmd --mock-options --no-cleanup-after --no-clean --enable-network Buildroot used: fedora-rawhide-x86_64 Active plugins: C/C++, Shell-api, Generic Disabled plugins: fonts, Java, Perl, Python, Haskell, R, PHP, Ocaml, SugarActivity Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH Thanks Neil. We will fix and update soon. Spec URL: https://github.com/arunprabhu123/rmd/blob/master/rmd.spec SRPM URL: https://github.com/arunprabhu123/rmd/blob/master/rmd-1.0-1.fc30.src.rpm Note: All RPM lint warnings/errors fixed except 1.rmd.x86_64: W: pem-certificate /usr/local/etc/rmd/acl/roles/admin/cert.pem This is not fixed as these files are only used for testing. 2. Below error is not fixed as our SW needs to copy config files to /usr/local/etc/ rmd.x86_64: E: dir-or-file-in-usr-local /usr/local/etc/rmd/policy.toml A file in the package is located in /usr/local. It's not permitted for packages to install files in this directory. Added exception in rpmlint --> addFilter("E: dir-or-file-in-usr-local") in /etc/rpmlint/config All build related Git dependencies are also fixed. Please review and kindly let us know if any errors. We will correct them. Thanks in advance. Note, the spec file URL you are providing is not actually to the spec file, but rather to the github html-ified version of the spec file, please use the link https://raw.githubusercontent.com/arunprabhu123/rmd/master/rmd.spec instead. ditto for the srpm, use https://github.com/arunprabhu123/rmd/raw/master/rmd-1.0-1.fc30.src.rpm instead. I'll review this shortly Its closer, but the package still has some problems: It doesn't build, as your build script still attempts to fetch upstream sources (via the go build command). you need to add git-core as a build requirement to get past that. The package still tries to pull in many packages from upstream as well, instead of depending on them from the corresponding fedora packages. Based on this: https://docs.fedoraproject.org/en-US/packaging-guidelines/Golang/#_bundled_or_unbundled You need to justify why you need to pull those packages in from upstream instead of just using the Fedora packages. By my read, currently of all the package dependencies listed in your go.mod file, the following packages: go-spew monotime go-querystring go-interpol httpmock go-isatty go-colorable http2curl gi-buffruneio to-toml go-difflib gostub go-diff fasthttp are not yet packaged by fedora, and so would be allowable as bundled exceptions. Every other package in go.mod will need a justification here (or preferably, just drop the dependency in go.mod, and add the requisite buildrequires to the spec file instead regarding the errors you mentioned above: >1.rmd.x86_64: W: pem-certificate /usr/local/etc/rmd/acl/roles/admin/cert.pem >This is not fixed as these files are only used for testing. I'm not sure I follow here. What testing are you referring to? I don't see any %check script in your spec file, so I'm not sure what testing you are doing. As such, why not just not package the pem certificates at all? >2. Below error is not fixed as our SW needs to copy config files to /usr/local/etc/ > rmd.x86_64: E: dir-or-file-in-usr-local /usr/local/etc/rmd/policy.toml >A file in the package is located in /usr/local. It's not permitted for >packages to install files in this directory. >Added exception in rpmlint --> addFilter("E: dir-or-file-in-usr-local") in /etc/rpmlint/config Why? It looks to me like the rmd utility allows you to specify the location of a config file on the command line, so I don't understand why the config files can't be placed in the appropriate directory (%_sysconfdir}/etc) here. Note also that, if you add a systemd unit file as noted in comment 5, you can set the config directory there without having to modify the source defaults. The review of the package itself looks ok, though you didn't address the following items from comment 5: [!]: %config files are marked noreplace or the reason is justified. Note: No (noreplace) in %config(missingok) /usr/bin/scripts %config(missingok) /usr/bin/etc [!]: Package contains systemd file(s) if in need. <= you probably want to add a systemd unit to start rmd [!]: Package is not known to require an ExcludeArch tag. <= It should be buildable on non-x86 platforms, you either need to allow that, or document the fact that rmd only operates on data found in x86 systems [!]: Package functions as described. <= description in spec file needs to be more verbose Hi Neil, Thanks for the detailed review. We will get back soon. Regards Arun Please find our understanding with regards to your review under [Arun] below. Kindly correct if we are wrong in the understanding. We will correct accordingly. Thanks in advance. (In reply to Neil Horman from comment #9) > Its closer, but the package still has some problems: > > It doesn't build, as your build script still attempts to fetch upstream > sources (via the go build command). you need to add git-core as a build > requirement to get past that. > > The package still tries to pull in many packages from upstream as well, > instead of depending on them from the corresponding fedora packages. Based > on this: > https://docs.fedoraproject.org/en-US/packaging-guidelines/Golang/ > #_bundled_or_unbundled > > You need to justify why you need to pull those packages in from upstream > instead of just using the Fedora packages. By my read, currently of all the > package dependencies listed in your go.mod file, the following packages: > go-spew > monotime > go-querystring > go-interpol > httpmock > go-isatty > go-colorable > http2curl > gi-buffruneio > to-toml > go-difflib > gostub > go-diff > fasthttp > > are not yet packaged by fedora, and so would be allowable as bundled > exceptions. Every other package in go.mod will need a justification here > (or preferably, just drop the dependency in go.mod, and add the requisite > buildrequires to the spec file instead > > regarding the errors you mentioned above: [Arun] 1. Sure. We will add all packages present in fedora as BuildRequires and drop from go.mod file & other packages as bundled exception in go.mod file. 2. We will also add BuildRequires : git-core & BuildRequires : go-rpm-macros. Note: In my fedora machine,am getting this error if I add go-rpm-macros. Can you please let me why I'm getting this error? [root]# dnf install go-rpm-macros Last metadata expiration check: 3:07:12 ago on Wed 13 May 2020 00:52:11 IST. No match for argument: go-rpm-macros Error: Unable to find a match: go-rpm-macros > >1.rmd.x86_64: W: pem-certificate /usr/local/etc/rmd/acl/roles/admin/cert.pem > >This is not fixed as these files are only used for testing. > I'm not sure I follow here. What testing are you referring to? I don't see > any %check script in your spec file, so I'm not sure what testing you are > doing. As such, why not just not package the pem certificates at all? [Arun] PEM certificates can be used as reference by System Admin to configure. So, it is more like reference files or fast and easy check of functionality.. Sorry for mentioning it as used for testing purposes. https://github.com/intel/rmd/blob/master/etc/rmd/rmd.toml has reference usage in [default] section. Please refer to it. > >2. Below error is not fixed as our SW needs to copy config files to /usr/local/etc/ > > rmd.x86_64: E: dir-or-file-in-usr-local /usr/local/etc/rmd/policy.toml > >A file in the package is located in /usr/local. It's not permitted for > >packages to install files in this directory. > >Added exception in rpmlint --> addFilter("E: dir-or-file-in-usr-local") in /etc/rpmlint/config > Why? It looks to me like the rmd utility allows you to specify the location > of a config file on the command line, so I don't understand why the config > files can't be placed in the appropriate directory (%_sysconfdir}/etc) here. > Note also that, if you add a systemd unit file as noted in comment 5, you > can set the config directory there without having to modify the source > defaults. [Arun] If all config files need to be moved to /etc/, we will move them from /usr/local/etc/ folder. We also have some install related scripts which needs to be moved from /usr/local/etc/rmd to /etc/rmd. Please let us know if it is OK? > The review of the package itself looks ok, though you didn't address the > following items from comment 5: > [!]: %config files are marked noreplace or the reason is justified. > Note: No (noreplace) in %config(missingok) /usr/bin/scripts > %config(missingok) /usr/bin/etc [Arun] This was removed from the latest spec file as we corrected in the spec file by installing directly from the SPEC file in the correct path instead of running script from /usr/bin directory which will copy these files to /usr/local/etc/. > [!]: Package contains systemd file(s) if in need. <= you probably want to > add a systemd unit to start rmd [Arun] We will discuss internally and get back if its needed to keep the systemd file for this release. > [!]: Package is not known to require an ExcludeArch tag. <= It should be > buildable on non-x86 platforms, you either need to allow that, or document > the fact that rmd only operates on data found in x86 systems > [Arun] RMD addresses Resource Management for Intel X86 architectures. HW support is documented in https://github.com/intel/rmd/blob/master/docs/Prerequisite.md file. Please let us know if this Ok or needs further documentation. > [!]: Package functions as described. <= description in spec file needs to be > more verbose [Arun] We added description in the SPEC file in the last version. It has the details, kindly let us know if something more needs to be added. I saw the Lint warning disappear after addition in the description. Thank you for your quick reply. In response: >[Arun] >1. Sure. We will add all packages present in fedora as BuildRequires and drop from go.mod file & other packages as bundled exception in go.mod file. Perfect, thank you! >2. We will also add BuildRequires : git-core & BuildRequires : go-rpm-macros. Excellent >Note: In my fedora machine,am getting this error if I add go-rpm-macros. Can you please let me why I'm getting this error? > >[root]# dnf install go-rpm-macros >Last metadata expiration check: 3:07:12 ago on Wed 13 May 2020 00:52:11 IST. >No match for argument: go-rpm-macros >Error: Unable to find a match: go-rpm-macros Hmm...odd, what Fedora release are you running on? I managed to install it on my F32 system just fine. I wonder if you're using an older fedora release that doesn't have those macros packaged yet? >> >1.rmd.x86_64: W: pem-certificate /usr/local/etc/rmd/acl/roles/admin/cert.pem >> >This is not fixed as these files are only used for testing. >> I'm not sure I follow here. What testing are you referring to? I don't see >> any %check script in your spec file, so I'm not sure what testing you are >> doing. As such, why not just not package the pem certificates at all? >[Arun] PEM certificates can be used as reference by System Admin to configure. So, it is more like reference files or fast and easy check of functionality.. Sorry for mentioning it as used for testing >purposes. >https://github.com/intel/rmd/blob/master/etc/rmd/rmd.toml has reference usage in [default] section. Please refer to it. Hmm, ok, I see the need, but I'll need to check a little bit on what the policy is here. I would hate to have people use this with a default certificate in your name. I expect we can mark those in the file manafest with a %conf, and make a note in the documentation and the config file that production systems should generate their own cert, but I'll check and confirm. >> >2. Below error is not fixed as our SW needs to copy config files to /usr/local/etc/ >> > rmd.x86_64: E: dir-or-file-in-usr-local /usr/local/etc/rmd/policy.toml >> >A file in the package is located in /usr/local. It's not permitted for >> >packages to install files in this directory. >> >Added exception in rpmlint --> addFilter("E: dir-or-file-in-usr-local") in /etc/rpmlint/config >> Why? It looks to me like the rmd utility allows you to specify the location >> of a config file on the command line, so I don't understand why the config >> files can't be placed in the appropriate directory (%_sysconfdir}/etc) here. >> Note also that, if you add a systemd unit file as noted in comment 5, you >> can set the config directory there without having to modify the source >> defaults. >[Arun] If all config files need to be moved to /etc/, we will move them from /usr/local/etc/ folder. We also have some install related scripts which needs to be moved from /usr/local/etc/rmd to /etc/rmd. >Please let us know if it is OK? Yes, that is exactly correct. You are completely permitted to create subdirectories under /etc to store your config files in, it just all needs to be rooted in /etc (or more specifically %{_sysconfdir}, which currently expands to /etc) >> The review of the package itself looks ok, though you didn't address the >> following items from comment 5: >> [!]: %config files are marked noreplace or the reason is justified. >> Note: No (noreplace) in %config(missingok) /usr/bin/scripts >> %config(missingok) /usr/bin/etc> > >[Arun] This was removed from the latest spec file as we corrected in the spec file by installing directly from the SPEC file in the correct path instead of running script from /usr/bin directory which will >copy these files to /usr/local/etc/. Understood, thank you! >> [!]: Package contains systemd file(s) if in need. <= you probably want to >> add a systemd unit to start rmd > >[Arun] We will discuss internally and get back if its needed to keep the systemd file for this release. I'm sorry, I'm not sure I understand. I didn't see a systemd unit file previously (hence the error). I presume you want to run rmd as a daemon, correct? If so, I would strongly recommend that you add one, so you have a good user experience when the package is installed. >> [!]: Package is not known to require an ExcludeArch tag. <= It should be >> buildable on non-x86 platforms, you either need to allow that, or document >> the fact that rmd only operates on data found in x86 systems >> >[Arun] RMD addresses Resource Management for Intel X86 architectures. HW support is documented in https://github.com/intel/rmd/blob/master/docs/Prerequisite.md file. Please let us know if this Ok or needs >further documentation. Yes, the documentation is fine, if you could just add a comment in the spec file above the ExclusiveArch tag pointing to that URL, that would be great >> [!]: Package functions as described. <= description in spec file needs to be >> more verbose >[Arun] We added description in the SPEC file in the last version. It has the details, kindly let us know if something more needs to be added. I saw the Lint warning disappear after addition in the >description. This is the description that was in the latest spec file that you submitted: %description Resource Management Daemon (RMD) is a system daemon running on Linux platforms I'm asking that you provide a little more description around what RMD actually does (i.e. why people might want to run it). Thanks for the quick response.
My Fedora version is FC30. Is it a good idea to upgrade to FC32?
I managed to add systemd file for RMD & it worked. However, when I added a preuninstallation script to stop RMD service, I was getting a lint error.
%preun -p %{_prefix}/local/etc/scripts/prerm.sh
---------------------------
if [ -f "/lib/systemd/system/rmd.service" ]; then
systemctl stop rmd.service
systemctl disable rmd.service
fi
--------------------------
rmd.x86_64: E: invalid-dependency /usr/local/etc/scripts/prerm.sh
An invalid dependency has been detected. It usually means that the build of
the package was buggy.
Could you please let me know how to stop the service during un installation?
I got over this issue by adding below in %preun.
/usr/bin/systemctl stop %{name}.service
/usr/bin/systemctl --no-reload disable %{name}.service
Is it Ok?
Hello again, in response:
1) go-rpm-macros - Yes, I checked, and F30 did not yet, package the go-rpm-macros. You can either:
a) Upgrade to Fedora 32
b) install the go-rpm-macro package directly from this url on your F30 box:
https://dl.fedoraproject.org/pub/fedora/linux/releases/32/Everything/x86_64/os/Packages/g/go-rpm-macros-3.0.8-5.fc32.x86_64.rpm
Note: There may be some other dependency (functional or explicit), so this may not work, but its probably worth trying
c) Follow the new packager process, in particular this step:
https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Install_the_developer_client_tools
which will allow you to submit builds to the koji build service that the fedora project maintains
I would suggest that you do either (a) or (b) AND (c). I say that because, as we go through this process, you will become the rmd co-maintainer along with me, and as such you will want to be able to do builds as part of your maintenance responsibilities anyway.
2) Its functional, but not the proscribed method for doing this. According to:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/
you should just add a BuildRequries: systemd-rpm-macros
and for your scriptlets add:
%post
%systemd_post rmd.service
%preun
%systemd_preun rmd.service
Those scriptlets will take care of the appropriate actions for systemd units (including stopping the service prior to removal and such). Theres no need to write your own script for it.
Spec URL: https://raw.githubusercontent.com/arunprabhu123/rmd/master/rmd.spec SRPM URL: https://github.com/arunprabhu123/rmd/raw/master/rmd-1.0-1.fc32.src.rpm Note: Fixed review comments, 1. Added go packages to SPEC file.Remaining packages will be as used bundled exception in go.mod file. 2. RMD now runs as a Demeon. systemd file support added to RMD. 3. Fixed additional comments as given in review Please review and kindly let us know if any errors. We will correct them. Thanks in advance. Hi, I was trying to Setup Koji Build system. I'm getting this error with kinit. kinit avijayan kinit: Cannot contact any KDC for realm 'FEDORAPROJECT.ORG' while getting initial credentials Can you please tell me what is this error and how to solve it? In regards to your koji issue, the build system uses kerberos to authenticate, and you need to configure the FEDORAPROJECT.ORG realm. You should get the realm configuration file installed with the fedora-packager package. just run: dnf install fedora-packager and you should be good to go. I'll review the package shortly New review looks good! Theres only two things left to handle:
1) I checked on the pem certificates, and I can't find any explicit rule about inclusion of pem certificates, so I think we're good, and as its marked as a conf file it should be replaceable without getting flagged as an rpm change post install, so I'm good there
2) The bundling of extra packages. I didn't fully comprehend how fedora implemented that. I was under the impression that bundled packages in golang could have an exception to download from the internet, but I was mistaken. The build system unilaterally disallows network access during builds, so its guaranteed to not be able to do that. When the docs say bundled, they mean included in the source rpm. Fortunately thats an easy fix. To correct that we need to:
a) Take a snapshot of the packages that you need from the gopath after a clean install, and tar it up (I've taken the liberty of doing so for you here:
https://people.redhat.com/nhorman/rpms/rmd-extra.pkgs.tbz2
Note that this is just a quick and dirty tarballing, and its about 400MB, you might be better off trying to pair that down a little if you can (I'm not sure if go allows you to trim out commit history to
save space, but you can use it if need be.
b) Modify the spec file as follows:
[nhorman@hmswarspite SPECS]$ diff -u ~/1826621-rmd/srpm/rmd.spec ./rmd.spec
--- /home/nhorman/1826621-rmd/srpm/rmd.spec 2020-05-19 13:51:10.014546923 -0400
+++ ./rmd.spec 2020-05-19 15:13:43.579637705 -0400
@@ -5,6 +5,7 @@
License: ASL 2.0
URL: https://github.com/intel/rmd
Source0: https://github.com/arunprabhu123/rmd/blob/master/rmd-1.0.tar.gz
+Source1: rmd-extra-pkgs.tbz2
BuildRequires: go
BuildRequires: make
@@ -61,8 +62,13 @@
%prep
%setup -q
-
+mkdir app
+
%build
+mkdir _pkg
+tar -C _pkg -x -v -f %{SOURCE1}
+find _pkg -type d -exec chmod 755 {} \;
+export GOPATH=$PWD/_pkg:/usr/lib/golang
make %{?_smp_mflags}
%install
This will place the extra packages you need in a subdir (the _pkg directory is created so go build ignores the path when running go build). We then explode the extra packages into that subdir, and ammend our GOPATH to point to it, so that can reference them without having to download them from the internet.
Once thats done you should be good to go.
I'm approving this review request, since you'll need to fix this before the package will build in koji.
When you are ready please continue the fedora packaging process by requesting a repo be created for this package using the fedpkg request-repo command (see https://fedoraproject.org/wiki/Package_Review_Process)
(In reply to Neil Horman from comment #18) > In regards to your koji issue, the build system uses kerberos to > authenticate, and you need to configure the FEDORAPROJECT.ORG realm. You > should get the realm configuration file installed with the fedora-packager > package. just run: > dnf install fedora-packager > > and you should be good to go. > > I'll review the package shortly Thanks for the review. We will take care of go packages as suggested. However, my Koji issue is still not solved. I tried uninstalling & reinstalling. Still getting same err [root@silpixa00399467 avijayan]# dnf install fedora-packager Last metadata expiration check: 0:57:08 ago on Tue 19 May 2020 23:01:19 IST. Package fedora-packager-0.6.0.4-1.fc32.noarch is already installed. Dependencies resolved. Nothing to do. Complete! [root@silpixa00399467 avijayan]# kinit avijayan kinit: Cannot contact any KDC for realm 'FEDORAPROJECT.ORG' while getting initial credentials Could you please help here? I'm able to login to https://admin.fedoraproject.org/ using same username: avijayan. sure, I'll take this offline though, so we don't confuse the review with troubleshooting this. I'll send you email shortly Spec URL: https://raw.githubusercontent.com/arunprabhu123/rmd/master/rmd.spec SRPM URL: https://github.com/arunprabhu123/rmd/raw/master/rmd-src-rpm.tar.gz Note: Fixed SPEC file & added bundled extra GO packages. I will start Koji build next. Could you please let me know the next steps & which fedora release would this be targeted to? Kindly excuse if its silly questions. (fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/rmd you still need to fix the items I emailed you about yesterday: 1) Document how to generate the rmd-extra-pkgs.tar.gz file 2) Remove the scripts subdirectory from /etc/rmd and replace the needed functionality by augmenting the %post and %preun scripts 3) Add -p to the install commands to preserve selinux context 4) Fix the man file inclusion to not specify .gz (use a * glob instead) Currently, your target is rawhide (the master branch of the git tree). We can target others if you like, but I don't see a need at the moment (In reply to Neil Horman from comment #24) > you still need to fix the items I emailed you about yesterday: > > 1) Document how to generate the rmd-extra-pkgs.tar.gz file > 2) Remove the scripts subdirectory from /etc/rmd and replace the needed > functionality by augmenting the %post and %preun scripts > 3) Add -p to the install commands to preserve selinux context > 4) Fix the man file inclusion to not specify .gz (use a * glob instead) > > Currently, your target is rawhide (the master branch of the git tree). We > can target others if you like, but I don't see a need at the moment All comments are fixed. Please find the SPEC file. https://raw.githubusercontent.com/arunprabhu123/rmd/master/rmd.spec Note: Am not able to upload the srpm to github as it is around 400MB. However, I updated rmd.spec to incorporate the comments. Currently there is only one script file in /etc/rmd/ --> setup_rmd_user.sh. The need for the same is documented in userguide.md file(part of docs) I'm getting new lint warnings due to these changes, rmd.x86_64: W: dangerous-command-in-%post chown rmd.x86_64: W: dangerous-command-in-%preun userdel These commands are required for installation & un-installation. Kindly let me know if it is Ok. Thanks in advance. FEDORA-2020-ea57a2e0f7 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-ea57a2e0f7 rmd-0.2.1-1.fc32 has been pushed to the Fedora 32 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-2020-ea57a2e0f7 FEDORA-2020-ea57a2e0f7 has been pushed to the Fedora 32 stable repository. If problem still persists, please make note of it in this bug report. |