Spec URL: https://gitlab.com/terrycloth/packaging-lector/uploads/8cbf6bc7b5f0b245e5c172d2624f21af/lector.spec SRPM URL: https://gitlab.com/terrycloth/packaging-lector/uploads/dccb375b5e9a70367d5db296bee08e1b/lector-0.5.1-1.fc32.src.rpm Description: Lector is an ebook reader and collection manager. It offers a full-screen distraction-free view, document highlighting and annotations, a built-in dictionary, bookmarks, and multiple profiles for changing the way the books are presented. Lector can also edit metadata, so you can correct information about the books, and add keywords to make them easier to find. It supports the following file formats: * PDF * EPUB * DjVu * FictionBook (.fb2) * Mobipocket (.mobi) * Amazon Kindle (.azw, .azw3, .azw4) * Comic book archives (.cbr, .cbz) * Markdown Fedora Account System Username: terrycloth
This package is of course not ready yet. You will notice several TODO comments throughout the spec file. Most of my prior packaging experience has been with GNOME Shell extensions, so I'm less familiar with working on full GUI applications, or with the Python ecosystem in particular. I'll greatly appreciate any feedback I can get here. * The -debuginfo subpackage would be empty, if allowed to build, but I'm not sure why. I don't *think* this should be a noarch package, since it does compile the .pyc files. And there's no Makefile, and I don't see "strip" mentioned anywhere in the whole source tarball... Could the upstream project just not support debugging binaries...? * Lector's support for DjVu documents requires the Python bindings for DjVuLibre, which isn't in Fedora at all yet. I plan to also submit a package review request for a python3-djvulibre package, but since DjVu documents are relatively uncommon, I'm inclined to let that wait till after Lector is accepted, rather than the other way around. * I'd like for this package to build against Fedora 30, since F30 will be supported for a while still, but proper support for Epub books would require the python3-lxml maintainer to build at least v4.3 for F30. I've submitted that request against the python-lxml package here in Bug #1784998. (If feasible, I'll also build for EPEL 8, though I'm not going to worry too much about it till the other aspects are set.) * Similarly, Lector on Fedora 30 will require backporting python-markdown v3.0.1+. See Bug #1785073. * I tried to use Provides-like namespecs for all dependencies, but on Fedora 30, * latest version for "python3-poppler-qt5" is 0.24.2 * latest version for "python3dist(python-poppler-qt5)" is 0.24.1 which is super confusing. Those are the *same package* how do they have different version numbers? * Lector does seem to support some UI localizations, but I don't know how to build them. Since Lector is based on Qt, I suppose it's probably using Qt Linguist? Because the plain %find_lang macro isn't working. But `--with-qt` doesn't help either. So I've got some reading to do, I guess, but I have no idea how Qt Linguist works, if that's even the localization tool being used here.
- Why isn't it noarch? BuildArch: noarch - %global debug_package %{nil} shouldn't be needed with noarch - package it? ## TODO: Python DjVuLibre (for reading DjVu documents) isn't packaged at all yet for Fedora 30. # Requires: python3-djvulibre >= 0.8.4 It need to be resurrected https://src.fedoraproject.org/rpms/python-djvulibre ## TODO: Python Markdown (for reading Markdown files) version 3.0.1 isn't in Fedora 30 yet...? It is in F31 and F32. Use a Recommends here if you need. - Capitalize the Summary Summary: Ebook reader and collection manager - Requires: hicolor-icon-theme to own icons directory - Python requires are not necessary, they are autodetected on Fedora (not EPEL) - You need to validate the desktop file in %install or %check: desktop-file-validate %{buildroot}/%{_datadir}/applications/lector.desktop - Consider providing an Appdata file https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/ - Using only: BuildRequires: python3-devel BuildRequires: python3dist(setuptools) BuildRequires: python3dist(beautifulsoup4) >= 4.6.0 BuildRequires: python3dist(pyqt5) >= 5.10 BuildRequires: python3dist(python-poppler-qt5) >= 0.24.2 Requires: python3dist(pyqt5) >= 5.10 Requires: python3dist(python-poppler-qt5) >= 0.24.2 Requires: python3dist(lxml) >= 4.2 Requires: python3dist(pymupdf) >= 1.14.5 Requires: python3dist(textile) >= 3.0.4 Requires: python3dist(xmltodict) >= 0.11.0 Recommends: python3dist(markdown) >= 2.6.11 Recommends: python3dist(python-djvulibre) >= 0.8.4 should be sufficient. - The rar License should be included too: # Main program: GPLv3 # rarfile: MIT License: GPLv3 and MIT - Translations don't seem to work, ask upstream about it? - latest version for "python3dist(python-poppler-qt5)" is 0.24.1 I don't know? rpm -q --provides -p python3-poppler-qt5-0.24.2-15.fc31.x86_64.rpm python3-poppler-qt5 = 0.24.2-15.fc31 python3-poppler-qt5(x86-64) = 0.24.2-15.fc31 python3.7dist(python-poppler-qt5) = 0.24.1 python3dist(python-poppler-qt5) = 0.24.1 It seems the package info generated from setup.py, which is used for python3dist, says 0.24.1: Metadata-Version: 1.2 Name: python-poppler-qt5 Version: 0.24.1 Summary: A Python binding to Poppler-Qt5 Home-page: https://github.com/wbsoft/python-poppler-qt5 Maintainer: Wilbert Berendsen Maintainer-email: wbsoft License: LGPL The error comes from upstream https://github.com/frescobaldi/python-poppler-qt5/blob/v0.24.2/setup.py ========================================================== Name: lector Summary: Ebook reader and collection manager URL: https://github.com/BasioMeusPuga/Lector # Main program: GPLv3 # rarfile: MIT License: GPLv3 and MIT Version: 0.5.1 Release: 1%{?dist} BuildArch: noarch Source0: %url/archive/%{version}/%{name}-%{version}.tar.gz BuildRequires: python3-devel BuildRequires: python3dist(setuptools) BuildRequires: python3dist(beautifulsoup4) >= 4.6.0 BuildRequires: python3dist(pyqt5) >= 5.10 BuildRequires: python3-poppler-qt5 >= 0.24.2 Requires: python3dist(pyqt5) >= 5.10 Requires: python3-poppler-qt5 >= 0.24.2 Requires: python3dist(lxml) >= 4.2^ Requires: python3dist(pymupdf) >= 1.14.5 Requires: python3dist(textile) >= 3.0.4 Requires: python3dist(xmltodict) >= 0.11.0 Recommends: python3dist(markdown) >= 2.6.11 Recommends: python3dist(python-djvulibre) >= 0.8.4 %description Lector is an ebook reader and collection manager. It offers a fullscreen distraction-free view, document highlighting and annotations, a built-in dictionary, bookmarks, and multiple profiles for changing the way the books are presented. Lector can also edit metadata, so you can correct information about the books, and add keywords to make them easier to find. It supports the following file formats: * PDF * EPUB * DjVu * FictionBook (.fb2) * Mobipocket (.mobi) * Amazon Kindle (.azw, .azw3, .azw4) * Comic book archives (.cbr, .cbz) * Markdown %prep %autosetup -n Lector-%{version} %build %py3_build mv ./lector/rarfile/LICENSE ./LICENSE-rarfile %install %py3_install %files %doc AUTHORS README.md %license LICENSE LICENSE-rarfile %{_bindir}/%{name} %{_datadir}/applications/lector.desktop %{_datadir}/icons/hicolor/scalable/apps/Lector.png %{python3_sitelib}/lector* %changelog * Wed Dec 18 2019 Andrew Toskin <andrew> - 0.5.1-1 - First (mostly) working build. ========================================================== # python-djvulibre.spec # Created by pyp2rpm-3.3.2 # This package installs two private shared libraries, don't 'provide' them %global __provides_exclude_from ^%{python3_sitearch}/.*\\.so)$ %global pypi_name python-djvulibre %global srcname djvulibre Name: python-%{srcname} Version: 0.8.5 Release: 1%{?dist} Summary: Python support for the DjVu image format License: GPLv2 URL: http://jwilk.net/software/python-djvulibre Source0: %{pypi_source %pypi_name} Source1: https://raw.githubusercontent.com/jwilk/python-djvulibre/master/COPYING BuildRequires: gcc BuildRequires: python3-devel BuildRequires: python3dist(setuptools) BuildRequires: python3dist(sphinx) BuildRequires: python3dist(cython) BuildRequires: python3dist(nose) BuildRequires: djvulibre BuildRequires: pkgconfig(ddjvuapi) %description python-djvulibre is a set of Python bindings for the DjVuLibre library, an open source implementation of DjVu. %package -n python3-%{srcname} Summary: %{summary} %{?python_provide:%python_provide python3-%{srcname}} %description -n python3-%{srcname} python-djvulibre is a set of Python bindings for the DjVuLibre library, an open source implementation of DjVu. %package -n python-%{srcname}-doc Summary: Python-djvulibre documentation BuildArch: noarch %description -n python-%{srcname}-doc Documentation for Python-djvulibre. %prep %autosetup -n %{pypi_name}-%{version} cp %{S:1} . # Make sure scripts in the examples directory aren't executable chmod 0644 examples/* %build %py3_build # generate html docs PYTHONPATH=${PWD} sphinx-build-3 doc/api html # remove the sphinx-build leftovers rm -rf html/.{doctrees,buildinfo} %install %py3_install %check # Remove djvu to import from PYTHONPATH instead of subdirectory rm -rf djvu PYTHONPATH=%{buildroot}%{python3_sitearch} nosetests-%{python3_version} %files -n python3-%{srcname} %license COPYING %{python3_sitearch}/djvu/ %{python3_sitearch}/python_djvulibre-%{version}-py%{python3_version}.egg-info %files -n python-%{srcname}-doc %license COPYING %doc html examples %changelog * Wed Dec 18 2019 Andrew Toskin <andrew> - 0.8.5-1 - Initial package.
Oh, thank you. I hadn't expected any feedback before I announced this package on the devel mailing list, but I appreciate it :) > Why isn't it noarch? I'm vaguely aware that Python is an interpreted language -- or at least, it can be, depending on the impelementation? -- but I thought that the compiled .pyc files meant that Python packages on Fedora were architecture-dependent after all. But I guess maybe not, if it's only byte code for the CPython VM? > See https://src.fedoraproject.org/rpms/python-djvulibre Ah, okay. I'd only searched for packages in dnf (and I'm still currently using Fedora 30 as my main workstation). And I see you included a generated spec for the DjVuLibre bindings package too. If I can just revive that old package, then that should make things a bit easier, thanks. See Bug #1786210. > python-markdown is in F31 and F32. Use a Recommends here if you need. Okay, sure. If the maintainer can't or won't backport python-markdown for F30, then setting that dependency to a Recommend might be good enough... Although, if I can't get python-lxml backported, there may not be much point in building Lector for F30 anyway, since users are most likely to expect Epub support. > Python requires are not necessary, they are autodetected on Fedora (not EPEL) Well, I do want to support EPEL, if feasible. I'll take a look at building on CentOS 8 sometime this week, and then we can decide whether to worry about EPEL stuff. > Consider providing an Appdata file Oh, yes, I'll put together the AppData/AppStream files and see if the upstream is willing to accept them into the main repository... https://github.com/BasioMeusPuga/Lector/issues/118 > Translations don't seem to work, ask upstream about it? Okay. If this is possibly a bug in upstream, then I'm not really sure where to start troubleshooting. So I basically just restate my original questions on their GitHub... https://github.com/BasioMeusPuga/Lector/issues/117
Updated package spec. Spec URL: https://gitlab.com/terrycloth/packaging-lector/uploads/f26f97bd418649ed836fa71fbe9c455f/lector.spec SRPM URL: https://gitlab.com/terrycloth/packaging-lector/uploads/a333eb46140fbb9e42d114efe6d61403/lector-0.5.1-1.fc32.src.rpm
> Because the plain %find_lang macro isn't working. But `--with-qt` doesn't help either. The reason is simple. No translation files get installed into the buildroot [yet]. %find_lang --with-qt would search for Qt's compiled translation files *.qm, which are created with the lrelease tool from Qt Linguist (package qt5-linguist).
- The translations are compiled into a resources file, no need to find_lang them indeed. But I didn't manage to get Lector launched into another language. - You can remove the find lang comments: # TODO: Not sure how to get %%find_lang to work with Qt linguist (which I assume is what this project uses). #%%find_lang Lector --with-qt #%%files -f Lector.lang - Remove these Python shebangs in %prep: lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/__init__.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/compatibility_utils.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/kindleunpack.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_cover.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_dict.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_header.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_html.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_index.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_k8proc.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_k8resc.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_nav.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_ncx.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_opf.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_pagemap.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_sectioner.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_split.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_uncompress.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_utils.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/unipath.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/unpack_structure.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/__main__.py 644 /usr/bin/env python3 lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/rarfile/dumprar.py 644 /usr/bin/env python Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== MUST items ===== Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated", "GPL (v3 or later)", "BSD 2-clause "Simplified" License", "ISC License". 156 files have unknown license. Detailed output of licensecheck in /home/bob/packaging/review/lector/review-lector/licensecheck.txt [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [x]: Package contains no bundled libraries without FPC exception. [x]: 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. [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]: 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 2 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 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 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 Python: [x]: Python eggs must not download any dependencies during the build process. [x]: A package which is used by another package via an egg interface should provide egg info. [x]: Package meets the Packaging Guidelines::Python [x]: Package contains BR: python2-devel or python3-devel [x]: Packages MUST NOT have dependencies (either build-time or runtime) on packages named with the unversioned python- prefix unless no properly versioned package exists. Dependencies on Python packages instead MUST use names beginning with python2- or python3- as appropriate. [x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files [x]: Binary eggs must be removed in %prep ===== 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). [?]: 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. [-]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: lector-0.5.1-1.fc32.noarch.rpm lector-0.5.1-1.fc32.src.rpm lector.noarch: W: spelling-error Summary(en_US) Ebook -> Book, E book lector.noarch: W: spelling-error %description -l en_US ebook -> book, e book lector.noarch: W: spelling-error %description -l en_US mobi -> mob, moi, obi lector.noarch: W: spelling-error %description -l en_US azw -> aw, AZ lector.noarch: W: spelling-error %description -l en_US cbr -> cir, car, ctr lector.noarch: W: spelling-error %description -l en_US cbz -> CBC lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/__init__.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/compatibility_utils.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/kindleunpack.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_cover.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_dict.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_header.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_html.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_index.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_k8proc.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_k8resc.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_nav.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_ncx.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_opf.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_pagemap.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_sectioner.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_split.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_uncompress.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/mobi_utils.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/unipath.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/KindleUnpack/unpack_structure.py 644 /usr/bin/env python lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/__main__.py 644 /usr/bin/env python3 lector.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/lector/rarfile/dumprar.py 644 /usr/bin/env python lector.noarch: W: no-manual-page-for-binary lector lector.src: W: spelling-error Summary(en_US) Ebook -> Book, E book lector.src: W: spelling-error %description -l en_US ebook -> book, e book lector.src: W: spelling-error %description -l en_US mobi -> mob, moi, obi lector.src: W: spelling-error %description -l en_US azw -> aw, AZ lector.src: W: spelling-error %description -l en_US cbr -> cir, car, ctr lector.src: W: spelling-error %description -l en_US cbz -> CBC 2 packages and 0 specfiles checked; 22 errors, 13 warnings.
(In reply to Michael Schwendt from comment #5) > The reason is simple. No translation files get installed into the buildroot > [yet]. %find_lang --with-qt would search for Qt's compiled translation files > *.qm, which are created with the lrelease tool from Qt Linguist (package > qt5-linguist). I'm not really sure what you're trying to say here. Sounds like maybe you're saying I need to BuildRequire qt5-linguist, and run lrelease at some point in the script? Or maybe not, since Robert says: (In reply to Robert-André Mauchin from comment #6) > The translations are compiled into a resources file, no need to find_lang > them indeed. But I didn't manage to get Lector launched into another > language. Funny, when I thought to actually just try changing the language with no %find_lang at all, Lector successfully changed to Spanish when I changed my system language to Spanish. Maybe it's not the packaging that's the problem, just the source translations are slightly broken or incomplete? I asked upstream about this here -- https://github.com/BasioMeusPuga/Lector/issues/117 ...I've sent upstream a pull request for the AppStream metainfo.xml file. Feel free to take a look there in case I missed or messed up something. https://github.com/BasioMeusPuga/Lector/pull/120 I'll take another look at the issues flagged by rpmlint and then have another updated spec for you soon. Thanks again, both of you, for your continued help :)
Updated package spec. Spec URL: https://gitlab.com/terrycloth/packaging-lector/uploads/751796450ddf418b29a2b548b7b65c15/lector.spec SRPM URL: https://gitlab.com/terrycloth/packaging-lector/uploads/85ed14ac37eeb2cdd85a20058ed8627a/lector-0.5.1-1.fc32.src.rpm ...You'll notice some small changes to the dependencies again. In Bug #1785073, I learned that python-markdown can't be backported for Fedora 30 without making backward-incompatible changes or breaks to other f30 packages. The maintainer for python-lxml hasn't said anything yet in Bug #1784998, but I'm guessing now that it wasn't backported to f30 for similar reasons. So I've decided to focus on f31+ after all. RPM Lint output looks good to me now, though there are maybe a few remaining issues that I'm unsure about. When running fedora-review, I see a lot of lines like this in the terminal output: Last metadata expiration check: 0:02:06 ago on Mon Jan 13 14:50:39 2020. Failed to set locale, defaulting to C.UTF-8 Failed to set locale, defaulting to C.UTF-8 Last metadata expiration check: 0:02:09 ago on Mon Jan 13 14:50:39 2020. Failed to set locale, defaulting to C.UTF-8 Failed to set locale, defaulting to C.UTF-8 Failed to set locale, defaulting to C.UTF-8 Not sure if that's something I should worry about or not, if localizations are already compiled and they don't get to get find_lang'd or whatever, like we'd discussed. fedora-review.txt also includes an Installation Errors section: Installation errors ------------------- INFO: mock.py version 1.4.21 starting (python version = 3.7.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 dnf cache Start: cleaning dnf metadata Finish: cleaning dnf metadata INFO: enabled HW Info plugin Mock Version: 1.4.21 INFO: Mock Version: 1.4.21 Finish: chroot init INFO: installing package(s): /home/terrycloth/creating/packaging/Lector/review-lector/results/lector-0.5.1-1.fc32.noarch.rpm ERROR: Command failed: # /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-x86_64/root/ --releasever 32 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk install /home/terrycloth/creating/packaging/Lector/review-lector/results/lector-0.5.1-1.fc32.noarch.rpm --setopt=tsflags=nocontexts ...Even though ./review-lector/results/build.log shows no errors. Not sure yet what this means either.
(In reply to Andrew Toskin from comment #8) > Updated package spec. > > Spec URL: > https://gitlab.com/terrycloth/packaging-lector/uploads/ > 751796450ddf418b29a2b548b7b65c15/lector.spec > > SRPM URL: > https://gitlab.com/terrycloth/packaging-lector/uploads/ > 85ed14ac37eeb2cdd85a20058ed8627a/lector-0.5.1-1.fc32.src.rpm > > > ...You'll notice some small changes to the dependencies again. In Bug > #1785073, I learned that python-markdown can't be backported for Fedora 30 > without making backward-incompatible changes or breaks to other f30 > packages. The maintainer for python-lxml hasn't said anything yet in Bug > #1784998, but I'm guessing now that it wasn't backported to f30 for similar > reasons. So I've decided to focus on f31+ after all. > > RPM Lint output looks good to me now, though there are maybe a few remaining > issues that I'm unsure about. When running fedora-review, I see a lot of > lines like this in the terminal output: > > Last metadata expiration check: 0:02:06 ago on Mon Jan 13 14:50:39 2020. > Failed to set locale, defaulting to C.UTF-8 > Failed to set locale, defaulting to C.UTF-8 > Last metadata expiration check: 0:02:09 ago on Mon Jan 13 14:50:39 2020. > Failed to set locale, defaulting to C.UTF-8 > Failed to set locale, defaulting to C.UTF-8 > Failed to set locale, defaulting to C.UTF-8 > > Not sure if that's something I should worry about or not, if localizations > are already compiled and they don't get to get find_lang'd or whatever, like > we'd discussed. > > fedora-review.txt also includes an Installation Errors section: > > Installation errors > ------------------- > INFO: mock.py version 1.4.21 starting (python version = 3.7.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 dnf cache > Start: cleaning dnf metadata > Finish: cleaning dnf metadata > INFO: enabled HW Info plugin > Mock Version: 1.4.21 > INFO: Mock Version: 1.4.21 > Finish: chroot init > INFO: installing package(s): > /home/terrycloth/creating/packaging/Lector/review-lector/results/lector-0.5. > 1-1.fc32.noarch.rpm > ERROR: Command failed: > # /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-x86_64/root/ > --releasever 32 --setopt=deltarpm=False --allowerasing --disableplugin=local > --disableplugin=spacewalk install > /home/terrycloth/creating/packaging/Lector/review-lector/results/lector-0.5. > 1-1.fc32.noarch.rpm --setopt=tsflags=nocontexts > > ...Even though ./review-lector/results/build.log shows no errors. Not sure > yet what this means either. Search fos "Error:" in root.log: it should tell you what packages are missing to install lector.
The error Is: DEBUG util.py:582: Error: DEBUG util.py:582: Problem: conflicting requests DEBUG util.py:582: - nothing provides python3-djvulibre >= 0.8.4 needed by lector-0.5.1-1.fc32.noarch I hade approved it in https://bugzilla.redhat.com/show_bug.cgi?id=1786210 You need to file a Releng bug to get it unretired and attributed to you: https://pagure.io/releng/new_issue Use the template "package_unretirement" Don't forget to specify all the branches you want unretired (f31, f30…)
Oh, right, yes, sorry. I had thought of making djvulibre optional, so that Lector could build for F30, then forgot about it when I decided to focus on F31+ after all. Although maybe making the lesser-used ebook formats Recommends could still be good after all. I installed both a local build of my python3-djvulibre and Lector and I *think* everything looks good now. Spec URL: https://gitlab.com/terrycloth/packaging-lector/uploads/4cf481ad82c263ea6b4c8efe6ff2f780/lector.spec SRPM URL: https://gitlab.com/terrycloth/packaging-lector/uploads/b6574a2df3f1712c8b6ca51f5efd1ac6/lector-0.5.1-1.fc31.src.rpm
Ok package approved, but please unretire https://src.fedoraproject.org/rpms/python-djvulibre too.
https://pagure.io/releng/issue/9187
https://pagure.io/releng/fedora-scm-requests/issue/22032
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/lector
Finally got the (optional) dependency python-djvulibre pending in Bodhi, so now Lector has built and is pending in Bodhi too.