Bug 1633411 - Review Request: gitit - Wiki using happstack, git or darcs, and pandoc
Summary: Review Request: gitit - Wiki using happstack, git or darcs, and pandoc
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Robert-André Mauchin 🐧
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1633403 1633405 1633406 1633407 1633408 1633409
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-09-26 21:41 UTC by Ben Rosser
Modified: 2018-11-11 04:00 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2018-11-11 04:00:47 UTC
Type: ---
Embargoed:
eclipseo: fedora-review+


Attachments (Terms of Use)

Description Ben Rosser 2018-09-26 21:41:12 UTC
Spec URL: https://tc01.fedorapeople.org/haskell/gitit/gitit.spec
SRPM URL: https://tc01.fedorapeople.org/haskell/gitit/gitit-0.12.2.1-1.20180816gitee9927f.fc28.src.rpm

Description:
Gitit is a wiki backed by a git, darcs, or mercurial filestore. Pages and
uploaded files can be modified either directly via the VCS's command-line tools
or through the wiki's web interface. Pandoc is used for markup processing, so
pages may be written in (extended) markdown, reStructuredText, LaTeX, HTML, or
literate Haskell, and exported in ten different formats, including LaTeX,
ConTeXt, DocBook, RTF, OpenOffice ODT, and MediaWiki markup.

Notable features include

* plugins: dynamically loaded page transformations written in Haskell (see
"Network.Gitit.Interface")

* conversion of TeX math to MathML for display in web browsers

* syntax highlighting of source code files and code snippets

* Atom feeds (site-wide and per-page)

* a library, "Network.Gitit", that makes it simple to include a gitit wiki in
any happstack application

You can see a running demo at <http://gitit.net>.

For usage information: 'gitit --help'.

Fedora Account System Username: tc01

I had to package a git snapshot, instead of the last release, and so I had to modify the standard cabal-rpm template slightly. This was in order to build with pandoc 2.x.

I opted to write and install a systemd service file. This required creating a "gitit" user (to run the wiki as) and installing a home directory (/var/lib/gitit) for the wiki information to be created in, when running gitit with the service file.

Comment 1 Robert-André Mauchin 🐧 2018-09-27 19:05:46 UTC
 - License should be "GPLv2" not GPL+

https://hackage.haskell.org/package/gitit-0.12.2.1/src/LICENSE

 - There's plenty of license here:

TANGOICONS: CC-BY-SA
YUI-LICENSE: BSD
BLUETRIP-LICENSE: (MIT or GPLv2)

Install these license files with %license and add the corresponding licenses to the License: field

Comment 2 Robert-André Mauchin 🐧 2018-09-27 19:09:28 UTC
Also Add MIT for jQuery.

Comment 3 Robert-André Mauchin 🐧 2018-09-27 19:12:04 UTC
 - Own this directory:

[!]: Package requires other packages for directories it uses.
     Note: No known owner of /etc/gitit



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

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


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


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "GPL (v2 or later)", "Unknown or generated", "GNU General
     Public License", "BSD 3-clause "New" or "Revised" License", "*No
     copyright* Public domain", "Creative Commons Attribution-ShareAlike
     Public License (v2.5)", "Expat License", "GPL (v2 or later) (with
     incorrect FSF address)". 90 files have unknown license. Detailed
     output of licensecheck in /home/bob/packaging/review/gitit/review-
     gitit/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /etc/gitit
[x]: %build honors applicable compiler flags or justifies otherwise.
[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.
[x]: 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.
[x]: Package contains systemd file(s) if in need.
[-]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[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]: %config files are marked noreplace or the reason is justified.
[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 use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[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]: Static libraries in -static or -devel subpackage, providing -devel if
     present.
     Note: Package has .a files: gitit-devel.
[x]: systemd_post is invoked in %post, systemd_preun in %preun, and
     systemd_postun in %postun for Systemd service files.
     Note: Systemd service file(s) in gitit
[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).
[?]: 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.
[x]: Scriptlets must be sane, if 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]: Fully versioned dependency in subpackages if applicable.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 2887680 bytes in /usr/share
[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: gitit-0.12.2.1-1.20180816gitee9927f.fc30.x86_64.rpm
          gitit-devel-0.12.2.1-1.20180816gitee9927f.fc30.x86_64.rpm
          gitit-0.12.2.1-1.20180816gitee9927f.fc30.src.rpm
gitit.x86_64: W: spelling-error Summary(en_US) happstack -> haystack
gitit.x86_64: W: spelling-error Summary(en_US) darcs -> cards, arcs, dares
gitit.x86_64: W: spelling-error Summary(en_US) pandoc -> pan doc, pan-doc, Pandora
gitit.x86_64: W: spelling-error %description -l en_US darcs -> cards, arcs, dares
gitit.x86_64: W: spelling-error %description -l en_US filestore -> file store, file-store, files tore
gitit.x86_64: W: spelling-error %description -l en_US Pandoc -> Pan doc, Pan-doc, Pandora
gitit.x86_64: W: spelling-error %description -l en_US reStructuredText -> restructured Text, restructured-text, restructure
gitit.x86_64: W: spelling-error %description -l en_US happstack -> haystack
gitit.x86_64: E: non-executable-script /usr/share/gitit-0.12.2.1/data/post-update 644 /bin/sh 
gitit.x86_64: W: non-standard-uid /var/lib/gitit gitit
gitit.x86_64: W: non-standard-gid /var/lib/gitit gitit
gitit.x86_64: W: non-standard-uid /var/lib/gitit/wiki gitit
gitit.x86_64: W: non-standard-gid /var/lib/gitit/wiki gitit
gitit.x86_64: W: no-manual-page-for-binary expireGititCache
gitit.x86_64: W: no-manual-page-for-binary gitit
gitit.src: W: spelling-error Summary(en_US) happstack -> haystack
gitit.src: W: spelling-error Summary(en_US) darcs -> cards, arcs, dares
gitit.src: W: spelling-error Summary(en_US) pandoc -> pan doc, pan-doc, Pandora
gitit.src: W: spelling-error %description -l en_US darcs -> cards, arcs, dares
gitit.src: W: spelling-error %description -l en_US filestore -> file store, file-store, files tore
gitit.src: W: spelling-error %description -l en_US Pandoc -> Pan doc, Pan-doc, Pandora
gitit.src: W: spelling-error %description -l en_US reStructuredText -> restructured Text, restructured-text, restructure
gitit.src: W: spelling-error %description -l en_US happstack -> haystack
gitit.src:151: W: macro-in-comment %{buildroot}
gitit.src:151: W: macro-in-comment %{_datadir}
gitit.src:151: W: macro-in-comment %{pkgver}
gitit.src:197: W: macro-in-comment %pre
gitit.src:198: W: macro-in-comment %post)
3 packages and 0 specfiles checked; 1 errors, 27 warnings.

Comment 4 Ben Rosser 2018-09-28 15:54:38 UTC
Thanks for reviewing this (and the Haskell dependencies)!

Spec URL: https://tc01.fedorapeople.org/haskell/gitit/gitit.spec
SRPM URL: https://tc01.fedorapeople.org/haskell/gitit/gitit-0.12.2.1-2.20180816gitee9927f.fc27.src.rpm

I've modified the LICENSE tag accordingly:

# Main package is under GPLv2
# jquery: MIT
# Bluetrip: MIT or GPLv2
# YUI: BSD
# TANGOICONS: CC-BY-SA
License:        GPLv2 and MIT and BSD and CC-BY-SA and (MIT or GPLv2)

I've added BLUETRIP-LICENSE, TANGOICONS, and YUI-LICENSE to the %license macro in %files:

%license LICENSE BLUETRIP-LICENSE YUI-LICENSE TANGOICONS

I've also added bundled provides for the javascript and CSS assets:

# Bundled provides for some JS and CSS.
Provides:       bundled(js-jquery) = 1.2.6
Provides:       bundled(js-jquery-ui) = 1.6rc2
Provides:       bundled(js-jquery-hotkeys) = 0.7.9%config(noreplace) %{_sysconfdir}/gitit
Provides:       bundled(js-yui2) = 2.7.0

# I couldn't find any version information for bluetrip or tango icons.
Provides:       bundled(bluetrip)
Provides:       bundled(tango-icon-theme)

Finally, I've changed the file list to mark all of /etc/gitit as config(noreplace):

%config(noreplace) %{_sysconfdir}/gitit

Comment 5 Robert-André Mauchin 🐧 2018-09-28 16:03:37 UTC
All ok, package approved.

Comment 6 Gwyn Ciesla 2018-09-28 16:16:37 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/gitit

Comment 7 Fedora Update System 2018-11-02 18:46:56 UTC
ghc-hoauth2-1.7.2-1.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-bcf57045bb

Comment 8 Fedora Update System 2018-11-02 20:32:08 UTC
gitit-0.12.2.1-2.20180816gitee9927f.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-fa67fc84bf

Comment 9 Fedora Update System 2018-11-03 00:55:48 UTC
gitit-0.12.2.1-2.20180816gitee9927f.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-fa67fc84bf

Comment 10 Fedora Update System 2018-11-11 04:00:47 UTC
gitit-0.12.2.1-2.20180816gitee9927f.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, 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.