Bug 2213078 - Review Request: goldendict-ng - The Next Generation GoldenDict
Summary: Review Request: goldendict-ng - The Next Generation GoldenDict
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Beck Liu
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-06-07 06:15 UTC by Felix Wang
Modified: 2023-12-05 00:58 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
If this bug requires documentation, please select an appropriate Doc Type value.
Last Closed: 2023-12-05 00:58:54 UTC
Type: ---
Embargoed:
shattuckite: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 6139800 to 6247018 (1.93 KB, patch)
2023-08-07 02:53 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 6247018 to 6722987 (1.53 KB, patch)
2023-12-04 13:19 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 6722987 to 6724251 (564 bytes, patch)
2023-12-04 16:38 UTC, Fedora Review Service
no flags Details | Diff

Description Felix Wang 2023-06-07 06:15:13 UTC
SPEC URL: https://topazus.fedorapeople.org/rpms/goldendict-ng.spec
SRPM URL: https://topazus.fedorapeople.org/rpms/goldendict-ng-23.06.01-1.fc39.src.rpm

Description:
The Next Generation GoldenDict

Fedora Account System Username: topazus

koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=101892796

Reproducible: Always

Comment 1 Felix Wang 2023-06-07 06:23:31 UTC
[fedora-review-service-build]

Comment 3 Felix Kaechele 2023-06-19 21:48:38 UTC
Package Review
==============

===== List of Issues =====
- Licensing: License tags for bundled JavaScript libraries missing. They need to be added if the bundling is necessary and continued. See note about bundled libraries below.
- Package conflicts with files from goldendict but doesn't specify a Conflicts tag. See https://docs.fedoraproject.org/en-US/packaging-guidelines/Conflicts/ for details on the process.
- Package bundles:
  - qtsingleapplication
    - No justification given in spec file
    - Upstream references deprecated https://gitorious.org/qt-solutions/qt-solutions as source instead of canonical upstream https://github.com/qtproject/qt-solutions
    - Packaged in Fedora but would need a build against Qt6. For that this patch would need to be applied: https://github.com/qtproject/qt-solutions/commit/2fb541ecaf76c8592855ec86801ea58f87b4d58d
      Suggestion: File bug against Fedora component qtsingleapplication, then unbundle and use system library.
    - Only relevant if not being unbundled:
      - Provides tag is present, but misspelled ("boundles" instead of "bundles").
      - Provides tag is unversioned, qtsingleapplication upstream seems to have stopped increasing the version. A git tag could be used if it can be identified which git commit was used to create the bundled sources.
  - JavaScript libraries (see https://docs.fedoraproject.org/en-US/packaging-guidelines/JavaScript/):
    - Dark Reader v4.9.58
      MIT Licensed
      File: src/scripts/darkreader.js
    - iFrame Resizer - v4.3.2 - 2021-10-18
      MIT Licensed
      File: src/scripts/iframeResizer.contentWindow.min.js
            src/scripts/iframeResizer.min.js
    - jQuery v3.6.0
      MIT Licensed
      File: src/scripts/jquery-3.6.0.slim.min.js
- Package uses an ExclusiveArch tag for reasons related to qt6-webengine, this is permissible from my perspective but the approach mentioned in the referenced specfile could be used (BuildRequires qt6-srpm-macros and use %qt6_qtwebengine_arches macro). Your call.
- CMake uses pkg-config to identify the library devel packages to install. The spec file should therefor express library dependencies in that way: https://docs.fedoraproject.org/en-US/packaging-guidelines/PkgConfigBuildRequires/
  This has the added benefit that the package will build even when the user has ffmpeg installed through a third-party repository, which may conflict with ffmpeg-free-devel.
- rpmlint warning: unused-direct-shlib-dependency could be fixed by patching the CMake files to pass the as-needed flag for the fmt library, see https://stackoverflow.com/a/65819681 (this patch should be suggested upstream)
- rpmlint warning: no-manual-page-for-binary is permissible for GUI applications in my opinion.


===== Optional Suggestions =====
- Consider sorting the different BuildRequires blocks alphabetically


Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed

===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: 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.

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: "Unknown or generated", "GNU General Public License v3.0 or
     later", "*No copyright* Public domain", "*No copyright* GNU General
     Public License v3.0 or later", "*No copyright* Apache License 2.0",
     "GNU General Public License v1.0 or later", "GNU General Public
     License v2.0 or later", "GNU General Public License, Version 3", "BSD
     0-Clause License", "MIT License", "BSD 3-Clause License". 599 files
     have unknown license. Detailed output of licensecheck in
     /home/fkaechel/review/2213078-goldendict-ng/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[!]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by:
     /usr/share/goldendict(goldendict),
     /usr/share/goldendict/locale(goldendict)
[x]: %build honors applicable compiler flags or justifies otherwise.
[!]: Package contains no bundled libraries without FPC exception.
[-]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[!]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[!]: 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 20480 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 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]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: 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]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: %check is present and all tests pass.
[-]: 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]: 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:
[-]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 5171200 bytes in /usr/share
[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]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: goldendict-ng-23.06.01-1.fc39.x86_64.rpm
          goldendict-ng-debuginfo-23.06.01-1.fc39.x86_64.rpm
          goldendict-ng-debugsource-23.06.01-1.fc39.x86_64.rpm
          goldendict-ng-23.06.01-1.fc39.src.rpm
============================================================================================== rpmlint session starts ==============================================================================================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmp23b7xlkb')]
checks: 31, packages: 4

goldendict-ng.spec:53: W: unversioned-explicit-provides boundled(qtsingleapplication)
goldendict-ng.x86_64: W: no-manual-page-for-binary goldendict
=============================================================== 4 packages and 0 specfiles checked; 0 errors, 2 warnings, 0 badness; has taken 1.7 s ===============================================================




Rpmlint (debuginfo)
-------------------
Checking: goldendict-ng-debuginfo-23.06.01-1.fc39.x86_64.rpm
============================================================================================== rpmlint session starts ==============================================================================================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmppnmeg_o1')]
checks: 31, packages: 1

=============================================================== 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 0.8 s ===============================================================





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 31, packages: 3

goldendict-ng.x86_64: W: unused-direct-shlib-dependency /usr/bin/goldendict /lib64/libfmt.so.9
goldendict-ng.x86_64: W: no-manual-page-for-binary goldendict
 3 packages and 0 specfiles checked; 0 errors, 2 warnings, 0 badness; has taken 1.0 s 



Source checksums
----------------
https://github.com/xiaoyifang/goldendict-ng/archive/v23.06.01/goldendict-ng-23.06.01.tar.gz :
  CHECKSUM(SHA256) this package     : 0aabbe6acb4f1f9f9b95d77066b9823a86647a7c0c58a85c04b86a246fc9429b
  CHECKSUM(SHA256) upstream package : 0aabbe6acb4f1f9f9b95d77066b9823a86647a7c0c58a85c04b86a246fc9429b


Requires
--------
goldendict-ng (rpmlib, GLIBC filtered):
    glibc
    libQt6Core.so.6()(64bit)
    libQt6Core.so.6(Qt_6)(64bit)
    libQt6Core.so.6(Qt_6.5)(64bit)
    libQt6Core5Compat.so.6()(64bit)
    libQt6Core5Compat.so.6(Qt_6)(64bit)
    libQt6Gui.so.6()(64bit)
    libQt6Gui.so.6(Qt_6)(64bit)
    libQt6Multimedia.so.6()(64bit)
    libQt6Multimedia.so.6(Qt_6)(64bit)
    libQt6Network.so.6()(64bit)
    libQt6Network.so.6(Qt_6)(64bit)
    libQt6PrintSupport.so.6()(64bit)
    libQt6PrintSupport.so.6(Qt_6)(64bit)
    libQt6Svg.so.6()(64bit)
    libQt6Svg.so.6(Qt_6)(64bit)
    libQt6TextToSpeech.so.6()(64bit)
    libQt6TextToSpeech.so.6(Qt_6)(64bit)
    libQt6WebChannel.so.6()(64bit)
    libQt6WebChannel.so.6(Qt_6)(64bit)
    libQt6WebEngineCore.so.6()(64bit)
    libQt6WebEngineCore.so.6(Qt_6)(64bit)
    libQt6WebEngineWidgets.so.6()(64bit)
    libQt6WebEngineWidgets.so.6(Qt_6)(64bit)
    libQt6Widgets.so.6()(64bit)
    libQt6Widgets.so.6(Qt_6)(64bit)
    libQt6Xml.so.6()(64bit)
    libQt6Xml.so.6(Qt_6)(64bit)
    libX11.so.6()(64bit)
    libXtst.so.6()(64bit)
    libavcodec.so.60()(64bit)
    libavcodec.so.60(LIBAVCODEC_60)(64bit)
    libavformat.so.60()(64bit)
    libavformat.so.60(LIBAVFORMAT_60)(64bit)
    libavutil.so.58()(64bit)
    libavutil.so.58(LIBAVUTIL_58)(64bit)
    libbz2.so.1()(64bit)
    libc.so.6()(64bit)
    libeb.so.16()(64bit)
    libfmt.so.9()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libhunspell-1.7.so.0()(64bit)
    liblzma.so.5()(64bit)
    liblzma.so.5(XZ_5.0)(64bit)
    liblzo2.so.2()(64bit)
    libm.so.6()(64bit)
    libopencc.so.1.1()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.13)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libswresample.so.4()(64bit)
    libswresample.so.4(LIBSWRESAMPLE_4)(64bit)
    libtomlplusplus.so.3()(64bit)
    libvorbisfile.so.3()(64bit)
    libxapian.so.30()(64bit)
    libz.so.1()(64bit)
    libz.so.1(ZLIB_1.2.0)(64bit)
    libz.so.1(ZLIB_1.2.0.2)(64bit)
    libz.so.1(ZLIB_1.2.2.3)(64bit)
    libzim.so.8()(64bit)
    rtld(GNU_HASH)

goldendict-ng-debuginfo (rpmlib, GLIBC filtered):

goldendict-ng-debugsource (rpmlib, GLIBC filtered):



Provides
--------
goldendict-ng:
    application()
    application(org.xiaoyifang.GoldenDict_NG.desktop)
    boundled(qtsingleapplication)
    goldendict-ng
    goldendict-ng(x86-64)
    metainfo()
    metainfo(org.xiaoyifang.GoldenDict_NG.metainfo.xml)
    mimehandler(x-scheme-handler/dict)
    mimehandler(x-scheme-handler/goldendict)

goldendict-ng-debuginfo:
    debuginfo(build-id)
    goldendict-ng-debuginfo
    goldendict-ng-debuginfo(x86-64)

goldendict-ng-debugsource:
    goldendict-ng-debugsource
    goldendict-ng-debugsource(x86-64)



Generated by fedora-review 0.9.0 (6761b6c) last change: 2022-08-23
Command line :/usr/bin/fedora-review -b 2213078
Buildroot used: fedora-rawhide-x86_64
Active plugins: C/C++, Shell-api, Generic
Disabled plugins: Haskell, Perl, Java, fonts, Ocaml, PHP, SugarActivity, Python, R
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 4 shenlebantongying 2023-06-24 19:24:53 UTC
>   - qtsingleapplication
>    - No justification given in spec file

The upstream made incompatible changes to the lib; thus have to use the bundled one :)

Comment 5 Felix Wang 2023-06-26 12:44:43 UTC
Thanks for your clear and detailed comments on the package review.

> - Package conflicts with files from goldendict but doesn't specify a Conflicts tag. See https://docs.fedoraproject.org/en-US/packaging-guidelines/Conflicts/ for details on the process.

Done.

> issues about license and bundled of JavaScript libraries

Many thanks for the extensive clarification of JavaScript libraries licensing and their bundled things. 
Accutually, I am not familiar with these things. I've updated the spec file accordingly, hope they are correct now.

> - Package uses an ExclusiveArch tag for reasons related to qt6-webengine, this is permissible from my perspective but the approach mentioned in the referenced specfile could be used (BuildRequires qt6-srpm-macros and use %qt6_qtwebengine_arches macro). Your call.

%qt6_qtwebengine_arches macro includes the %{ix86} architecure, which is not supported by qt6-webengine, so I use `ExclusiveArch: aarch64 x86_64` to explicitly set the supported architectures.

Ref: https://src.fedoraproject.org/rpms/qt6/blob/rawhide/f/macros.qt6-srpm#_8

>- CMake uses pkg-config to identify the library devel packages to install. The spec file should therefor express library >dependencies in that way: https://docs.fedoraproject.org/en-US/packaging-guidelines/PkgConfigBuildRequires/
>  This has the added benefit that the package will build even when the user has ffmpeg installed through a third-party >repository, which may conflict with ffmpeg-free-devel.

I converted most of the dependencies to the corresponding pkgconfig() or cmake() format, but I do not find a way to how to use pkgconfig() to express the dependency of ffmpeg-free-devel.

> - rpmlint warning: unused-direct-shlib-dependency could be fixed by patching the CMake files to pass the as-needed flag for the fmt library, see https://stackoverflow.com/a/65819681 (this patch should be suggested upstream)

The --as-needed flag already has been added to LDFLAGS by default. I do not have any idea about how to fix this warning.

Ref: https://fedoraproject.org/wiki/Changes/RemoveExcessiveLinking

(In reply to shenlebantongying from comment #4)
> >   - qtsingleapplication
> >    - No justification given in spec file
> 
> The upstream made incompatible changes to the lib; thus have to use the
> bundled one :)

Here is the comment from the maintainer of the upstream project, so I set the qtsingleapplication dependency as bundled.

Comment 7 Felix Kaechele 2023-06-27 01:40:58 UTC
(In reply to Felix Wang from comment #5)
> Thanks for your clear and detailed comments on the package review.
> 
> > - Package conflicts with files from goldendict but doesn't specify a Conflicts tag. See https://docs.fedoraproject.org/en-US/packaging-guidelines/Conflicts/ for details on the process.
> 
> Done.

If the conflict could be avoided (i.e. by renaming the binary and data directories) that would be preferred. This would support a scenario in which a user may decide to install both variants of the package.
That would fulfill the "As a general rule, Fedora packages must NOT contain any usage of the Conflicts: field." part of the packaging guidelines.

> > issues about license and bundled of JavaScript libraries
> 
> Many thanks for the extensive clarification of JavaScript libraries
> licensing and their bundled things. 
> Accutually, I am not familiar with these things. I've updated the spec file
> accordingly, hope they are correct now.

Technically, JS libraries need to be unbundled like any other bundled library. In this instance it doesn't make a lot of sense as the build process then bundles the JS files into the binary. So any change to the distribution version of the JS files would have to trigger a reboot of this package regardless. So I believe bundling in this instance is an acceptable solution.

> > - Package uses an ExclusiveArch tag for reasons related to qt6-webengine, this is permissible from my perspective but the approach mentioned in the referenced specfile could be used (BuildRequires qt6-srpm-macros and use %qt6_qtwebengine_arches macro). Your call.
> 
> %qt6_qtwebengine_arches macro includes the %{ix86} architecure, which is not
> supported by qt6-webengine, so I use `ExclusiveArch: aarch64 x86_64` to
> explicitly set the supported architectures.
> 
> Ref: https://src.fedoraproject.org/rpms/qt6/blob/rawhide/f/macros.qt6-srpm#_8

OK, that makes sense then.

> >- CMake uses pkg-config to identify the library devel packages to install. The spec file should therefor express library >dependencies in that way: https://docs.fedoraproject.org/en-US/packaging-guidelines/PkgConfigBuildRequires/
> >  This has the added benefit that the package will build even when the user has ffmpeg installed through a third-party >repository, which may conflict with ffmpeg-free-devel.
> 
> I converted most of the dependencies to the corresponding pkgconfig() or
> cmake() format, but I do not find a way to how to use pkgconfig() to express
> the dependency of ffmpeg-free-devel.

In the upstream sources you can find the ffmpeg headers pulled in inside the file src/ffmpegaudio.cc:
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavutil/avutil.h>
#include "libswresample/swresample.h"

As such you'd be looking at:
pkgconfig(libavcodec)
pkgconfig(libavformat)
pkgconfig(libavutil)
pkgconfig(libswresample)

These dependencies are provided by the respective lib*-free-devel packages but alternatively also by ffmpeg-devel from RPMFusion. By using the pkgconfig BuildRequires a user can build the package locally using either Fedora or RPMFusion FFmpeg without creating a conflict.

The pkgconfig BuildRequires for xz-devel is pkgconfig(liblzma) as can be seen by running dnf repoquery --provides xz-devel

> > - rpmlint warning: unused-direct-shlib-dependency could be fixed by patching the CMake files to pass the as-needed flag for the fmt library, see https://stackoverflow.com/a/65819681 (this patch should be suggested upstream)
> 
> The --as-needed flag already has been added to LDFLAGS by default. I do not
> have any idea about how to fix this warning.
> 
> Ref: https://fedoraproject.org/wiki/Changes/RemoveExcessiveLinking

This one is certainly a bit weird. The source references fmt but the symbol doesn't show up in the binary. I'll need to investigate this a bit further.

> (In reply to shenlebantongying from comment #4)
> > >   - qtsingleapplication
> > >    - No justification given in spec file
> > 
> > The upstream made incompatible changes to the lib; thus have to use the
> > bundled one :)
> 
> Here is the comment from the maintainer of the upstream project, so I set
> the qtsingleapplication dependency as bundled.

Understood. I think bundling is acceptable in this case.

----
Summarizing the To Dos:
- Please resolve the Conflicts by renaming the binaries
- Introduce the pkgconfig requires for the remaining libraries.
- I will investigate the linking warning a bit further. I don't think it's a real issue but I'd like to understand better why this is happening. May be an issue with the ordering of the linker flags or an overlap from fmt being supported in the stdlib of newer compiler versions.

Comment 8 shenlebantongying 2023-06-27 12:57:25 UTC
> - rpmlint warning: unused-direct-shlib-dependency could be fixed by patching the CMake files to pass the as-needed flag for the fmt library, see https://stackoverflow.com/a/65819681 (this patch should be suggested upstream)

The unused-direct-shlib-dependency only reads `ldd -u`

Adding the `--as-needed` as suggested by the StackOverflow answer will erase direct linking to `libfmt.so` in the `Release` build. The fmt does use things like constexpr aggressively. I suspect they are optimized away entirely.

The CMakeLists.txt does not include anything that modifies linker options. 

Most distros have --as-needed enabled by default, so I don't think adding it to CMakeLists.txt is necessary. CMake does read the value of LDFLAGS https://cmake.org/cmake/help/latest/envvar/LDFLAGS.html . I think something else is wrong, causing this flag to be ineffective.

Comment 9 Felix Wang 2023-07-04 07:33:39 UTC
> - Please resolve the Conflicts by renaming the binaries

The upstream maintainer said that:
> Not changing binary name & resource name has a few benefits :)

https://github.com/xiaoyifang/goldendict-ng/issues/729#issuecomment-1609192553
https://github.com/xiaoyifang/goldendict-ng/issues/690

> - Introduce the pkgconfig requires for the remaining libraries.

Done.

Comment 11 shenlebantongying 2023-07-23 23:08:18 UTC
Friends, I think the culprit responsible for "rpmlint warning: unused-direct-shlib-dependency " is this line:

>     -DCMAKE_BUILD_TYPE=Release \

The %cmake macro already set the correct optimization levels & other things via %set_build_flags 

The defination of %cmake: https://src.fedoraproject.org/rpms/cmake/blob/rawhide/f/macros.cmake.in
The --as-needed is added here, and it is included in %set_build_flags https://src.fedoraproject.org/rpms/redhat-rpm-config/blob/f38/f/macros#_352

Adding -DCMAKE_BUILD_TYPE=Release will append extra things to CXXFLAGS, which may conflict with existing flags.

---

Other CMake packages are built without -DCMAKE_BUILD_TYPE.

Such as
* https://src.fedoraproject.org/rpms/qbittorrent/blob/rawhide/f/qbittorrent.spec

Or a complete search of fedora's packages:
https://sourcegraph.com/search?q=context%3Aglobal+repo%3A%5Esrc.fedoraproject.org%2F+file%3A%5C.spec%24+%25cmake&patternType=regexp&sm=0&groupBy=repo

(Note that there are a few existing packages that include `-DCMAKE_BUILD_TYPE`, which might be an error. Maybe a new task/bug should be filed somewhere to clean them up?)

Comment 12 Felix Wang 2023-07-24 01:59:21 UTC
Ok, I removed the CMAKE_BUILD_TYPE cmake option to deal with unused-direct-shlib-dependency warning, which it will work. Felix Kaechele, do you have any more comments on the package review?

SPEC URL: https://topazus.fedorapeople.org/rpms/goldendict-ng.spec
SRPM URL: https://topazus.fedorapeople.org/rpms/goldendict-ng-23.06.01-1.fc39.src.rpm

Comment 13 Felix Kaechele 2023-08-05 01:09:07 UTC
OK, that looks good from a technical perspective.

From a Packaging Guidelines perspective I'm a little bit on the fence whether "Conflicts: goldendict" is the best solution.

I've looked a bit more into this issue and this is my current thought process:

The packaging guidelines state: "There are many types of files which can conflict between multiple packages. Fedora strongly discourages using Conflicts: to resolve these cases." [1]
Also [2] states that "Fedora Packagers should make every effort to convince the upstreams to rename the binaries to resolve the conflict".
The comment at [3] and [4] would suggest that the upstream author is aware of the issue and may be thinking about other ways to solve the problem. We could wait for this to happen or proceed in the interim.

Then in [4] the Packaging Guidelines say "If neither upstream renames, we would then approach other distributions (distributions-list[at]freedesktop.org is a good place to discuss this) about renaming that can be done in all distros.".
I went and checked how other distributions, if they have goldendict-ng packaged in their repositories, deal with it. To my surprise almost all go with the "Conflicts" route.
- ArchLinux (AUR): https://aur.archlinux.org/packages/goldendict-ng
- Debian: https://salsa.debian.org/debian/goldendict-ng/-/blob/a60e71cb615f29d93165b9bf4db2affb0d7b3da7/debian/control#L48
- Ubuntu: Imports the Debian package unchanged
- openSUSE: Packaged goldendict-ng as goldendict but has since renamed it https://build.opensuse.org/request/show/1087962, the openSUSE packager is also active in the discussions around renaming in the GitHub issues/PRs.

Given that this package creates file-level conflicts with goldendict there isn't really a way to parallel install both versions at this point without patching goldendict-ng to both install and look for it's asset files in a different location. That would create a Fedora-specific solution that deviates from how other distributions behave, so I'd avoid that.
With this being out of the picture the whole Alternatives / Environment Modules ([6,7]) route is also not viable.

As such I conclude that for now it'd have to be "Conflicts: goldendict" until upstream makes up their mind on whether they would like to rename files and locations.

As per [2] "However, if neither upstream is willing to rename the binaries to resolve the conflict, AND the binaries are not viable candidates for alternatives or environment modules (incompatible runtimes), as long as there are no clear cases for both packages to be installed simultaneously, explicit Conflicts are permitted at the packager’s discretion. Both packages must carry Conflicts in this case.".

I am satisfied that under the above mentioned rule adding the "Conflicts: goldendict" is at your discretion. But it also means a bug needs to be filed against goldendict for it to also include a "Conflicts: goldendict-ng".

If this is the course of action you would like to take please open a bug against goldendict and add it to this bug as a blocker.

[1]: https://docs.fedoraproject.org/en-US/packaging-guidelines/Conflicts/#_common_conflicting_files_cases_and_solutions
[2]: https://docs.fedoraproject.org/en-US/packaging-guidelines/Conflicts/#_incompatible_binary_files_with_conflicting_naming_and_stubborn_upstreams
[3]: https://github.com/xiaoyifang/goldendict-ng/issues/690#issuecomment-1548702315
[4]: https://github.com/xiaoyifang/goldendict-ng/pull/693#issuecomment-1552357324
[5]: https://docs.fedoraproject.org/en-US/packaging-guidelines/Conflicts/#_approaching_upstream
[6]: https://docs.fedoraproject.org/en-US/packaging-guidelines/Alternatives/
[7]: https://docs.fedoraproject.org/en-US/packaging-guidelines/EnvironmentModules/

Comment 14 shenlebantongying 2023-08-05 17:36:00 UTC
Thanks for the detailed explanation of Fedora's guidelines. We can go either way, marked as conflict or co-exist install.

If we choose to co-exist install, I have upstreamed a new flag to co-exist with the original GD in parallel

https://github.com/xiaoyifang/goldendict-ng/pull/1041

It cannot be directly applied to v23.07.23 due to a file name change https://github.com/xiaoyifang/goldendict-ng/releases/tag/v23.07.23

but I attached an equivalent patch for v23.07.23 below. We can carry this patch for one version and then drop it in the next release.

```
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 50939bdb..18cb077d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,13 +11,19 @@ option(WITH_ZIM "enable zim support" ON)
 option(USE_SYSTEM_FMT "use system fmt instead of bundled one" OFF)
 option(USE_SYSTEM_TOML "use system toml++ instead of bundled one" OFF)
 
+option(USE_ALTERNATIVE_NAME "Force the name goldendict-ng " OFF)
+
 include(FeatureSummary)
 
 project(goldendict-ng
         VERSION 23.06.02
         LANGUAGES CXX C)
 
-set(GOLDENDICT "goldendict") # binary/executable name
+if (NOT USE_ALTERNATIVE_NAME)
+    set(GOLDENDICT "goldendict") # binary/executable name
+else ()
+    set(GOLDENDICT "goldendict-ng")
+endif ()
 
 set(CMAKE_AUTOUIC ON)
 set(CMAKE_AUTOMOC ON)
@@ -94,11 +100,6 @@ endif ()
 # Note: used as c++ string thus need surrounding " "
 add_compile_definitions(PROGRAM_VERSION="${PROJECT_VERSION}")
 
-if (LINUX)
-    # see: config.cc -> getProgramDataDir
-    add_compile_definitions(PROGRAM_DATA_DIR="${CMAKE_INSTALL_PREFIX}/share/goldendict")
-endif ()
-
 target_link_libraries(${GOLDENDICT} PRIVATE
         Qt6::Xml
         Qt6::Concurrent
@@ -194,9 +195,24 @@ if (LINUX OR BSD)
     install(FILES ${CMAKE_SOURCE_DIR}/redist/org.xiaoyifang.GoldenDict_NG.desktop DESTINATION share/applications)
     install(FILES ${CMAKE_SOURCE_DIR}/redist/org.xiaoyifang.GoldenDict_NG.metainfo.xml DESTINATION share/metainfo)
 
-    install(FILES ${CMAKE_SOURCE_DIR}/redist/icons/goldendict.png DESTINATION share/pixmaps)
-
-    install(FILES ${qm_files} DESTINATION share/goldendict/locale)
+    if (NOT USE_ALTERNATIVE_NAME)
+        # see: config.cc -> getProgramDataDir
+        add_compile_definitions(PROGRAM_DATA_DIR="${CMAKE_INSTALL_PREFIX}/share/goldendict")
+        install(FILES ${CMAKE_SOURCE_DIR}/redist/icons/goldendict.png DESTINATION share/pixmaps)
+        install(FILES ${qm_files} DESTINATION share/goldendict/locale)
+    else ()
+        add_compile_definitions(PROGRAM_DATA_DIR="${CMAKE_INSTALL_PREFIX}/share/goldendict-ng")
+        install(FILES ${CMAKE_SOURCE_DIR}/redist/icons/goldendict.png DESTINATION share/pixmaps
+                RENAME goldendict-ng.png)
+        install(FILES ${qm_files} DESTINATION share/goldendict-ng/locale)
+
+        block() # patch the desktop file to adapt the binary & icon file's name change
+            file(READ "${CMAKE_SOURCE_DIR}/redist/org.xiaoyifang.GoldenDict_NG.desktop" DESKTOP_FILE_CONTENT)
+            string(REGEX REPLACE "\nIcon=goldendict\n" "\nIcon=goldendict-ng\n" DESKTOP_FILE_CONTENT "${DESKTOP_FILE_CONTENT}")
+            string(REGEX REPLACE "\nExec=goldendict %u\n" "\nExec=goldendict-ng %u\n" DESKTOP_FILE_CONTENT "${DESKTOP_FILE_CONTENT}")
+            file(WRITE "${CMAKE_SOURCE_DIR}/redist/org.xiaoyifang.GoldenDict_NG.desktop" "${DESKTOP_FILE_CONTENT}")
+        endblock()
+    endif ()
 endif ()
 
 qt_finalize_target(${GOLDENDICT})
```

Comment 15 Felix Kaechele 2023-08-06 02:16:45 UTC
This is great. Allow parallel installation of both versions of goldendict in Fedora is the best outcome for everyone.
Thanks!

I agree that we can carry the patch for now and drop it for the next release.

This should be the last thing we need for this review to be done :-)

Comment 16 Felix Wang 2023-08-07 02:42:07 UTC
> If we choose to co-exist install, I have upstreamed a new flag to co-exist with the original GD in parallel
>
> https://github.com/xiaoyifang/goldendict-ng/pull/1041

Very appreciated for the works you both did to make the goldendict-ng package to comply with the Fedora packaging guidelines. I selected the snapshot which is from commit id of 18cfea887b6aa26e393acede3f8f4754d4d06244, https://github.com/xiaoyifang/goldendict-ng/commit/18cfea887b6aa26e393acede3f8f4754d4d06244

Allow co-existence of both versions of goldendict and goldendict-ng, remove "Conflicts: goldendict"

SPEC URL: https://topazus.fedorapeople.org/rpms/goldendict-ng.spec
SRPM URL: https://topazus.fedorapeople.org/rpms/goldendict-ng-23.07.23-1.20230805git18cfea8.fc39.src.rpm

Comment 17 Fedora Review Service 2023-08-07 02:53:32 UTC
Created attachment 1982032 [details]
The .spec file difference from Copr build 6139800 to 6247018

Comment 18 shenlebantongying 2023-09-12 22:50:52 UTC
I'm unsure about Fedora's policy, but can we get into Fedora39 before the final freeze? https://fedorapeople.org/groups/schedule/f-39/f-39-key-tasks.html

Comment 19 Felix Wang 2023-11-22 10:14:06 UTC
@felix What do you think of the package right now? It seems that the last question you mentioned has already been solved.

Comment 21 Beck Liu 2023-12-04 13:12:29 UTC
+ package name is OK
+ license is acceptable for Fedora
+ builds and installs OK
+ the dependencies look correct
+ no scriptlets needed or present

And all the comments from another reviewer has been resolved.

> goldendict-ng.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/goldendict-ng (RUNPATH: $ORIGIN:$ORIGIN/../lib64)

the rpath issue should be solved by `chrpath --delete %{buildroot}%{_bindir}/goldendict-ng`



Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed



===== MUST items =====

C/C++:
[ ]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
[ ]: Package does not contain kernel modules.
[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]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.

Generic:
[ ]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
     Note: Using prebuilt packages
[ ]: 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. No licenses
     found. Please check the source files for licenses manually.
[ ]: License file installed when any subpackage combination is installed.
[ ]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[ ]: %build honors applicable compiler flags or justifies otherwise.
[ ]: Package contains no bundled libraries without FPC exception.
[ ]: Changelog in prescribed format.
[ ]: Sources contain only permissible code or content.
[ ]: Development files must be in a -devel package
[ ]: Package uses nothing in %doc for runtime.
[ ]: Package consistently uses macros (instead of hard-coded directory
     names).
[ ]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
[ ]: Package obeys FHS, except libexecdir and /usr/target.
[ ]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: Requires correct, justified where necessary.
[ ]: Spec file is legible and written in American English.
[ ]: Package contains systemd file(s) if in need.
[ ]: Useful -debuginfo package or justification otherwise.
[ ]: 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 11257 bytes in 1 files.
[ ]: Package complies to the Packaging Guidelines
[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]: The License field must be a valid SPDX expression.
[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]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[!]: Reviewer should test that the package builds in mock.
[ ]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[ ]: Final provides and requires are sane (see attachments).
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[ ]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[ ]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed
     files.
[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]: 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:
[ ]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 5294080 bytes in /usr/share
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.


Rpmlint
-------
Checking: goldendict-ng-23.11.30-1.20230805gitb6420c8.fc40.x86_64.rpm
          goldendict-ng-debuginfo-23.11.30-1.20230805gitb6420c8.fc40.x86_64.rpm
          goldendict-ng-debugsource-23.11.30-1.20230805gitb6420c8.fc40.x86_64.rpm
          goldendict-ng-23.11.30-1.20230805gitb6420c8.fc40.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpknpnwov5')]
checks: 31, packages: 4

goldendict-ng.spec:67: W: unversioned-explicit-provides bundled(qtsingleapplication)
goldendict-ng.spec:68: W: unversioned-explicit-provides bundled(js-darkreader)
goldendict-ng.spec:69: W: unversioned-explicit-provides bundled(js-iframe-resizer)
goldendict-ng.spec:70: W: unversioned-explicit-provides bundled(js-jquery)
goldendict-ng.x86_64: W: no-manual-page-for-binary goldendict-ng
goldendict-ng.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/goldendict-ng (RUNPATH: $ORIGIN:$ORIGIN/../lib64)
 4 packages and 0 specfiles checked; 1 errors, 5 warnings, 1 badness; has taken 1.2 s 




Rpmlint (debuginfo)
-------------------
Checking: goldendict-ng-debuginfo-23.11.30-1.20230805gitb6420c8.fc40.x86_64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpd50ki5vm')]
checks: 31, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 0.5 s 





Rpmlint (installed packages)
----------------------------
(none): E: there is no installed rpm "goldendict-ng".
(none): E: there is no installed rpm "goldendict-ng-debugsource".
(none): E: there is no installed rpm "goldendict-ng-debuginfo".
There are no files to process nor additional arguments.
Nothing to do, aborting.
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 3

 0 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 filtered, 0 badness; has taken 0.0 s 



Source checksums
----------------
https://github.com/xiaoyifang/goldendict-ng/archive/b6420c87f7c6aa23a9aad2cf44800568862d0107/goldendict-ng-b6420c87f7c6aa23a9aad2cf44800568862d0107.tar.gz :
  CHECKSUM(SHA256) this package     : a8a367050a2639b7de2e9bf22ce887eda83b0b779c543df6b3ce1bdd7d3c10e2
  CHECKSUM(SHA256) upstream package : a8a367050a2639b7de2e9bf22ce887eda83b0b779c543df6b3ce1bdd7d3c10e2


Requires
--------
goldendict-ng (rpmlib, GLIBC filtered):
    libQt6Core.so.6()(64bit)
    libQt6Core.so.6(Qt_6)(64bit)
    libQt6Core.so.6(Qt_6.6)(64bit)
    libQt6Core5Compat.so.6()(64bit)
    libQt6Core5Compat.so.6(Qt_6)(64bit)
    libQt6Gui.so.6()(64bit)
    libQt6Gui.so.6(Qt_6)(64bit)
    libQt6Multimedia.so.6()(64bit)
    libQt6Multimedia.so.6(Qt_6)(64bit)
    libQt6Network.so.6()(64bit)
    libQt6Network.so.6(Qt_6)(64bit)
    libQt6PrintSupport.so.6()(64bit)
    libQt6PrintSupport.so.6(Qt_6)(64bit)
    libQt6TextToSpeech.so.6()(64bit)
    libQt6TextToSpeech.so.6(Qt_6)(64bit)
    libQt6WebChannel.so.6()(64bit)
    libQt6WebChannel.so.6(Qt_6)(64bit)
    libQt6WebEngineCore.so.6()(64bit)
    libQt6WebEngineCore.so.6(Qt_6)(64bit)
    libQt6WebEngineWidgets.so.6()(64bit)
    libQt6WebEngineWidgets.so.6(Qt_6)(64bit)
    libQt6Widgets.so.6()(64bit)
    libQt6Widgets.so.6(Qt_6)(64bit)
    libQt6Xml.so.6()(64bit)
    libQt6Xml.so.6(Qt_6)(64bit)
    libX11.so.6()(64bit)
    libXtst.so.6()(64bit)
    libavcodec.so.60()(64bit)
    libavcodec.so.60(LIBAVCODEC_60)(64bit)
    libavformat.so.60()(64bit)
    libavformat.so.60(LIBAVFORMAT_60)(64bit)
    libavutil.so.58()(64bit)
    libavutil.so.58(LIBAVUTIL_58)(64bit)
    libbz2.so.1()(64bit)
    libc.so.6()(64bit)
    libeb.so.16()(64bit)
    libfmt.so.10()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libhunspell-1.7.so.0()(64bit)
    liblzma.so.5()(64bit)
    liblzma.so.5(XZ_5.0)(64bit)
    liblzo2.so.2()(64bit)
    libm.so.6()(64bit)
    libopencc.so.1.1()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.13)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libswresample.so.4()(64bit)
    libswresample.so.4(LIBSWRESAMPLE_4)(64bit)
    libtomlplusplus.so.3()(64bit)
    libvorbisfile.so.3()(64bit)
    libxapian.so.30()(64bit)
    libz.so.1()(64bit)
    libz.so.1(ZLIB_1.2.0)(64bit)
    libz.so.1(ZLIB_1.2.0.2)(64bit)
    libz.so.1(ZLIB_1.2.2.3)(64bit)
    libzim.so.8()(64bit)
    rtld(GNU_HASH)

goldendict-ng-debuginfo (rpmlib, GLIBC filtered):

goldendict-ng-debugsource (rpmlib, GLIBC filtered):



Provides
--------
goldendict-ng:
    application()
    application(io.github.xiaoyifang.goldendict_ng.desktop)
    bundled(js-darkreader)
    bundled(js-iframe-resizer)
    bundled(js-jquery)
    bundled(qtsingleapplication)
    goldendict-ng
    goldendict-ng(x86-64)
    metainfo()
    metainfo(io.github.xiaoyifang.goldendict_ng.metainfo.xml)
    mimehandler(x-scheme-handler/dict)
    mimehandler(x-scheme-handler/goldendict)

goldendict-ng-debuginfo:
    debuginfo(build-id)
    goldendict-ng-debuginfo
    goldendict-ng-debuginfo(x86-64)

goldendict-ng-debugsource:
    goldendict-ng-debugsource
    goldendict-ng-debugsource(x86-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/bin/fedora-review --no-colors --prebuilt --rpm-spec --name goldendict-ng --mock-config /var/lib/copr-rpmbuild/results/configs/child.cfg
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, C/C++, Shell-api
Disabled plugins: Python, R, SugarActivity, Haskell, fonts, Ocaml, PHP, Perl, Java
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 22 Fedora Review Service 2023-12-04 13:19:01 UTC
Created attachment 2002769 [details]
The .spec file difference from Copr build 6247018 to 6722987

Comment 23 Fedora Review Service 2023-12-04 13:19:04 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6722987
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2213078-goldendict-ng/fedora-rawhide-x86_64/06722987-goldendict-ng/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 25 Fedora Review Service 2023-12-04 16:38:57 UTC
Created attachment 2002778 [details]
The .spec file difference from Copr build 6722987 to 6724251

Comment 26 Fedora Review Service 2023-12-04 16:38:59 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6724251
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2213078-goldendict-ng/fedora-rawhide-x86_64/06724251-goldendict-ng/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 27 Beck Liu 2023-12-05 00:32:38 UTC
Seems good now. So I Approve the package.

Comment 28 Fedora Admin user for bugzilla script actions 2023-12-05 00:35:33 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/goldendict-ng

Comment 29 Fedora Update System 2023-12-05 00:57:09 UTC
FEDORA-2023-0d80f79757 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-0d80f79757

Comment 30 Fedora Update System 2023-12-05 00:58:54 UTC
FEDORA-2023-0d80f79757 has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.