Bug 1768447

Summary: Review Request: mcomix3 - User-friendly, customizable image viewer for comic books
Product: [Fedora] Fedora Reporter: Mamoru TASAKA <mtasaka>
Component: Package ReviewAssignee: Zbigniew Jędrzejewski-Szmek <zbyszek>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: mhroncok, package-review, zbyszek
Target Milestone: ---Flags: zbyszek: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-11 04:18:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mamoru TASAKA 2019-11-04 13:30:37 UTC
Spec URL: https://mtasaka.fedorapeople.org/Review_request/mcomix3/mcomix3.spec
SRPM URL: https://mtasaka.fedorapeople.org/Review_request/mcomix3/mcomix3-0-0.1.D20190616git0405a23.fc.src.rpm
Description: 
MComix3 is a user-friendly, customizable image viewer.
It is forked from MComix gtk3 branch and switch to python3.

koji scratch build for F32:
https://koji.fedoraproject.org/koji/taskinfo?taskID=38756041

Fedora Account System Username: mtasaka

Note:
This package is a fork of mcomix / comix which are written with python2, and this package is intended to replace them on Fedora 32.

Comment 1 Zbigniew Jędrzejewski-Szmek 2019-11-04 14:46:37 UTC
> It is forked from MComix gtk3 branch and switch to python3.
It has been forked from the original MComix project and ported to python3. ?

> # Setup source git repository
> git clone ./%{name}.git
> cd %{name}
>
> git config user.name "%{name} Fedora maintainer"
> git config user.email "%{name}-owner"
> git checkout -b %{version}-%{release}-fedora %{gitcommit}
> 
> # Apply patches
> cat %{PATCH1} | git am
> cat %{PATCH2} | git am
> cat %{PATCH3} | git am
> # For now apply this
> cat %{PATCH4} | git am
That is so complicated. I understand that it makes submitting patches upstream a
bit easier, but it also makes the package harder to contribute to for other contributors,
because of the complicated setup and because of the need to generate the tarball manually.
Maybe it is not worth it, and the normal setup with the tarball downloaded directly from
github should be used?

rpmlint says:
mcomix3.noarch: W: desktopfile-without-binary /usr/share/applications/mcomix3.desktop mcomix3
But /usr/bin/mcomix3 is in the package. Strange.

mcomix3.noarch: W: obsolete-not-provided comix
mcomix3.noarch: W: obsolete-not-provided mcomix
Hmm, maybe Provides should be added, at least for mcomix? After all, people just want
to upgrade and get the new package instead of the old one, most likely.

+ latest version (git)
+ package name is OK
+ license is acceptable for Fedora (GPLv2+)
+ license is specified correctly
+ builds and installs OK
+ Provides/Requires/BuildRequires look OK

I had some suggestions, but they are only suggestions.

Package is APPROVED.

Comment 2 Miro Hrončok 2019-11-04 15:13:46 UTC
What about?

%autosetup -S git

Comment 3 Zbigniew Jędrzejewski-Szmek 2019-11-04 15:44:19 UTC
> %autosetup -S git

The tarball is an actual bare .git directory. %autosetup won't work.

Comment 4 Miro Hrončok 2019-11-04 16:05:24 UTC
oh, sorry. I conclude that "the normal setup with the tarball downloaded directly from github should be used"

Comment 5 Zbigniew Jędrzejewski-Szmek 2019-11-04 16:08:58 UTC
I wasn't clear, sorry.
%autosetup *should* be used, if the switch is made all the way to "the normal setup with the tarball downloaded directly from github".
I was just trying to say, that with the current approach where a bare .git directory is used, it can't.

Comment 6 Mamoru TASAKA 2019-11-05 14:43:22 UTC
Thank you for very fast review!

>> It is forked from MComix gtk3 branch and switch to python3.
> It has been forked from the original MComix project and ported to python3. ?

Well, I just copy/pasted the upstream sentence here, but I will use your sentence.

> That is so complicated. I understand that it makes submitting patches upstream a
> bit easier, but it also makes the package harder to contribute to for other contributors,

Actually as recently I came to submit patches to the upstream more and more times,
gradually I came to think that this way (i.e. cloning the upstream git to the build
directory) is easier. Generating tarball can be done by just running  Source1
(as I commented), so for now I will do this way. Thank you for comment anyway.

> mcomix3.noarch: W: desktopfile-without-binary /usr/share/applications/mcomix3.desktop mcomix3
Umm... I did not see this warning, but after I checked the source of rpmlint,
I suppose I got the reason. i.e. Once one installs (current) mcomix3 binary, this rpmlint
disappears (for even binary rpm).

Well, /usr/share/rpmlint/MenuXDGCheck.py says:
=========================================================================
    58              binary = None
    59              if cfp.has_option('Desktop Entry', 'Exec'):
    60                  binary = cfp.get('Desktop Entry', 'Exec').partition(' ')[0]
    61              if binary:
    62                  found = False
    63                  if binary.startswith('/'):
    64                      found = os.path.exists(root + binary)
    65                  else:
    66                      for i in STANDARD_BIN_DIRS:
    67                          if os.path.exists(root + i + '/' + binary):
    68                              # no need to check if the binary is +x, rpmlint does it
    69                              # in another place
    70                              found = True
    71                              break
    72                  if not found:
    73                      printWarning(
    74                          pkg, 'desktopfile-without-binary', filename, binary)
===========================================================================

So here I *guess* rpmlint once unpack the binary rpm, and rpmlint checks if
the binary actually exists at the line 67 (here "root" is *perhaps* the unpacked 
directory, "i" is /usr/bin, binary is mcomix3), and actually
<unpacked root>/usr/bin/mcomix3 is the symlink pointing to absolute path /usr/lib/.....
which does not exist unless mcomix3 binary is actually installed.

So perhaps I guess this will be fixed when changing the symlink to the relative one.
I may try it once importing this package.

> Hmm, maybe Provides should be added, at least for mcomix? 
I will do this, thank you for suggestion.

Now I will proceed to the following procedure. Again thank you for review and approving this.

Comment 7 Gwyn Ciesla 2019-11-06 13:32:18 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/mcomix3

Comment 8 Mamoru TASAKA 2019-11-09 02:48:38 UTC
mcomix3 was successfully built for rawhide, for now I am waiting for next compose to verify it.

Comment 9 Mamoru TASAKA 2019-11-11 04:18:42 UTC
Now mcomix3 appeared in compose, closing. Thank you for review!