Spec URL: https://download.copr.fedorainfracloud.org/results/yanqiyu/fcitx5/fedora-33-x86_64/01628036-fcitx5-chinese-addons/fcitx5-chinese-addons.spec SRPM URL: https://download.copr.fedorainfracloud.org/results/yanqiyu/fcitx5/fedora-33-x86_64/01628036-fcitx5-chinese-addons/fcitx5-chinese-addons-0-0.2.20200812gitef9beb7.fc33.src.rpm Description: Chinese related addon for fcitx5 Fedora Account System Username: yanqiyu
Added ExcludeArch: i686 After approval and repo created I will follow: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures to fill architecture_build_failures bug
COPR build: https://copr.fedorainfracloud.org/coprs/andymenderunix/fcitx5/build/1627154/ > BuildRequires: boost-devel > BuildRequires: cmake > BuildRequires: curl-devel Minor thing: curl provides a pkgconfig file so it's okay to use "pkgconfig(curl)" > %{_libdir}/fcitx5/qt5/libpinyindictmanager.so > %{_datadir}/fcitx5/* > %{_datadir}/icons/hicolor/*/apps/* > %files devel > %{_includedir}/Fcitx5/Module/fcitx-module/* > %{_libdir}/cmake/Fcitx5Module* I'm a little on the fence with some of the above wildcards, though the files are clearly split across multiple dirs (like the %{_datadir}/fcitx5/{addon,inputmethod,lua,...} dirs) so one would have to list them individually otherwise. Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - Package installs properly. Note: Installation errors (see attachment) See: https://docs.fedoraproject.org/en-US/packaging-guidelines/ ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files in private %_libdir subdirectory (see attachment). Verify they are not in ld path. Review: For internal use only. Ignore warning. [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 successfully compiles and builds into binary rpms on at least one supported primary architecture. Note: Using prebuilt packages Review: Tested in COPR. [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated", "*No copyright* GNU Lesser General Public License", "GNU Lesser General Public License". 163 files have unknown license. Detailed output of licensecheck in /home/amender/rpmbuild/SPECS/fcitx5-chinese-addons/fcitx5-chinese- addons/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [x]: Package requires other packages for directories it uses. Note: No known owner of /usr/lib64/fcitx5/qt5, /usr/lib64/fcitx5, /usr/include/Fcitx5, /usr/include/Fcitx5/Module, /usr/include/Fcitx5/Module/fcitx-module, /usr/share/fcitx5 Review: Above dirs are provided by dependencies. [x]: Package must own all directories that it creates. Note: Directories without known owners: /usr/include/Fcitx5/Module/fcitx-module, /usr/lib64/fcitx5/qt5, /usr/share/fcitx5, /usr/include/Fcitx5, /usr/lib64/fcitx5, /usr/include/Fcitx5/Module Review: as above. [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. Review: Ignore bogus rpmlint warnings. [x]: Sources contain only permissible code or content. [-]: Package contains desktop file if it is a GUI application. [x]: Development files must be in a -devel package [?]: Package uses nothing in %doc for runtime. [x]: The spec file handles locales properly. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [-]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 10240 bytes in 1 files. [x]: Package complies to the Packaging Guidelines [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 does not own files or directories owned by other packages. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package must not depend on deprecated() packages. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: 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: [x]: Reviewer should test that the package builds in mock. Review: Builds in COPR and locally. [-]: 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. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: Package should compile and build into binary rpms on all supported architectures. Review: Tested in COPR. [x]: %check is present and all tests pass. [x]: 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: [!]: Rpmlint is run on all installed packages. Note: Mock build failed See: https://docs.fedoraproject.org/en-US/packaging- guidelines/#_use_rpmlint [ ]: Large data in /usr/share should live in a noarch subpackage if package is arched. Note: Arch-ed rpms have a total of 2467840 bytes in /usr/share Review: Probably worth adding a -data subpackage if possible. Installation errors ------------------- INFO: mock.py version 2.4 starting (python version = 3.8.5)... Start: init plugins INFO: selinux enabled Finish: init plugins INFO: Signal handler active Start: run Start: chroot init INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin Mock Version: 2.4 INFO: Mock Version: 2.4 Finish: chroot init INFO: installing package(s): /home/amender/rpmbuild/SPECS/fcitx5-chinese-addons/fcitx5-chinese-addons-debuginfo-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm /home/amender/rpmbuild/SPECS/fcitx5-chinese-addons/fcitx5-chinese-addons-debugsource-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm /home/amender/rpmbuild/SPECS/fcitx5-chinese-addons/fcitx5-chinese-addons-devel-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm /home/amender/rpmbuild/SPECS/fcitx5-chinese-addons/fcitx5-chinese-addons-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm ERROR: Command failed: # /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-x86_64/root/ --releasever 34 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk install /home/amender/rpmbuild/SPECS/fcitx5-chinese-addons/fcitx5-chinese-addons-debuginfo-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm /home/amender/rpmbuild/SPECS/fcitx5-chinese-addons/fcitx5-chinese-addons-debugsource-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm /home/amender/rpmbuild/SPECS/fcitx5-chinese-addons/fcitx5-chinese-addons-devel-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm /home/amender/rpmbuild/SPECS/fcitx5-chinese-addons/fcitx5-chinese-addons-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm --setopt=tsflags=nocontexts Rpmlint ------- Checking: fcitx5-chinese-addons-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm fcitx5-chinese-addons-devel-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm fcitx5-chinese-addons-debuginfo-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm fcitx5-chinese-addons-debugsource-0-0.2.20200812gitef9beb7.fc32.x86_64.rpm fcitx5-chinese-addons-0-0.2.20200812gitef9beb7.fc33.src.rpm fcitx5-chinese-addons.x86_64: W: spelling-error %description -l en_US im -> mi, um, om fcitx5-chinese-addons.x86_64: W: spelling-error %description -l en_US emoji -> emotive fcitx5-chinese-addons.x86_64: W: spelling-error %description -l en_US txt -> text, ext, tit fcitx5-chinese-addons.x86_64: W: incoherent-version-in-changelog 0-0.2.20200811gitef9beb7 ['0-0.2.20200812gitef9beb7.fc32', '0-0.2.20200812gitef9beb7'] fcitx5-chinese-addons.x86_64: W: wrong-file-end-of-line-encoding /usr/share/doc/fcitx5-chinese-addons/README.md fcitx5-chinese-addons.x86_64: W: no-manual-page-for-binary scel2org5 fcitx5-chinese-addons-devel.x86_64: W: description-shorter-than-summary fcitx5-chinese-addons-devel.x86_64: W: only-non-binary-in-usr-lib fcitx5-chinese-addons-devel.x86_64: W: no-documentation fcitx5-chinese-addons.src: W: spelling-error %description -l en_US im -> mi, um, om fcitx5-chinese-addons.src: W: spelling-error %description -l en_US emoji -> emotive fcitx5-chinese-addons.src: W: spelling-error %description -l en_US txt -> text, ext, tit 5 packages and 0 specfiles checked; 0 errors, 12 warnings. Unversioned so-files -------------------- fcitx5-chinese-addons: /usr/lib64/fcitx5/chttrans.so fcitx5-chinese-addons: /usr/lib64/fcitx5/cloudpinyin.so fcitx5-chinese-addons: /usr/lib64/fcitx5/fullwidth.so fcitx5-chinese-addons: /usr/lib64/fcitx5/pinyin.so fcitx5-chinese-addons: /usr/lib64/fcitx5/pinyinhelper.so fcitx5-chinese-addons: /usr/lib64/fcitx5/punctuation.so fcitx5-chinese-addons: /usr/lib64/fcitx5/qt5/libpinyindictmanager.so fcitx5-chinese-addons: /usr/lib64/fcitx5/table.so Source checksums ---------------- https://download.fcitx-im.org/data/py_stroke-20121124.tar.gz : CHECKSUM(SHA256) this package : 8eb128a9bfa43952e67cf2fcee1fd134c6f4cfd317bc2f6c38a615f5eb64e248 CHECKSUM(SHA256) upstream package : 8eb128a9bfa43952e67cf2fcee1fd134c6f4cfd317bc2f6c38a615f5eb64e248 https://download.fcitx-im.org/data/py_table-20121124.tar.gz : CHECKSUM(SHA256) this package : 42146ac97de6c13d55f9e99ed873915f4c66739e9c11532a34556badf9792c04 CHECKSUM(SHA256) upstream package : 42146ac97de6c13d55f9e99ed873915f4c66739e9c11532a34556badf9792c04 https://github.com/fcitx/fcitx5-chinese-addons/archive/ef9beb76e563cae1da7eb9cdea4ce0d916e2e700/fcitx5-chinese-addons-ef9beb76e563cae1da7eb9cdea4ce0d916e2e700.tar.gz : CHECKSUM(SHA256) this package : f40d16ffd06d8b9af30591900f97f73953ffbaffdf0f53824560a593dae3bdfd CHECKSUM(SHA256) upstream package : f40d16ffd06d8b9af30591900f97f73953ffbaffdf0f53824560a593dae3bdfd Requires -------- fcitx5-chinese-addons (rpmlib, GLIBC filtered): hicolor-icon-theme libFcitx5Config.so.6()(64bit) libFcitx5Core.so.6()(64bit) libFcitx5Qt5WidgetsAddons.so.2()(64bit) libFcitx5Utils.so.2()(64bit) libIMECore.so.0()(64bit) libIMEPinyin.so.0()(64bit) libIMETable.so.0()(64bit) libQt5Core.so.5()(64bit) libQt5Core.so.5(Qt_5)(64bit) libQt5Core.so.5(Qt_5.14)(64bit) libQt5Gui.so.5()(64bit) libQt5Gui.so.5(Qt_5)(64bit) libQt5Network.so.5()(64bit) libQt5Network.so.5(Qt_5)(64bit) libQt5WebKitWidgets.so.5()(64bit) libQt5WebKitWidgets.so.5(Qt_5)(64bit) libQt5Widgets.so.5()(64bit) libQt5Widgets.so.5(Qt_5)(64bit) libboost_iostreams.so.1.69.0()(64bit) libc.so.6()(64bit) libcurl.so.4()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libopencc.so.2()(64bit) libpthread.so.0()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(CXXABI_1.3.5)(64bit) libstdc++.so.6(CXXABI_1.3.9)(64bit) rtld(GNU_HASH) fcitx5-chinese-addons-devel (rpmlib, GLIBC filtered): cmake-filesystem(x86-64) fcitx5-chinese-addons(x86-64) fcitx5-devel fcitx5-chinese-addons-debuginfo (rpmlib, GLIBC filtered): fcitx5-chinese-addons-debugsource (rpmlib, GLIBC filtered): Provides -------- fcitx5-chinese-addons: fcitx5-chinese-addons fcitx5-chinese-addons(x86-64) fcitx5-chinese-addons-devel: cmake(Fcitx5ModuleCloudPinyin) cmake(Fcitx5ModulePinyinHelper) cmake(Fcitx5ModulePunctuation) cmake(fcitx5modulecloudpinyin) cmake(fcitx5modulepinyinhelper) cmake(fcitx5modulepunctuation) fcitx5-chinese-addons-devel fcitx5-chinese-addons-devel(x86-64) fcitx5-chinese-addons-debuginfo: debuginfo(build-id) fcitx5-chinese-addons-debuginfo fcitx5-chinese-addons-debuginfo(x86-64) fcitx5-chinese-addons-debugsource: fcitx5-chinese-addons-debugsource fcitx5-chinese-addons-debugsource(x86-64)
- removed ExcludeArch - switched to pkgconfig(curl) - added -data subpackage - more specific on /usr/share/*
> - removed ExcludeArch > - switched to pkgconfig(curl) > - added -data subpackage > - more specific on /usr/share/* Nice! Koji build based on latest changes: https://koji.fedoraproject.org/koji/taskinfo?taskID=50083236 I triggered it again just in case, but unfortunately 1 test now fails on the s390x architecture: https://koji.fedoraproject.org/koji/taskinfo?taskID=50083448 Here's the error from the tail of the log: F2020-08-24 18:50:41.880776 testpinyin.cpp:23] pinyin failed 67% tests passed, 1 tests failed out of 3 Total Test time (real) = 53.79 sec The following tests FAILED: 3 - testpinyin (Child aborted) Errors while running CTest error: Bad exit status from /var/tmp/rpm-tmp.o9qgTj (%check) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.o9qgTj (%check) Child return code was: 1 EXCEPTION: [Error()]
This is harder to fix, I am contacting upstream for help. And I added a ExcludeArch, and would file a build-fail ticket then
Also, I will investigate into if this test error can be safely ignored (not easy, since I don't have a s390x testing environment.) And this problem occurs in debian builds to, maybe they can provide some help. Similar to plans before, if we can't ignore this failure, I will keep the ExcludeArch and ask upstream for help, if otherwise, I will ask FPC for an exception.
ping?
> ping? Apologies, wasn't aware you were waiting. The way I see it is that if upstream provides a test suite and one or more tests fail on an officially supported Fedora arch, we can't ignore them and again we would need an ExcludeArch and confirmation from the FPC. Going forward, we either closely interact with upstream to get fixes for archs which they don't test on (anything non-x86_64, I'm assuming?) or if that's too cumbersome we can limit the number of archs fcitx5-chinese-addons supports, for instance to i386 and x86_64.
(In reply to Andy Mender from comment #8) > > ping? > > Apologies, wasn't aware you were waiting. > > The way I see it is that if upstream provides a test suite and one or more > tests fail on an officially supported Fedora arch, we can't ignore them and > again we would need an ExcludeArch and confirmation from the FPC. Using a ExcludeArch don't need approvement from FPC [1], and this problem is harder to debug. I think we can get this build in rawhide and wait for upstream's fix. [1]: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures > > Going forward, we either closely interact with upstream to get fixes for > archs which they don't test on (anything non-x86_64, I'm assuming?) or if > that's too cumbersome we can limit the number of archs fcitx5-chinese-addons > supports, for instance to i386 and x86_64.
I am testing if this comes from the noarch from libime-data, the data will be loaded my mmap, so big little endian will be a problem
Fixed, not an upstream issue, just because we make libime-data noarch, but s390x is big-endian (different than other koji arches, little endian). Migrating libime-data into libime itself, the problem solved[1]. You can see the different checksum for those files. [1]: https://koji.fedoraproject.org/koji/taskinfo?taskID=50285077 [2]: https://koji.fedoraproject.org/koji/fileinfo?rpmID=23022098&filename=/usr/share/libime/zh_CN.lm [3]: https://koji.fedoraproject.org/koji/fileinfo?rpmID=23022090&filename=/usr/share/libime/zh_CN.lm
I think this package is ready and the only thing left is to wait upstream to make a fix for libime. This should work on all little endian architectures, for s390x (big endian) test passed and upstream developer are doing further test.
Upstream issue tracker: - https://github.com/fcitx/fcitx5-chinese-addons/issues/33 - https://github.com/kpu/kenlm/pull/293 I workaround libime to make fcitx5-chinese-addons build (and should work) on s390x. Problems are about libime :(, and is being actively being fixed :) (thanks to CSSlayer).
New successful build: - libime: https://koji.fedoraproject.org/koji/buildinfo?buildID=1602569 - fcitx5-chinese-addons: https://koji.fedoraproject.org/koji/taskinfo?taskID=50365483
Upstream developer thinks the problem is fixed. - https://koji.fedoraproject.org/koji/taskinfo?taskID=50388232
Awesome work! Package approved!
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/fcitx5-chinese-addons
Built in rawhide and f32, Thanks ;)