[Bug 1638768] Review Request: fmt - Small, safe and fast formatting library for C++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1638768



--- Comment #7 from Kefu Chai <kchai@xxxxxxxxxx> ---
(In reply to Robert-André Mauchin from comment #6)
>  - Not used anymore for F28+
>  
> %post -p /sbin/ldconfig
> 
> %postun -p /sbin/ldconfig
> 
>   If you plan on packaging for EPEL7 or F27, use %ldconfig_scriptlets

yes, i plan to package for EPEL7. have changed to %ldconfig_scriptlets .

> 
>  - In order to avoid unintentional soname bump, we now forbid globbing the
> major soname version. Be more specific instead:
> 
> %{_libdir}/libfmt.so.5*
> 
>  - %{_datarootdir} → %{_datadir}
> 

thanks fixed all of them.

> 
> (In reply to Kefu Chai from comment #4)
> > to understand the reverse dependencies of fmt, i ran following commands on
> > an update-to-date fedora28:
> > 
> > $ for pkg in -devel "" -static -doc; do \
> >     dnf repoquery -q --alldeps --whatrequires fmt$pkg; \
> >   done
> > fmt-static-0:3.0.2-5.fc28.i686
> > fmt-static-0:3.0.2-5.fc28.x86_64
> > fmt-devel-0:3.0.2-5.fc28.i686
> > fmt-devel-0:3.0.2-5.fc28.x86_64
> > 
> > $ for pkg in -devel "" -static -doc; do \
> >   dnf repoquery --archlist=src --repoid=fedora-source -q --whatrequires
> > fmt$pkg; \
> > done
> > # nothing returned
> > 
> > 
> > so i think it's safe to update fmt{,-devel,-doc} on fedora28. and the same
> > is very likely to be true on rawhive.
> 
> $ dnf repoquery --whatrequires fmt --enablerepo="*-source"
> fmt-devel-0:3.0.2-7.fc29.i686
> fmt-devel-0:3.0.2-7.fc29.x86_64
> kodi-gbm-0:18.0-0.10.b3.fc29.x86_64
> kodi-gbm-0:18.0-0.9.b2.fc29.x86_64
> kodi-wayland-0:18.0-0.10.b3.fc29.x86_64
> kodi-wayland-0:18.0-0.9.b2.fc29.x86_64
> kodi-x11-0:18.0-0.10.b3.fc29.x86_64
> kodi-x11-0:18.0-0.9.b2.fc29.x86_64
> 
> dnf repoquery --whatrequires fmt-devel --enablerepo="*-source"
> fmt-static-0:3.0.2-7.fc29.i686
> fmt-static-0:3.0.2-7.fc29.x86_64
> kodi-0:18.0-0.10.b3.fc29.src
> kodi-0:18.0-0.9.b2.fc29.src
> 
> Bumping fmt would requires rebuilding kodi. You'll need to announce the bump
> in the devel mailing list one week in advance and coordinate directly with
> the kodi* maintainers.
> 

ahh! thank you! i checked the packaging of kodi. guess we will just need to 

change 

BuildRequires: fmt-devel

to

BuildRequires: fmt-devel >= 5.2.1

i will get in touch with kodi*'s maintainers over the devel mailing list.

> 
> 
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> [ ] = Manual review needed
> 
> 
> Issues:
> =======
> - ldconfig not called in %post and %postun for Fedora 28 and later.
>   Note: /sbin/ldconfig called in fmt
>   See: https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets
> 
> 
> ===== MUST items =====
> 
> C/C++:
> [x]: Package does not contain kernel modules.
> [x]: Package contains no static executables.
> [x]: If your application is a C or C++ application you must list a
>      BuildRequires against gcc, gcc-c++ or clang.
> [x]: Header files in -devel subpackage, if present.
> [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 (unspecified)", "BSD 2-clause "Simplified" License",
>      "Expat License", "Unknown or generated", "BSD 3-clause "New" or
>      "Revised" License". 185 files have unknown license. Detailed output of
>      licensecheck in /home/bob/packaging/review/fmt/review-
>      fmt/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.
> [-]: Large documentation must go in a -doc subpackage. Large could be size
>      (~1MB) or number of files.
>      Note: Documentation size is 92160 bytes in 2 files.

yes, the 92K document is usr/share/doc/fmt/api.html in fmt-doc package. that's
the main api document for this package.

> [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 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:
> [-]: Avoid bundling fonts in non-fonts packages.
>      Note: Package contains font files
> [-]: 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 fmt-doc
>      , fmt-debuginfo , fmt-debugsource
> [?]: 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]: Package should compile and build into binary rpms on all supported
>      architectures.
> [x]: %check is present and all tests pass.
> [x]: Packages should try to preserve timestamps of original installed
>      files.
> [x]: Reviewer should test that the package builds in mock.
> [x]: Buildroot is not present
> [x]: Package has no %clean section with rm -rf %{buildroot} (or
>      $RPM_BUILD_ROOT)
> [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
> [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
> [x]: Sources can be downloaded from URI in Source: tag
> [x]: SourceX is a working URL.
> [x]: Spec use %global instead of %define unless justified.
> 
> ===== EXTRA items =====
> 
> Generic:
> [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: fmt-5.2.1-1.fc30.x86_64.rpm
>           fmt-devel-5.2.1-1.fc30.x86_64.rpm
>           fmt-doc-5.2.1-1.fc30.noarch.rpm
>           fmt-debuginfo-5.2.1-1.fc30.x86_64.rpm
>           fmt-debugsource-5.2.1-1.fc30.x86_64.rpm
>           fmt-5.2.1-1.fc30.src.rpm
> fmt.x86_64: W: spelling-error %description -l en_US printf -> print, prints,
> print f

printf is not a typo. quote from the description section:

====8<=====
C++ Format is an open-source formatting library for C++. It can be used as a
safe alternative to printf or as a fast alternative to IOStreams.
====>8=====

so in this context, i guess it's fine to use printf.

> fmt-devel.x86_64: W: no-documentation

the document is packaged in fmt-doc, the license and changelog are included in
fmt package.

> fmt.src: W: spelling-error %description -l en_US printf -> print, prints,
> print f
> 6 packages and 0 specfiles checked; 0 errors, 3 warnings.


thanks for the review. following is the info of updated package:

Spec URL: https://raw.githubusercontent.com/tchaikov/libfmt/master/fmt.spec
SRPM URL:
https://copr-be.cloud.fedoraproject.org/results/tchaikov/libfmt/fedora-28-ppc64le/00812978-fmt/fmt-5.2.1-1.fc28.src.rpm
Description: C++ Format is an open-source formatting library for C++. It can be
used as a safe alternative to printf or as a fast alternative to IOStreams.
Fedora Account System Username: tchaikov
https://copr-be.cloud.fedoraproject.org/results/tchaikov/libfmt/fedora-28-ppc64le/00812978-fmt/fmt-5.2.1-1.fc28.src.rpm
koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=30342847
coprs build:
https://copr.fedorainfracloud.org/coprs/tchaikov/libfmt/build/812978/



$ rpmlint x86_64/fmt-5.2.1-1.fc28.x86_64.rpm
x86_64/fmt-devel-5.2.1-1.fc28.x86_64.rpm noarch/fmt-doc-5.2.1-1.fc28.noarch.rpm
fmt.x86_64: W: spelling-error %description -l en_US printf -> print, prints,
print f
fmt-devel.x86_64: W: no-documentation
3 packages and 0 specfiles checked; 0 errors, 2 warnings.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux