Bug 1353169 - Review Request: python-nikola - A static website and blog generator
Summary: Review Request: python-nikola - A static website and blog generator
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Neal Gompa
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1372345 1718682 1718685 1718686 1718687 1718688
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-07-06 10:49 UTC by José Matos
Modified: 2020-04-01 16:32 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-04-01 00:17:03 UTC
Type: ---
Embargoed:
ngompa13: fedora-review+


Attachments (Terms of Use)

Description José Matos 2016-07-06 10:49:44 UTC
Spec URL: http://pkgs.fedoraproject.org/cgit/rpms/python-nikola.git/plain/python-nikola.spec?h=f24
SRPM URL: https://kojipkgs.fedoraproject.org//packages/python-nikola/7.7.9/2.fc24/src/python-nikola-7.7.9-2.fc24.src.rpm
Description: Nikola is a static site and blog generator using Python. It generates sites with tags, feeds, archives, comments, and more from plain text files. Source can be unformatted, or formatted with reStructuredText or Markdown. It also automatically builds image galleries.
Fedora Account System Username: jamatos

Note that this review is to unretire the package for rawhide, where it is orphaned.

The reason why it was retired was:
This package has very dynamic dependencies on specific versions of libraries that it uses. These dependencies are prohibitively difficult to meet in Fedora, because the dependencies have their own life cycle and other packages depend on those libraries but may not work with the specific versions that Nikola needs.

Since it was retired things have improved a lot, now packages for Fedora 24 builds meeting every dependencies, while missing just one for testing (importing a wordpress site into nikola) and some extra functionality dependencies.

Note that this is an application that uses python and not a python library.

Comment 1 Neal Gompa 2016-07-06 12:24:51 UTC
Please update the spec to follow the current guidelines (python2 stuff in a python2 subpackage, unversioned binaries to use the python 3 version, etc.).

See https://fedoraproject.org/wiki/Packaging:Python

Comment 2 José Matos 2016-07-06 13:11:08 UTC
I thought about that but eventually that will be useless since nikola will only work with python3 with the python3 obsoleting the python2 package.
https://getnikola.com/blog/env-survey-results-and-the-future-of-python-27.html

In any case I will do it for the moment. :-)

Comment 3 José Matos 2016-07-06 13:53:49 UTC
(In reply to Neal Gompa from comment #1)
> Please update the spec to follow the current guidelines (python2 stuff in a
> python2 subpackage, unversioned binaries to use the python 3 version, etc.).
> 
> See https://fedoraproject.org/wiki/Packaging:Python

Spec URL: https://jamatos.fedorapeople.org/python-nikola.spec
SRPM URL: https://jamatos.fedorapeople.org/python-nikola-7.7.9-3.fc25.src.rpm

Comment 4 José Matos 2016-07-26 15:35:04 UTC
Ping...

I am updating the package to the latest version that is available at updates-testing for F24:

Spec URL: https://jamatos.fedorapeople.org/python-nikola.spec
SRPM URL: https://jamatos.fedorapeople.org/python-nikola-7.7.11-3.fc24.src.rpm

Comment 5 José Matos 2016-08-06 10:44:34 UTC
Ping again. :-)

I have updated the package to 7.7.12:

http://koji.fedoraproject.org/koji/buildinfo?buildID=788779

and I have updated correspondingly:

Spec URL: https://jamatos.fedorapeople.org/python-nikola.spec
SRPM URL: https://jamatos.fedorapeople.org/python-nikola-7.7.12-1.fc24.src.rpm

Comment 6 Neal Gompa 2016-08-07 13:58:14 UTC
You've still not changed the /usr/bin/nikola link to point to /usr/bin/nikola3.

Please do so.

Comment 7 José Matos 2016-08-08 12:51:12 UTC
(In reply to Neal Gompa from comment #6)
> You've still not changed the /usr/bin/nikola link to point to
> /usr/bin/nikola3.
> 
> Please do so.

Actually that was the first thing I did, in comment 3. :-)

Since I had no feedback I decided to continue with current F24 branch, since to make nikola default to nikola3 is a small change.

In any case it follows with the corresponding changes:

Spec URL: https://jamatos.fedorapeople.org/python-nikola.spec
SRPM URL: https://jamatos.fedorapeople.org/python-nikola-7.7.12-2.fc24.src.rpm

python-nikola becomes python3-nikola for Fedora > 24 and it continues to be python2-nikola for previous versions.

Comment 8 Neal Gompa 2016-08-08 17:30:15 UTC
If /usr/bin/nikola is functionally equivalent between py2 and py3, why not just switch it all to py3? Especially since upstream prefers py3 anyway?

Comment 9 José Matos 2016-08-10 10:45:33 UTC
(In reply to Neal Gompa from comment #8)
> If /usr/bin/nikola is functionally equivalent between py2 and py3, why not
> just switch it all to py3? Especially since upstream prefers py3 anyway?

For historical reasons. :-)

Initially nikola was only available on python 2.

The python-2 packages allowed to use a set of tools that used the python-2 packages.

I did not want to change the main version during F24. But as soon as upstream drops support for python-2 the python2-nikola packages will be obsoleted by the corresponding python3.

Comment 10 Igor Gnatenko 2016-08-10 10:58:56 UTC
> %if 0%{?fedora} <= 24
> Provides:	python-%{srcname} = %{version}-%{release}
> Obsoletes:      python-%{srcname} < 7.7.11-1
> %endif
no way, you should use %python_provide

Comment 11 José Matos 2016-08-10 11:05:01 UTC
> > %if 0%{?fedora} <= 24
> > Provides:	python-%{srcname} = %{version}-%{release}
> > Obsoletes:      python-%{srcname} < 7.7.11-1
> > %endif
> no way, you should use %python_provide

This is an application that uses python and not a python library.

If, as been suggested in the mailing list, upstream drops support for python 2 do you suggest that python-nikola should provide python2-nikola even if it is using python3?

If this were a python library that I could use like "import nikola" I would wholeheartedly agree with you.(In reply to Igor Gnatenko from comment #10)

Comment 12 Igor Gnatenko 2016-08-10 11:09:07 UTC
(In reply to José Matos from comment #11)
> > > %if 0%{?fedora} <= 24
> > > Provides:	python-%{srcname} = %{version}-%{release}
> > > Obsoletes:      python-%{srcname} < 7.7.11-1
> > > %endif
> > no way, you should use %python_provide
> 
> This is an application that uses python and not a python library.
Then rename package to "nikola" and build only py3 version.

Comment 13 Neal Gompa 2016-08-11 14:37:49 UTC
I agree with Igor here. If this can't be used as a Python module, then it shouldn't be packaged in such a manner.

Comment 14 José Matos 2016-09-01 13:59:30 UTC
(In reply to Neal Gompa from comment #13)
> I agree with Igor here. If this can't be used as a Python module, then it
> shouldn't be packaged in such a manner.

My first reaction was, oh no we are not getting one more time in the argument of python modules versus python applications... :-)

In the defense of the python- prefix in the name we can consider that:

* nikola is available through pypi.python.org
https://pypi.python.org/pypi/Nikola

* the package consist mostly of a python module with a script on /usr/bin that is a wrapper that calls the nikola module:
if __name__ == '__main__':
    sys.exit(
        load_entry_point('Nikola==7.7.12', 'console_scripts', 'nikola')()
    )

Comment 15 Igor Gnatenko 2016-09-01 14:50:06 UTC
(In reply to José Matos from comment #14)
> (In reply to Neal Gompa from comment #13)
> > I agree with Igor here. If this can't be used as a Python module, then it
> > shouldn't be packaged in such a manner.
> 
> My first reaction was, oh no we are not getting one more time in the
> argument of python modules versus python applications... :-)
> 
> In the defense of the python- prefix in the name we can consider that:
> 
> * nikola is available through pypi.python.org
> https://pypi.python.org/pypi/Nikola
All python crap is distributed there ;)
> 
> * the package consist mostly of a python module with a script on /usr/bin
> that is a wrapper that calls the nikola module:
> if __name__ == '__main__':
>     sys.exit(
>         load_entry_point('Nikola==7.7.12', 'console_scripts', 'nikola')()
>     )
Actually question if there is documentation which says import nikola. If it doesn't it's better to name it nikola and ship only py3 version.

Comment 16 Dominik 'Rathann' Mierzejewski 2016-10-24 12:36:53 UTC
FYI, nikola-7.8.1 was released recently.

Comment 17 Neal Gompa 2016-11-20 12:21:07 UTC
@Jose:

Are you still interested in reviving nikola?

Comment 18 José Matos 2016-11-22 14:27:09 UTC
I am, but right now I am at a time where real live is getting in the way. Lots of exams and tests to assess. :-)

Comment 19 Elliott Sales de Andrade 2018-01-01 20:48:31 UTC
Any more updates?

Comment 20 José Matos 2018-09-02 20:55:57 UTC
(In reply to Elliott Sales de Andrade from comment #19)
> Any more updates?

Hi Elliot,
  I was expecting for nikola 8.0.0 release to rebase the spec file.

Since it is taking longer than I was expecting, I decided to proceed with the latest stable release 7.8.15.

I have a working spec file and I have created rpms for all the remaining python packages that were not yet packaged in fedora. In one case I had to create another package because it was a dependency for one of the packages that nikola requires.

The final result is in copr:
https://copr.fedorainfracloud.org/coprs/jamatos/nikola-playground/

The srpms are at https://jamatos.fedorapeople.org/python-nikola/

From the dependencies of nikola there is one that has problems building in Fedora 29/rawhide: python-ws4py because of async being a keyword in python 3.7. That is the only one that is commented in the Requires/BuildRequires.

Some others have issues with %check for several issues. I have disabled temporarily those tests to have a working prototype.

My only issue with python-nikola as it is is the bundling of several components, including themes and java script. For some of the fonts it is possible like it was done before to replace the contents with symbolic links (that is the purpose of the Requires glyphicons-halflings-fonts that is not yet used but that has at least 4 copies).

I will be busy in the next couple of weeks and I intend to proceed with the process, cleaning and submitting the other python packages until that finally python-nikola is ready for consideration.

Comment 21 Neal Gompa 2018-09-08 19:14:11 UTC
nikola 8.0rc1 is out: https://getnikola.com/blog/nikola-v800rc1-is-out.html

You might want to target this, as barring any grave issues, it'll become 8.0.

Comment 22 José Matos 2018-09-08 21:40:38 UTC
(In reply to Neal Gompa from comment #21)
> nikola 8.0rc1 is out: https://getnikola.com/blog/nikola-v800rc1-is-out.html
> 
> You might want to target this, as barring any grave issues, it'll become 8.0.

I saw that, but for the moment I am busy with other issues (traveling/conference).

In a cursory look it seems as if the requirements for ws4py was dropped replaced by python3-aiohttp that is already in python.

There is a new dependency for python-babel that is already in fedora.

So in terms of new dependencies this is good news. :-)

So it should be easy after the submission of some of the packages that are on copr to get nikola 8 ready for review.


Two points that may show later:
 1) regarding the previous packaged version I removed the python?-nikola-extras because the dependencies size is very small when compared with the main package;

 2) it would be nice to use the automatic python requirement generator:

%{?python_enable_dependency_generator}

as compared with the large list of Requires: but I am not sure how the package pinning that upstream uses will play with this. For some packages, sometimes the requirement specifies a particular version.

Comment 23 Neal Gompa 2018-09-09 14:54:09 UTC
> as compared with the large list of Requires: but I am not sure how the package pinning that upstream uses will play with this. For some packages, sometimes the requirement specifies a particular version.

You'll have to edit that anyway, since the nikola executable is a setuptools wrapper that would validate dependencies anyway.

Comment 24 José Matos 2018-09-09 15:06:51 UTC
(In reply to Neal Gompa from comment #23)
> > as compared with the large list of Requires: but I am not sure how the package pinning that upstream uses will play with this. For some packages, sometimes the requirement specifies a particular version.
> 
> You'll have to edit that anyway, since the nikola executable is a setuptools
> wrapper that would validate dependencies anyway.

I does not that, at least for the version available in copr: python-nikola-7.8.15-2.
It has been working without any complaints even although I changed the Requires field in spec but not the requirements.txt.

I have used the basic stuff:

nikola build
nikola clean
nikola new_page
...


FWIW what you say makes sense :-) but I do not see it.

Comment 26 Elliott Sales de Andrade 2019-11-19 03:32:14 UTC
Neal?

Comment 27 Neal Gompa 2019-11-19 11:32:55 UTC
(In reply to Elliott Sales de Andrade from comment #26)
> Neal?

Could you update to 8.0.3 and also fill out the changelog for your updates? The changelog is missing information about your version bump...

Comment 28 José Matos 2019-12-01 07:32:12 UTC
(In reply to Neal Gompa from comment #27)
> (In reply to Elliott Sales de Andrade from comment #26)
> > Neal?
> 
> Could you update to 8.0.3 and also fill out the changelog for your updates?
> The changelog is missing information about your version bump...

I am quite busy in the next couple of weeks, but after the Friday 13th my available time will allow me to do this and other updates that have pilling up.

Comment 29 José Matos 2020-02-25 12:28:20 UTC
(In reply to Neal Gompa from comment #27)
> (In reply to Elliott Sales de Andrade from comment #26)
> > Neal?
> 
> Could you update to 8.0.3 and also fill out the changelog for your updates?
> The changelog is missing information about your version bump...

I have been busy at lot more than what I was expecting. :-(

Let us see if this now finally is ready.

Spec URL: https://download.copr.fedorainfracloud.org/results/jamatos/nikola-playground/fedora-rawhide-x86_64/01251909-python-nikola/python-nikola.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/jamatos/nikola-playground/fedora-rawhide-x86_64/01251909-python-nikola/python-nikola-8.0.4-2.fc33.src.rpm

Caveats:
  - the tests fail on F30 (possibly a missing dependency, actually the dependency in F30 too ancient for the requirements).
  - on F31 it runs 0 tests

there is a warning saying:
WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox.

Comment 30 Elliott Sales de Andrade 2020-03-05 02:46:19 UTC
Upstream tests using the pytest executable directly, so you should just do that and not bother with `python setup.py test`.

Comment 32 Neal Gompa 2020-03-06 02:20:05 UTC
Use "git-core" instead of "git" to reduce the build dependencies to what you just need for "%autosetup -S git"

Comment 34 José Matos 2020-03-06 21:40:47 UTC
The spec URL was right but the srpm was not, it should be:
SRPM URL: https://download.copr.fedorainfracloud.org/results/jamatos/nikola-playground/fedora-rawhide-x86_64/01285992-python-nikola/python3-nikola-8.0.4-4.fc33.noarch.rpm

There was typo, it was not release 3 but release 4 as it is in the spec file. The build was already complete in copr so it was my fault in copy and pasting.

Comment 35 Solomon Peachy 2020-03-16 13:25:51 UTC
FWIW, the nikola-8.0.4-4.fc31 package in the COPR doesn't work; there's no 'nikola' binary.

Comment 36 José Matos 2020-03-16 13:41:17 UTC
(In reply to Solomon Peachy from comment #35)
> FWIW, the nikola-8.0.4-4.fc31 package in the COPR doesn't work; there's no
> 'nikola' binary.

Have you installed the nikola subpackage?

$ rpm -ql nikola
/usr/bin/nikola
/usr/share/doc/nikola/extending.rst
/usr/share/doc/nikola/manual.rst
/usr/share/doc/nikola/theming.rst
/usr/share/licenses/nikola
/usr/share/licenses/nikola/LICENSE.txt
/usr/share/man/man1/nikola.1.gz

Comment 37 Solomon Peachy 2020-03-16 14:35:02 UTC
Ah!  you are correct, I didn't have the 'nikola' subpackage installed.

But the thing is, I was upgrading over the old, pre-retirement python3-nikola package (which I'd been rebuilding and updating all this while), which didn't use a separate subpackage for the main executable..

I can easily see other folks making this same mistake...

Comment 38 José Matos 2020-03-16 14:51:21 UTC
Which version did you had installed?

One option is for nikola to obsolete python2 or python3 subpackages older than 8.

In nikola:

Obsoletes: python2-nikola < 8
Obsoletes: python3-nikola < 8

What do you think?

Comment 39 Solomon Peachy 2020-03-16 14:57:03 UTC
Adding obseletes tags sounds like a fine idea.

I installed the COPR packages over the top of my 7.8.15 packages, which in turn were (heavily) modified from the pre-retirement 7.7.11-3.fc24 packages.   (Other than the version bump the main change was a complete removal of the python2 subpackages)

(I'm still working on getting my site to generate with v8.0, I think all that remains is porting my old theme)

Comment 40 José Matos 2020-03-16 16:42:40 UTC
New version:

Spec URL: https://download.copr.fedorainfracloud.org/results/jamatos/nikola-playground/fedora-rawhide-x86_64/01308945-python-nikola/python-nikola.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/jamatos/nikola-playground/fedora-rawhide-x86_64/01308945-python-nikola/python-nikola-8.0.4-5.fc33.src.rpm

Add the obsoletes to nikola to cope with any possible upgrade path. Meanwhile since python.markdown is available in Fedora 31 I made the tests universal.

Comment 41 Solomon Peachy 2020-03-17 01:48:45 UTC
I just finished porting my site; had to redo a bunch of templates but that was expected. 

Thanks for getting a modern nikola version properly packaged!

Comment 42 José Matos 2020-03-17 08:28:02 UTC
Hi Neal,

what is missing in this review?


FWIW in my todo list there is just a small issue, that can be done at ay time.
According to nikola's source:

"""
We ship some third-party things with Nikola.  They live here, along with their
licenses.

Packages:

 * tzlocal by Lennart Regebro, CC0 license (modified)
 * datecond by Chris Warrick (Nikola contributor), 3-clause BSD license
   (modified)
"""

The second is very small and from one of nikola's main contributors.
I asked about tzlocal and it can be done, with just a small change, either by
using the system tzlocal and by changing to pytz:
https://groups.google.com/forum/#!topic/nikola-discuss/3vXZFJF_-h4

Comment 43 Neal Gompa 2020-03-20 01:55:52 UTC
(In reply to José Matos from comment #42)
> Hi Neal,
> 
> what is missing in this review?
> 
> 
> FWIW in my todo list there is just a small issue, that can be done at ay
> time.
> According to nikola's source:
> 
> """
> We ship some third-party things with Nikola.  They live here, along with
> their
> licenses.
> 
> Packages:
> 
>  * tzlocal by Lennart Regebro, CC0 license (modified)
>  * datecond by Chris Warrick (Nikola contributor), 3-clause BSD license
>    (modified)
> """
> 
> The second is very small and from one of nikola's main contributors.
> I asked about tzlocal and it can be done, with just a small change, either by
> using the system tzlocal and by changing to pytz:
> https://groups.google.com/forum/#!topic/nikola-discuss/3vXZFJF_-h4

Please document the bundled dependencies and their versions and why, per the policy.

Cf. https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling
Cf. https://fedoraproject.org/wiki/Bundled_Libraries#Requirement_if_you_bundle

I would prefer to see tzlocal unbundled, though I can accept this upstream preferring otherwise as long as it is documented properly.

Comment 44 José Matos 2020-03-20 18:55:26 UTC
(In reply to Neal Gompa from comment #43)
> 
> Please document the bundled dependencies and their versions and why, per the
> policy.
> 
> Cf. https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling
> Cf.
> https://fedoraproject.org/wiki/Bundled_Libraries#Requirement_if_you_bundle
> 
> I would prefer to see tzlocal unbundled, though I can accept this upstream
> preferring otherwise as long as it is documented properly.

FWIW I agree with you and I intend to work on unbundling tzlocal, if possible to have this work applied upstream.
The other module it is not in pypi and so not it causes less concern.

The new version with just that change is here:
Spec URL: https://jamatos.fedorapeople.org/python-nikola.spec
SRPM URL: https://jamatos.fedorapeople.org/python-nikola-8.0.4-6.fc32.src.rpm

Comment 45 Neal Gompa 2020-03-20 22:43:27 UTC
The Requires: and Provides: lines you have need to move to the python3-nikola subpackage definition. They don't take effect otherwise.

Comment 46 José Matos 2020-03-20 23:12:51 UTC
(In reply to Neal Gompa from comment #45)
> The Requires: and Provides: lines you have need to move to the
> python3-nikola subpackage definition. They don't take effect otherwise.

You are right. New sources here:
Spec URL: https://jamatos.fedorapeople.org/python-nikola.spec
SRPM URL: https://jamatos.fedorapeople.org/python-nikola-8.0.4-6.fc32.src.rpm

I have removed tabs from the spec file, I did not mentioned in the changes because it mainly a cosmetic change.

Comment 47 Neal Gompa 2020-03-20 23:43:27 UTC
Please fix SourceURL:

> Source0:        https://github.com/getnikola/nikola/archive/v%{version}.tar.gz

This should be the following:

> Source0:        https://github.com/getnikola/nikola/archive/v%{version}/%{name}-%{version}.tar.gz

Comment 48 Neal Gompa 2020-03-20 23:44:04 UTC
Err strike that, it should be instead:

> Source0:        https://github.com/getnikola/nikola/archive/v%{version}/nikola-%{version}.tar.gz

Comment 49 José Matos 2020-03-21 10:32:45 UTC
(In reply to Neal Gompa from comment #48)
> Err strike that, it should be instead:
> 
> > Source0:        https://github.com/getnikola/nikola/archive/v%{version}/nikola-%{version}.tar.gz

New version with that change incorporated:
Spec URL: https://jamatos.fedorapeople.org/python-nikola.spec
SRPM URL: https://jamatos.fedorapeople.org/python-nikola-8.0.4-8.fc32.src.rpm

Comment 50 Neal Gompa 2020-03-21 18:49:08 UTC
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.
[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/doc/nikola
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/doc/nikola
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: 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 184320 bytes in 4 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]: 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 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).
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: 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.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: python3-nikola-8.0.4-8.fc33.noarch.rpm
          python-nikola-doc-8.0.4-8.fc33.noarch.rpm
          nikola-8.0.4-8.fc33.noarch.rpm
          python-nikola-8.0.4-8.fc33.src.rpm
python3-nikola.noarch: W: spelling-error %description -l en_US unformatted -> unformulated, formatted, unfortunate
python3-nikola.noarch: W: spelling-error %description -l en_US reStructuredText -> restructured Text, restructured-text, restructuring
python3-nikola.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/nikola/data/samplesite/listings/hello.py 644 /usr/bin/python 
python3-nikola.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/nikola/packages/datecond/__init__.py 644 /usr/bin/env python
python-nikola-doc.noarch: W: summary-not-capitalized C python-nikola documentation
python-nikola-doc.noarch: W: obsolete-not-provided python2-nikola
python-nikola-doc.noarch: W: obsolete-not-provided python3-nikola
nikola.noarch: W: summary-not-capitalized C python-nikola documentation
nikola.noarch: W: spelling-error %description -l en_US unformatted -> unformulated, formatted, unfortunate
nikola.noarch: W: spelling-error %description -l en_US reStructuredText -> restructured Text, restructured-text, restructuring
python-nikola.src: W: spelling-error %description -l en_US unformatted -> unformulated, formatted, unfortunate
python-nikola.src: W: spelling-error %description -l en_US reStructuredText -> restructured Text, restructured-text, restructuring
python-nikola.src:96: W: unversioned-explicit-provides bundled(python3-pytzlocal)
4 packages and 0 specfiles checked; 2 errors, 11 warnings.




Rpmlint (installed packages)
----------------------------
nikola.noarch: W: summary-not-capitalized C python-nikola documentation
nikola.noarch: W: spelling-error %description -l en_US unformatted -> unformulated, formatted, unfortunate
nikola.noarch: W: spelling-error %description -l en_US reStructuredText -> restructured Text, restructured-text, restructuring
nikola.noarch: W: invalid-url URL: https://getnikola.com/ <urlopen error [Errno -2] Name or service not known>
python-nikola-doc.noarch: W: summary-not-capitalized C python-nikola documentation
python-nikola-doc.noarch: W: invalid-url URL: https://getnikola.com/ <urlopen error [Errno -2] Name or service not known>
python-nikola-doc.noarch: W: obsolete-not-provided python2-nikola
python-nikola-doc.noarch: W: obsolete-not-provided python3-nikola
python3-nikola.noarch: W: spelling-error %description -l en_US unformatted -> unformulated, formatted, unfortunate
python3-nikola.noarch: W: spelling-error %description -l en_US reStructuredText -> restructured Text, restructured-text, restructuring
python3-nikola.noarch: W: invalid-url URL: https://getnikola.com/ <urlopen error [Errno -2] Name or service not known>
python3-nikola.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/nikola/data/samplesite/listings/hello.py 644 /usr/bin/python 
python3-nikola.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/nikola/packages/datecond/__init__.py 644 /usr/bin/env python
3 packages and 0 specfiles checked; 2 errors, 11 warnings.



Source checksums
----------------
https://github.com/getnikola/nikola/archive/v8.0.4/nikola-8.0.4.tar.gz :
  CHECKSUM(SHA256) this package     : 558c715b5df4ec065e410a084dafb96e50291f4972e378770532e9c930768610
  CHECKSUM(SHA256) upstream package : 558c715b5df4ec065e410a084dafb96e50291f4972e378770532e9c930768610


Requires
--------
python3-nikola (rpmlib, GLIBC filtered):
    glyphicons-halflings-fonts
    python(abi)
    python3.8dist(babel)
    python3.8dist(blinker)
    python3.8dist(docutils)
    python3.8dist(doit)
    python3.8dist(lxml)
    python3.8dist(mako)
    python3.8dist(markdown)
    python3.8dist(natsort)
    python3.8dist(piexif)
    python3.8dist(pillow)
    python3.8dist(pygments)
    python3.8dist(pyrss2gen)
    python3.8dist(python-dateutil)
    python3.8dist(requests)
    python3.8dist(setuptools)
    python3.8dist(unidecode)
    python3.8dist(yapsy)
    python3dist(aiohttp)
    python3dist(ghp-import2)
    python3dist(husl)
    python3dist(ipykernel)
    python3dist(jinja2)
    python3dist(micawber)
    python3dist(notebook)
    python3dist(phpserialize)
    python3dist(pygal)
    python3dist(pyphen)
    python3dist(ruamel.yaml)
    python3dist(toml)
    python3dist(typogrify)
    python3dist(watchdog)

python-nikola-doc (rpmlib, GLIBC filtered):

nikola (rpmlib, GLIBC filtered):
    /usr/bin/python3
    python3-nikola



Provides
--------
python3-nikola:
    bundled(python3-datecond)
    bundled(python3-pytzlocal)
    python-nikola
    python3-nikola
    python3.8dist(nikola)
    python3dist(nikola)

python-nikola-doc:
    python-nikola-doc

nikola:
    nikola



Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16
Command line :/usr/bin/fedora-review -b 1353169 -m fedora-rawhide-x86_64
Buildroot used: fedora-rawhide-x86_64
Active plugins: Python, Generic, Shell-api
Disabled plugins: PHP, R, fonts, Haskell, C/C++, Ocaml, SugarActivity, Perl, Java
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 51 Neal Gompa 2020-03-21 18:51:55 UTC
The only remaining issue is that you're missing the following line in the python-nikola-doc subpackage files section:

> %dir %{_datadir}/doc/%{pypi_name}

Please add that.

Comment 52 José Matos 2020-03-21 19:03:31 UTC
(In reply to Neal Gompa from comment #51)
> The only remaining issue is that you're missing the following line in the
> python-nikola-doc subpackage files section:
> 
> > %dir %{_datadir}/doc/%{pypi_name}
> 
> Please add that.

Good catch, now on hindsight it is obvious. :-)
I have added that line not to python-nikola-doc but to nikola that installs it.

Spec URL: https://jamatos.fedorapeople.org/python-nikola.spec
SRPM URL: https://jamatos.fedorapeople.org/python-nikola-8.0.4-9.fc32.src.rpm

Comment 53 Neal Gompa 2020-03-21 22:50:05 UTC
Looks good to me.

With that, this package is finally APPROVED.

Comment 54 Fedora Update System 2020-03-23 14:10:15 UTC
FEDORA-2020-9185d89caf has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2020-9185d89caf

Comment 55 José Matos 2020-03-23 14:19:19 UTC
Thank you Neal.

I think that now we should be awarded the "Spring cleanings" badge. :-)

Comment 56 Fedora Update System 2020-03-24 01:52:10 UTC
FEDORA-2020-7d4505de5e has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-7d4505de5e`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-7d4505de5e

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 57 Fedora Update System 2020-03-24 09:40:49 UTC
FEDORA-2020-1f943f6cc7 has been pushed to the Fedora 31 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-1f943f6cc7`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-1f943f6cc7

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 58 Fedora Update System 2020-03-24 10:13:05 UTC
FEDORA-2020-9185d89caf has been pushed to the Fedora 30 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-9185d89caf`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-9185d89caf

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 59 Fedora Update System 2020-04-01 00:17:03 UTC
FEDORA-2020-7d4505de5e has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 60 Fedora Update System 2020-04-01 01:55:05 UTC
FEDORA-2020-1f943f6cc7 has been pushed to the Fedora 31 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 61 Fedora Update System 2020-04-01 16:32:04 UTC
FEDORA-2020-7d4505de5e has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.


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