Bug 479793 (cpphs)

Summary: Review Request: cpphs - A liberalised re-implementation of cpp, the C pre-processor
Product: [Fedora] Fedora Reporter: Conrad Meyer <cse.cem+redhatbugz>
Component: Package ReviewAssignee: Jens Petersen <petersen>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, haskell-devel, notting, petersen
Target Milestone: ---Flags: petersen: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-01-20 22:56:17 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:
Bug Depends On:    
Bug Blocks: 479796    
Attachments:
Description Flags
cpphs.spec-1.patch
none
cpphs.spec-2.patch none

Description Conrad Meyer 2009-01-13 05:00:13 UTC
Spec URL: http://konradm.fedorapeople.org/fedora/SPECS/cpphs.spec
SRPM URL: http://konradm.fedorapeople.org/fedora/SRPMS/cpphs-1.6-1.fc9.src.rpm
Description:
Cpphs is a re-implementation of the C pre-processor that is both more
compatible with Haskell, and itself written in Haskell so that it can be
distributed with compilers.

This version of the C pre-processor is pretty-much feature-complete and
compatible with traditional (K&R) pre-processors. Additional features
include: a plain-text mode; an option to unlit literate code files; and
an option to turn off macro-expansion.

Koji build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=1048629

Comment 1 Jens Petersen 2009-01-13 08:04:17 UTC
Created attachment 328843 [details]
cpphs.spec-1.patch

Probably my bad for a bug in the current binlib template, but this needs to be a proper binlib package.

Here is a patch.

Comment 2 Conrad Meyer 2009-01-13 18:00:41 UTC
Patch applied, with one minor correction (s/LICENSE/LICENCE/); new URLs:

http://konradm.fedorapeople.org/fedora/SPECS/cpphs.spec
http://konradm.fedorapeople.org/fedora/SRPMS/cpphs-1.6-2.fc9.src.rpm

Comment 3 Jens Petersen 2009-01-14 07:16:26 UTC
Thanks for the update.

For fun I tries to push it through http://gauret.free.fr/fichiers/rpms/fedora/fedora-qa (though that is a little old now apparently).

Here is my review:

 +:ok, =:needs attention, -:needs fixing

MUST Items:
[+] MUST: [rpmlint] packages are clean
[+] MUST: base name is ok and matches spec
[+] MUST: The package must meet the Packaging Guidelines.
[+] MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines.
[+] MUST: The License field in the package spec file must match the actual license.

GPL+ and LGPLv2+

[+] MUST: 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 must be included in %doc.

I think better to move it to ghc-cpphs where it actually applies

[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source, as provided in the spec URL.

8a7565ff3b2d7bdb594af4c10c594951  cpphs-1.6.tar.gz

[+] MUST: The package must successfully compile and build into binary rpms on at least one supported architecture.
[+] MUST: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch.
[+] MUST: All build dependencies must be listed in BuildRequires
[=] MUST: A package must own all directories that it creates.

Hmm, /usr/share/doc/ghc/libraries is owned by ghc-doc but not required by ghc-cpphs - looks like a oversight of the guidelines.

Wondering whether we should subpackage haddock docs for this or do something else.

[+] MUST: A package must not contain any duplicate files in the %files listing.
[+] MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line.
[+] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[+] MUST: Each package must consistently use macros, as described in the macros section of Packaging Guidelines.
[+] MUST: The package contains code
[+] MUST: If a package includes something as %doc, it must not affect the runtime of the application.
[+] MUST: Header files must be in a -devel package.
ghc-cpphs provides -devel for now
[+] MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} 
[+] MUST: Packages must not own files or directories already owned by other packages.
[+] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[+] MUST: All filenames in rpm packages must be valid UTF-8.

SHOULD Items:
[+] SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.

I sent a message to the maintainer asking for the GPL license file to be added in the future.

[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The reviewer should test that the package functions as described.
[+] SHOULD: If scriptlets are used, those scriptlets must be sane.


Once the above file ownership issue is resolved I think I can approve this, but I will attach a small patch.

Comment 4 Jens Petersen 2009-01-14 07:22:41 UTC
Created attachment 328957 [details]
cpphs.spec-2.patch

- simplify summaries
- move lgpl license file to ghc-cpphs
- add html doc

and some trivial cleanup.

Comment 5 Conrad Meyer 2009-01-14 07:29:12 UTC
(In reply to comment #3)
> ...
> I think better to move it to ghc-cpphs where it actually applies

Done. (Or I guess, your patch does this.) Although rpmbuild complains as I told you on IRC.

> ...
> [=] MUST: A package must own all directories that it creates.
> 
> Hmm, /usr/share/doc/ghc/libraries is owned by ghc-doc but not required by
> ghc-cpphs - looks like a oversight of the guidelines.
> 
> Wondering whether we should subpackage haddock docs for this or do something
> else.

Well, at any rate ghc-cpphs must depend on ghc-doc (or ghc-doc if we create a subpackage for the docs).

> ...
> I sent a message to the maintainer asking for the GPL license file to be added
> in the future.

Thanks.

Comment 6 Jens Petersen 2009-01-14 08:10:26 UTC
(In reply to comment #5)
> Done. (Or I guess, your patch does this.) Although rpmbuild complains as I told
> you on IRC.

Strange - builds ok for me on f10 (and f11 mock) anyway.

> > Hmm, /usr/share/doc/ghc/libraries is owned by ghc-doc but not required by
> > ghc-cpphs - looks like a oversight of the guidelines.
> > 
> > Wondering whether we should subpackage haddock docs for this or do something
> > else.
> 
> Well, at any rate ghc-cpphs must depend on ghc-doc (or ghc-doc if we create a
> subpackage for the docs).

Right.  Since ghc-doc is quite big I am leaning towards subpackaging for all libraries' docs generated by haddock.  I guess in this case ghc-cpphs-doc say.

Any other thoughts from the Haskell SIG?

Comment 7 Jens Petersen 2009-01-14 09:38:14 UTC
I updated the templates in the draft haskell-packaging package to handle doc subpackages btw (haven't tested it though yet:).

You could try http://petersen.fedorapeople.org/haskell-packaging/haskell-packaging-0.3-1.fc10.noarch.rpm (though the cabal2spec will conflict with the one in ghc currently).

Comment 9 Jens Petersen 2009-01-20 07:42:34 UTC
Thanks for the update. :)

One last tweak: you can remove this line I think:

 Requires(postun): ghc = %{ghc_version}

it is now taken care of by the doc requires(postun).

With that the package is APPROVED.

Comment 10 Conrad Meyer 2009-01-20 08:00:37 UTC
Ah, OK. Thanks!

New Package CVS Request
=======================
Package Name: cpphs
Short Description: A liberalised re-implementation of cpp, the C pre-processor
Owners: konradm
Branches: F-10 F-9
InitialCC:

Comment 11 Kevin Fenzi 2009-01-20 21:16:35 UTC
cvs done.

Comment 12 Conrad Meyer 2009-01-20 22:54:32 UTC
Built in rawhide, closing.

Comment 13 Jens Petersen 2012-12-10 09:00:50 UTC
Package Change Request
======================
Package Name: cpphs
New Branches: el6
Owners: petersen
InitialCC: haskell-sig

Comment 14 Gwyn Ciesla 2012-12-10 13:22:41 UTC
Git done (by process-git-requests).

Comment 15 Fedora Update System 2012-12-27 20:07:27 UTC
ghc-haskell-src-exts-1.13.3-2.el6, cpphs-1.14-3.el6 has been pushed to the Fedora EPEL 6 stable repository.