Bug 1519785 - Review Request: notepadqq - An advanced text editor for developers
Summary: Review Request: notepadqq - An advanced text editor for developers
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Ben Rosser
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1426844 (view as bug list)
Depends On:
Blocks: FE-NEEDSPONSOR
TreeView+ depends on / blocked
 
Reported: 2017-12-01 13:06 UTC by jan
Modified: 2018-08-02 07:02 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-07-22 08:36:04 UTC
Type: ---
Embargoed:
rosser.bjr: fedora-review+


Attachments (Terms of Use)

Description jan 2017-12-01 13:06:00 UTC
Continuing where https://bugzilla.redhat.com/show_bug.cgi?id=1426844 left off...

Spec URL: https://github.com/jdeluyck/notepadqq-packaging/blob/master/Fedora/notepadqq.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/4438/23484438/notepadqq-1.2.0-1.fc27.src.rpm
Description: A qt text editor for developers, with advanced tools, but remaining simple. It supports syntax highlighting, themes and more.

Fedora Account System Username: jdeluyck

Taking over to try to get notepadqq included in Fedora. I've taken up some of the comments in the previous bug report, and updated the spec file.

I'm awaiting some comments before I further push the spec file upstream to the author. I've updated it in the past to build newer versions.

Kodji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=23484438

Comment 1 Raphael Groner 2017-12-07 18:10:20 UTC
*** Bug 1426844 has been marked as a duplicate of this bug. ***

Comment 2 Ben Rosser 2017-12-08 21:50:53 UTC
This looks like a nice piece of software! I'd be happy to review it and sponsor you.

It doesn't look like you've introduced yourself on the Fedora devel mailing list. I'd encourage you to do so. (https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Introduce_yourself).

I did a first pass of the spec, but this is not necessarily exhaustive.

> Spec URL: https://github.com/jdeluyck/notepadqq-packaging/blob/master/Fedora/notepadqq.spec

In order to aid the automated review tools, it's better to provide a "raw" github link, like:

> Spec URL: https://raw.githubusercontent.com/jdeluyck/notepadqq-packaging/master/Fedora/notepadqq.spec

Once you do so, you'd be able to run the "fedora-review" tool over a bugzilla ticket by, say:

> dnf install fedora-review
> fedora-review -b 1519785 -m fedora-rawhide-x86_64

This will do some additional checks beyond what rpmlint does. 

> Patch0:			node-path.patch
> Patch1:			add-node.patch
> Patch2:			bash-path.patch

I took a look at the patches and they all seem reasonable. It'd be good to include comments directly in the spec explaining what they are for, though. 

> Source1:		https://github.com/codemirror/CodeMirror/archive/5.32.0.tar.gz

I need to look into this in more detail, but it looks like you're bundling codemirror. Is this because the version of nodejs-codemirror (4.8) in Fedora is too old?

Either way, if you need to bundle a package you must follow the bundling policy, for this and any other bundled nodejs libraries.

https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:Bundled_Libraries

I'd encourage you to attempt to unbundle nodejs libraries by symbolically linking to system copies instead, where possible.

> %setup -q

You can avoid the patch directives by using the "%autosetup -p1" macro instead (no -q is needed). It will automatically apply the patches.

> %{_datarootdir}/%{name}

You can use %{_datadir} instead of %{_datarootdir} (it's a bit shorter to type). https://fedoraproject.org/wiki/Packaging:RPMMacros

> %doc %{_mandir}/man1/%{name}.1.gz

Manpages are automatically marked as %doc; you don't need to do it manually.

Also, the packaging guidelines say that you should use a wildcard here (e.g. ".1*"). That way if the default compression format ever changes specs don't need updating. https://fedoraproject.org/wiki/Packaging:Guidelines#Manpages

> cp $(find | grep desktop$) %{buildroot}/%{_datarootdir}/applications

It looks like you're using this to install the desktop file. Desktop files need to be installed using the "desktop-file-install" command, or validated with "desktop-file-validate". This will ensure the file is valid. Take a look at this section of the guidelines for more details:

https://fedoraproject.org/wiki/Packaging:Guidelines#desktop-file-install_usage

Also, please consider writing an AppStream metadata file and submitting it upstream. 

https://fedoraproject.org/wiki/Packaging:AppData

> I'm awaiting some comments before I further push the spec file upstream to the author.

While you're welcome to do so, this isn't necessary. The authoritative source of a Fedora package's spec is our own dist-git repositories hosted on https://src.fedoraproject.org/. Specs don't need to be included in upstream packages.

Comment 3 jan 2017-12-10 15:08:52 UTC
(In reply to Ben Rosser from comment #2)
> I took a look at the patches and they all seem reasonable. It'd be good to
> include comments directly in the spec explaining what they are for, though. 

Done.

> > Source1:		https://github.com/codemirror/CodeMirror/archive/5.32.0.tar.gz
> 
> I need to look into this in more detail, but it looks like you're bundling
> codemirror. Is this because the version of nodejs-codemirror (4.8) in Fedora
> is too old?

Upstream includes this into the source - a version which is more recent than the one in Fedora, but older than the one I'm using. I'll have to check how 
this actually is being used within the build process.

> > %setup -q
> 
> You can avoid the patch directives by using the "%autosetup -p1" macro
> instead (no -q is needed). It will automatically apply the patches.

Modified.

> > %{_datarootdir}/%{name}
> 
> You can use %{_datadir} instead of %{_datarootdir} (it's a bit shorter to
> type). https://fedoraproject.org/wiki/Packaging:RPMMacros

Modified.

> > %doc %{_mandir}/man1/%{name}.1.gz
> 
> Manpages are automatically marked as %doc; you don't need to do it manually.

Modified.

> > cp $(find | grep desktop$) %{buildroot}/%{_datarootdir}/applications
> 
> It looks like you're using this to install the desktop file. Desktop files
> need to be installed using the "desktop-file-install" command, or validated
> with "desktop-file-validate". This will ensure the file is valid. Take a
> look at this section of the guidelines for more details:
> 
> https://fedoraproject.org/wiki/Packaging:Guidelines#desktop-file-
> install_usage

Thanks for that - I wasn't aware of this particular command. I've changed the SPEC file to match. 

> Also, please consider writing an AppStream metadata file and submitting it
> upstream. 
> 
> https://fedoraproject.org/wiki/Packaging:AppData

I'll have a look at this too ;) 

> 
> > I'm awaiting some comments before I further push the spec file upstream to the author.
> 
> While you're welcome to do so, this isn't necessary. The authoritative
> source of a Fedora package's spec is our own dist-git repositories hosted on
> https://src.fedoraproject.org/. Specs don't need to be included in upstream
> packages.

Upstream already has build instructions & the spec file in their repo, so I'd like to keep this as much in sync as possible in the long run. But for now.. let's keep this rolling.

SPEC file: https://raw.githubusercontent.com/jdeluyck/notepadqq-packaging/master/Fedora/notepadqq.spec

SRPM file: https://kojipkgs.fedoraproject.org//work/tasks/5745/23625745/notepadqq-1.2.0-2.fc28.src.rpm

Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=23625744

Comment 4 Ben Rosser 2018-04-10 21:10:36 UTC
I'm really sorry for letting this sit for several months!

Can you upload the SRPM to a more permanent place than koji, and I'll take another look? Your build was deleted.

But generally, it seems as though there are lots of bundled node libraries under "./extension_tools/node_modules" in the archive. It would be nice to be able to unbundle them, but if not you must add bundled provides as described here to the spec.

https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:Bundled_Libraries

Comment 5 jan 2018-04-11 05:52:47 UTC
(In reply to Ben Rosser from comment #4)
> I'm really sorry for letting this sit for several months!
> 
> Can you upload the SRPM to a more permanent place than koji, and I'll take
> another look? Your build was deleted.
> 
> But generally, it seems as though there are lots of bundled node libraries
> under "./extension_tools/node_modules" in the archive. It would be nice to
> be able to unbundle them, but if not you must add bundled provides as
> described here to the spec.
> 
> https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:
> Bundled_Libraries

I'll have a look tonight. I've been tracking upstream, and they've included some updates that I want to package, so I can probably drop the externally included library.

Comment 6 jan 2018-04-11 18:41:44 UTC
I've submitted a new build to koji:

https://koji.fedoraproject.org/koji/taskinfo?taskID=26311309

Comment 7 jan 2018-04-11 20:03:48 UTC
Added the Provides: in build https://koji.fedoraproject.org/koji/taskinfo?taskID=26311309

Comment 8 jan 2018-04-11 20:10:13 UTC
I'm sorry - I seem to have pasted the wrong koji url.

This one is correct for the latest build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=26312199

Comment 9 Ben Rosser 2018-04-18 22:25:40 UTC
When updating a package submission, it is really helpful to link to both the spec and SRPM in the following form:

Spec URL: [link to latest spec]
SRPM URL: [link to latest SRPM]

Don't just link a koji build. That way the automatic review tool (the "fedora-review" package) can run over your submission. This is not a requirement but it's extremely helpful. :)

Anyway; please either add bundled provides or unbundle the following additional nodejs modules too:

[bjr@irune src]$ ls extension_tools/node_modules/ -l
total 12
drwxrwxr-x 5 bjr bjr 4096 Apr 10 13:33 adm-zip
drwxrwxr-x 4 bjr bjr 4096 Apr 10 13:33 archiver
drwxrwxr-x 5 bjr bjr 4096 Apr 10 13:33 shelljs

Further, nodejs-archiver has the following nodejs dependencies which are also bundled:

[bjr@irune node_modules]$ ls archiver/node_modules/ -l
total 32
drwxrwxr-x  4 bjr bjr 4096 Apr 10 13:33 async
drwxrwxr-x  3 bjr bjr 4096 Apr 10 13:33 buffer-crc32
drwxrwxr-x  3 bjr bjr 4096 Apr 10 13:33 glob
drwxrwxr-x  4 bjr bjr 4096 Apr 10 13:33 lazystream
drwxrwxr-x 13 bjr bjr 4096 Apr 10 13:33 lodash
drwxrwxr-x  4 bjr bjr 4096 Apr 10 13:33 readable-stream
drwxrwxr-x  3 bjr bjr 4096 Apr 10 13:33 tar-stream
drwxrwxr-x  4 bjr bjr 4096 Apr 10 13:33 zip-stream

archiver, at least, is packaged in fedora as "nodejs-archiver". I would strongly encourage you to unbundle it due to the large nodejs dependency tree here. :)

Additionally, if you don't unbundle things, you'll need to update the License: field accordingly with the licenses of the bundled packages. Looking at the output from licensecheck, I can see that a lot of the node modules are under the ISC, BSD, and MIT licenses:

https://paste.fedoraproject.org/paste/KZco-kvQsCQcBRdAkap0mQ

e.g.:

BSD (2 clause)
--------------
notepadqq-1.3.4/src/extension_tools/node_modules/shelljs/LICENSE

BSD (3 clause)
--------------
notepadqq-1.3.4/doc/api/theme/license/highlight.js/LICENSE

ISC
---
notepadqq-1.3.4/src/extension_tools/node_modules/archiver/node_modules/glob/LICENSE

MIT/X11 (BSD like)
------------------
notepadqq-1.3.4/src/editor/libs/codemirror/LICENSE

You can do this by writing, e.g. "License: GPLv3+ and MIT" for codemirror; see
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Multiple_Licensing_Scenarios for more information.

Another license-related comment:

- 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.
  Note: License file COPYING is not marked as %license

You need to mark the "COPYING" file as %license in the files section.

https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License_Text

Comment 10 jan 2018-04-20 13:29:03 UTC
Spec URL: https://raw.githubusercontent.com/jdeluyck/notepadqq-packaging/master/Fedora/notepadqq.spec

SRPM URL: https://kcore.org/tmp/notepadqq-1.3.6-1.fc27.src.rpm

Updates:
- Removed nodejs-shelljs and nodejs-archiver, only adm-zip is left (since this is not available in Fedora)
- Updated license
- Updated to version 1.3.6
- fixed some rpmlint warnings.

Comment 11 Ben Rosser 2018-05-22 01:00:46 UTC
I finally got around to doing a full review. Now that the bundling issues have been sorted out, I think the package mostly looks good!

Issues
------

- 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.
  Note: License file COPYING is not marked as %license
  See:
  http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text

$ rpmls results/notepadqq-1.3.6-1.fc29.x86_64.rpm  | grep COPYING
-rw-r--r--  /usr/share/doc/notepadqq/COPYING

You should not install COPYING into /usr/share/doc; avoid copying it here in the first place. Instead, as it says on the linked wiki page, you should just do this:

%license COPYING

This will automatically install the license file into /usr/share/licenses.

- If the package is under multiple licenses, the licensing breakdown must be documented in the spec.

When writing the License tag it's good to add a comment explicitly detailing the license breakdown-- sorry, I should have mentioned this before. (e.g. which part is under GPL and which part is under MIT). It doesn't need to be super detailed, just something like "This bundled library is under this license, this one is under that license", etc.


- Package must own all directories that it creates.
  Note: Directories without known owners: /usr/libexec/notepadqq

This is because of the way you list this in the file list:

%{_libexecdir}/%{name}/%{name}-bin

The directory %{_libexecdir}/%{name} will not be marked as owned by the package. Instead, you can just do this, and contents of %{_libexecdir}/%{name} will still be included:

%{_libexecdir}/%{name}

- Latest version is packaged.

There's been a new release within the past month, but this is my fault for not getting to the review sooner. :(

I think these are the only showstoppers. Unfortunately, the package currently does not install on Rawhide...

Error: 
 Problem: package notepadqq-1.3.6-1.fc29.x86_64 requires nodejs-archiver, but none of the providers can be installed
  - package nodejs-archiver-1.0.1-4.fc29.noarch requires (npm(archiver-utils) >= 1.0.0 with npm(archiver-utils) < 2), but none of the providers can be installed
  - conflicting requests
  - nothing provides (npm(normalize-path) >= 2.0.0 with npm(normalize-path) < 3) needed by nodejs-archiver-utils-1.3.0-5.fc29.noarch

This is nothing to do with notepadqq though, this is a nodejs packaging problem (ergh). I've filed a ticket against nodejs-archiver on your behalf: https://bugzilla.redhat.com/show_bug.cgi?id=1581012

I did also test that the package builds on Fedora 28, and it looks fine. So please just fix the three issues above, and I'll be happy to approve it and sponsor you.

Again, sorry this took so long, I haven't had as much time for Fedora lately as I was hoping.

Comment 12 Ben Rosser 2018-05-22 01:09:12 UTC
Oh, actually, I missed one thing.

notepadqq appears to have recently gained an appstream metadata file:

https://github.com/notepadqq/notepadqq/blob/master/support_files/notepadqq.appdata.xml

You should install this using appstream-util. Take a look at this wiki page for information: https://fedoraproject.org/wiki/Packaging:AppData

This will cause notepadqq to show up in Gnome Software (among other places).

Comment 13 Ben Rosser 2018-06-11 19:47:56 UTC
The nodejs-archiver issue was fixed last week, so notepadqq should be able to install on Rawhide again. So you should be able to proceed. :)

Comment 14 jan 2018-06-12 16:59:28 UTC
(In reply to Ben Rosser from comment #12)
> Oh, actually, I missed one thing.
> 
> notepadqq appears to have recently gained an appstream metadata file:
> 
> https://github.com/notepadqq/notepadqq/blob/master/support_files/notepadqq.
> appdata.xml
> 
> You should install this using appstream-util. Take a look at this wiki page
> for information: https://fedoraproject.org/wiki/Packaging:AppData
> 
> This will cause notepadqq to show up in Gnome Software (among other places).

I've updated the SPEC file, but I'm a bit stuck on what to do with the appdata.xml.

I've added a patch to make it valid (I'll take this upstream), but installing it seems to hit a snag:

appstream-util validate-relax --nonet support_files/notepadqq.appdata.xml
appstream-util install --nonet support_files/notepadqq.appdata.xml

+ appstream-util validate-relax --nonet support_files/notepadqq.appdata.xml
support_files/notepadqq.appdata.xml: OK
+ appstream-util install --nonet support_files/notepadqq.appdata.xml
Error opening file ?/usr/share/appdata/notepadqq.appdata.xml?: Permission denied
error: Bad exit status from /var/tmp/rpm-tmp.Pap9ky (%install)

Any ideas?

Comment 15 Andrea Musuruane 2018-06-12 18:50:59 UTC
(In reply to jan from comment #14)
> I've updated the SPEC file, but I'm a bit stuck on what to do with the
> appdata.xml.
> 
> I've added a patch to make it valid (I'll take this upstream), but
> installing it seems to hit a snag:
> 
> appstream-util validate-relax --nonet support_files/notepadqq.appdata.xml
> appstream-util install --nonet support_files/notepadqq.appdata.xml
> 
> + appstream-util validate-relax --nonet support_files/notepadqq.appdata.xml
> support_files/notepadqq.appdata.xml: OK
> + appstream-util install --nonet support_files/notepadqq.appdata.xml
> Error opening file ?/usr/share/appdata/notepadqq.appdata.xml?: Permission
> denied
> error: Bad exit status from /var/tmp/rpm-tmp.Pap9ky (%install)
> 
> Any ideas?

It seems you are not installing the AppData file inside the buildroot.

Comment 18 Ben Rosser 2018-06-20 19:19:20 UTC
Two hopefully final comments:

1. Please don't forget to add "%license COPYING" to include the license file in the package, under the %files section. This will automatically include the license.

2. 

> warning: bogus date in %changelog: Tue Jun 13 2018 Jan De Luyck <jan> 1.4.8-1

I think you mean either "Wed Jun 13 2018" or "Tue Jun 12 2018". Note that "rpmdev-bumpsec" can automatically generate changelog entries for you.

Otherwise, this looks good.

Comment 19 jan 2018-06-27 16:36:04 UTC
Spec URL: https://raw.githubusercontent.com/jdeluyck/notepadqq-packaging/master/Fedora/notepadqq.spec

SRPM URL: https://kcore.org/tmp/notepadqq-1.4.8-2.fc28.src.rpm

Changelog:
- Corrected date and included LICENSE.

Comment 20 Ben Rosser 2018-06-27 19:04:02 UTC
Just a heads up; https://raw.githubusercontent.com/jdeluyck/notepadqq-packaging/master/Fedora/notepadqq.spec seems to have git merge conflict markers in it... e.g.:

=======
>>>>>>> upstream/master

The version in the SRPM doesn't, so I'll run final checks over that and then hopefully approve the package. But please be careful with this sort of thing. (In general, you should always make sure the copy of the spec you link and the one that's in the SRPM are the same).

Comment 21 jan 2018-06-27 19:14:32 UTC
In all honesty, this was a major fsck'up on my end. I've repushed the correct file (I thought I hadn't pushed it out, but appareantely I did).

In the future I'll work on branches, not on master ;)

Comment 22 Ben Rosser 2018-06-27 21:13:38 UTC
No worries, it happens sometime-- just wanted to make sure you were aware. :)

Anyway, I'm sorry, but it looks like there are (now?) more bundled dependencies under src/editor/libs that I seem to have missed before...

$ ls -l src/editor/libs
...
drwxrwxr-x. 12 bjr bjr 4096 May 10 18:26 codemirror
drwxrwxr-x.  2 bjr bjr 4096 May 10 18:26 jquery
drwxrwxr-x.  6 bjr bjr 4096 May 10 18:26 MathJax
drwxrwxr-x.  2 bjr bjr 4096 May 10 18:26 require.js

MathJax is the big one, but there's also require.js and jquery.

I would suggest trying to unbundle MathJax if possible; the other two it may be simplest to just add bundled provides for.

Comment 23 jan 2018-06-28 06:16:51 UTC
Spec URL: https://raw.githubusercontent.com/jdeluyck/notepadqq-packaging/master/Fedora/notepadqq.spec

SRPM URL: https://kcore.org/tmp/notepadqq-1.4.8-3.fc28.src.rpm

Changelog:
- Removed bundled MathJax 
- Added bundled provides for requireJS and jQuery
- Added license info for requireJS and jQuery (comment) -> MIT

Comment 24 Ben Rosser 2018-06-28 18:01:08 UTC
Great!

I think everything looks good now then... all my other comments have been addressed. I have sponsored you into the packagers group, and will now go ahead and approve the package.

You should now be able to follow the instructions on this page below the "Get Sponsored" section to create a git repository for the package and build it in Fedora.

https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Get_Sponsored

Sorry again this took a while to process! Feel free to contact me either by email or over IRC (my handle is "TC01" on all the Freenode Fedora IRC channels) if you have packaging questions, about this or any other package. :)

Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Apache (v2.0)", "GPL (v3 or later)", "Unknown or generated",
     "MIT/X11 (BSD like)", "BSL (v1.0)", "SIL (v1.1)", "ISC", "*No
     copyright* BSD (unspecified)", "BSD (3 clause)", "BSD (2 clause)",
     "*No copyright* MIT/X11 (BSD like)", "*No copyright* Apache (v2.0)".
     1472 files have unknown license. Detailed output of licensecheck in
     /home/bjr/Programming/fedora/reviews/1519785-notepadqq/licensecheck.txt
[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.
[x]: Package does not own files or directories owned by other packages.
[x]: %build honors applicable compiler flags or justifies otherwise.
[-]: 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.
[x]: 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 20480 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]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[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

===== 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.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     notepadqq-debuginfo , notepadqq-debugsource
[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.
[-]: 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:
[-]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 3092480 bytes in /usr/share
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: notepadqq-1.4.8-3.fc29.x86_64.rpm
          notepadqq-debuginfo-1.4.8-3.fc29.x86_64.rpm
          notepadqq-debugsource-1.4.8-3.fc29.x86_64.rpm
          notepadqq-1.4.8-3.fc29.src.rpm
notepadqq.x86_64: W: hidden-file-or-dir /usr/share/notepadqq/extension_tools/node_modules/.bin
notepadqq.x86_64: W: hidden-file-or-dir /usr/share/notepadqq/extension_tools/node_modules/.bin
notepadqq.x86_64: W: dangling-symlink /usr/share/notepadqq/extension_tools/node_modules/.bin/shjs /usr/bin/shjs
notepadqq.src:33: W: unversioned-explicit-provides bundled(nodejs-adm-zip)
4 packages and 0 specfiles checked; 0 errors, 4 warnings.




Rpmlint (debuginfo)
-------------------
Checking: notepadqq-debuginfo-1.4.8-3.fc29.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
notepadqq.x86_64: W: invalid-url URL: https://github.com/notepadqq/notepadqq <urlopen error [Errno -2] Name or service not known>
notepadqq.x86_64: W: hidden-file-or-dir /usr/share/notepadqq/extension_tools/node_modules/.bin
notepadqq.x86_64: W: hidden-file-or-dir /usr/share/notepadqq/extension_tools/node_modules/.bin
notepadqq.x86_64: W: dangling-symlink /usr/share/notepadqq/extension_tools/node_modules/.bin/shjs /usr/bin/shjs
notepadqq-debuginfo.x86_64: W: invalid-url URL: https://github.com/notepadqq/notepadqq <urlopen error [Errno -2] Name or service not known>
notepadqq-debugsource.x86_64: W: invalid-url URL: https://github.com/notepadqq/notepadqq <urlopen error [Errno -2] Name or service not known>
3 packages and 0 specfiles checked; 0 errors, 6 warnings.



Requires
--------
notepadqq (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/node
    ld-linux-x86-64.so.2()(64bit)
    libGL.so.1()(64bit)
    libQt5Core.so.5()(64bit)
    libQt5Core.so.5(Qt_5)(64bit)
    libQt5Core.so.5(Qt_5.11)(64bit)
    libQt5Gui.so.5()(64bit)
    libQt5Gui.so.5(Qt_5)(64bit)
    libQt5Network.so.5()(64bit)
    libQt5Network.so.5(Qt_5)(64bit)
    libQt5PrintSupport.so.5()(64bit)
    libQt5PrintSupport.so.5(Qt_5)(64bit)
    libQt5Svg.so.5()(64bit)
    libQt5WebKit.so.5()(64bit)
    libQt5WebKitWidgets.so.5()(64bit)
    libQt5WebKitWidgets.so.5(Qt_5)(64bit)
    libQt5Widgets.so.5()(64bit)
    libQt5Widgets.so.5(Qt_5)(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    mathjax
    nodejs
    nodejs-archiver
    nodejs-shelljs
    qt5-qtsvg
    qt5-qtwebkit
    rtld(GNU_HASH)

notepadqq-debuginfo (rpmlib, GLIBC filtered):

notepadqq-debugsource (rpmlib, GLIBC filtered):



Provides
--------
notepadqq:
    application()
    application(notepadqq.desktop)
    bundled(jQuery)
    bundled(nodejs-adm-zip)
    bundled(nodejs-codemirror)
    bundled(requireJS)
    metainfo()
    metainfo(notepadqq.appdata.xml)
    mimehandler(text/html)
    mimehandler(text/plain)
    mimehandler(text/x-c)
    mimehandler(text/x-php)
    mimehandler(text/x-shellscript)
    notepadqq
    notepadqq(x86-64)

notepadqq-debuginfo:
    debuginfo(build-id)
    notepadqq-debuginfo
    notepadqq-debuginfo(x86-64)

notepadqq-debugsource:
    notepadqq-debugsource
    notepadqq-debugsource(x86-64)



Source checksums
----------------
https://github.com/notepadqq/notepadqq/archive/v1.4.8.tar.gz#/notepadqq-1.4.8.tar.gz :
  CHECKSUM(SHA256) this package     : 13fba9abd84c59de27fbe92f74e2763b57588fcf9c88af10ec67313b0abbc9d0
  CHECKSUM(SHA256) upstream package : 13fba9abd84c59de27fbe92f74e2763b57588fcf9c88af10ec67313b0abbc9d0


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1519785 -m fedora-rawhide-x86_64
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 25 jan 2018-06-29 06:11:04 UTC
Thanks a lot!

I'll go ahead and read through the documentation you linked, I'm happy to help out the Fedora project :)

Comment 26 Gwyn Ciesla 2018-07-02 13:48:47 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/notepadqq

Comment 27 Raphael Groner 2018-07-21 21:25:39 UTC
There are successful builds in rawhide. Can we close here?

Comment 28 jan 2018-07-22 08:36:04 UTC
Tes!

Comment 29 Martin Wolf 2018-08-02 07:02:36 UTC
just a minor annoyance, but the icon of notepadqq is missing in the rpm


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