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
[fedora-review-service-build]
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
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
> - qtsingleapplication > - No justification given in spec file The upstream made incompatible changes to the lib; thus have to use the bundled one :)
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.
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 koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=102609492
(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.
> - 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.
> - 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.
updated: 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
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?)
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
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/
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}) ```
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 :-)
> 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
Created attachment 1982032 [details] The .spec file difference from Copr build 6139800 to 6247018
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
@felix What do you think of the package right now? It seems that the last question you mentioned has already been solved.
SPEC URL: https://topazus.fedorapeople.org/rpms/goldendict-ng.spec SRPM URL: https://topazus.fedorapeople.org/rpms/goldendict-ng-23.11.30-1.20230805gitb6420c8.fc40.src.rpm
+ 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
Created attachment 2002769 [details] The .spec file difference from Copr build 6247018 to 6722987
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.
remove rpath SPEC URL: https://topazus.fedorapeople.org/rpms/goldendict-ng.spec SRPM URL: https://topazus.fedorapeople.org/rpms/goldendict-ng-0-1.23.11.30gitb6420c8.fc40.src.rpm
Created attachment 2002778 [details] The .spec file difference from Copr build 6722987 to 6724251
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.
Seems good now. So I Approve the package.
The Pagure repository was created at https://src.fedoraproject.org/rpms/goldendict-ng
FEDORA-2023-0d80f79757 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-0d80f79757
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.