Bug 477320

Summary: Review Request: ocaml-p3l - OCaml compiler for parallel programs
Product: [Fedora] Fedora Reporter: Richard W.M. Jones <rjones>
Component: Package ReviewAssignee: Jason Tibbitts <j>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, notting
Target Milestone: ---Flags: j: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 2.03-2.fc10 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-03-18 09:51:58 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 Richard W.M. Jones 2008-12-20 14:21:58 UTC
Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-p3l.spec
SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-p3l-2.03-1.fc11.src.rpm
Description: 
OCamlP3l is a compiler for Caml parallel programs.

The OCamlP3l programming paradigm is skeleton programming. The
skeletons encapsulate basic parallel programming patterns in a well
understood and structured approach. Based on P3L, the Pisa Parallel
Programming Language, OCamlP3l skeleton algebra is embedded in a
full-fledged functional programming language, namely Objective Caml.

The skeleton programming approach used in OCamlP3l allows three
different operational interpretations of the same source program:

* the sequential interpretation which is deterministic, hence easy
  to understand and debug,
* the parallel interpretation using a network of computing nodes
  run in parallel to speed up the computation,
* the graphical interpretation, which is run to obtain a drawing
  of the parallel computing network deployed at run-time by the
  parallel interpretation. 

------------

rpmlint is clean.

The documentation is rather large (7MB), so I tried to "even
things up" by putting the documentation into a -doc subpackage.
However that leaves a rather small -devel package.  Does this matter?

Koji scratch build coming up shortly.

Comment 1 Richard W.M. Jones 2008-12-20 14:24:45 UTC
Koji scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=1012139

Comment 2 Richard W.M. Jones 2008-12-20 14:28:09 UTC
In case you're wondering about the difference between
this package and bug 477313 (ocaml-preludeml), they
are aimed at two different areas.  That package, prelude.ml,
is for parallelizing across multicores on the same system.
This package can parallelize across a cluster of machines,
and also has a more theoretically sound basis in that you
can prove various sequential properties of the program.

Comment 3 Jason Tibbitts 2009-03-11 17:17:52 UTC
This looks fine, save for the duplicated LICENSE and README.Fedora files.  You will need to pick one package for each file to live in.  The packaging guidelines have recently become much clearer on this.

Is it possible (or reasonable) to run the tests in Examples/Tests at build time?

I'm pretty sure that this is a syntax extension, so the .cmo files are needed.

* source files match upstream.  sha256sum:
   495e7231cf4cd17bf75405f5e5b507c0ff353349ec81866b3a851bd335c1eb18  
   ocamlp3l-2.03.tgz
* package meets naming and versioning guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* summary is OK.
* description is OK.
* dist tag is present.
* build root is OK.
* license field matches the actual license.
* license is open source-compatible.
* license text included in package.
* latest version is being packaged.
* BuildRequires are proper.
* %clean is present.
* package builds in mock (rawhide, x86_64).
* package installs properly.
* rpmlint is silent.
* final provides and requires are sane:
  ocaml-p3l-2.03-1.fc11.x86_64.rpm
   ocaml(Basedefs) = 4300eb5891d190ace73a8c30faa55e01
   ocaml(Command_options) = 3425ccf9d1bcf69c98bd6855fbf5d2d9
   ocaml(Commlib) = 73b6bbd27d3ee98dc1d99b753845efcc
   ocaml(Grafp3l) = ef66145601ce1c290f7f3909e656f407
   ocaml(Nodecode) = fcfbff84bc4c1e787e2190d072c60f0e
   ocaml(P3lstream) = 1e0b76796600f19bf3b4a3f7f8f590af
   ocaml(Parp3l) = 0a75d20f69876cdd7c7ac780ddae58e9
   ocaml(Seqp3l) = 5c01c19be0632fc803d831b01649d39f
   ocaml(Server) = 00e0a391fd00a6a4d91543daf344c029
   ocaml(Streams) = a4644f7bad89cbcd7631ec715002a54b
   ocaml(Template) = 1cfa9effbf934bd7300325692f0871b0
   ocaml(Version) = 01540deec20bd5eb701d54711b534ce7
   ocaml-p3l = 2.03-1.fc11
   ocaml-p3l(x86-64) = 2.03-1.fc11
  =
   ocaml(Arg) = b6513be035dc9c8a458c189cd8841700
   ocaml(Array) = 9c9fa5f11e2d6992c427dde4d1168489
   ocaml(Buffer) = 23af67395823b652b807c4ae0b581211
   ocaml(CamlinternalLazy) = ed280fb9736e9200aa47db73c5ff077f
   ocaml(Graphics) = fa6011251a7c1017decb62fd8af77d0d
   ocaml(Hashtbl) = ee2a3220e38a4350c5bc131ce9f3f6ce
   ocaml(Int32) = b2545c419b6b6a173cac4c0a3e7e0277
   ocaml(Int64) = d501d6e89fdce41c79f274fb464995d5
   ocaml(Lazy) = 4c7ed568fa7b5f73a2aa02eeb0e5e12b
   ocaml(List) = a0e2e49d266ff302f8667651a43f71ba
   ocaml(Marshal) = 02be0525cda0ca38ef8d49584e7769d6
   ocaml(Mutex) = 60fb057a4923c01932f593e58ab0bbac
   ocaml(Nativeint) = 7233ce5207a538fea4f0c61ed411ea2c
   ocaml(Obj) = c827f726ce05da709cf7de58fc15e324
   ocaml(Pervasives) = 88cb1505c8bdf9a4dcd2cdf3452732b4
   ocaml(Printexc) = fdf007941aa14d1a26323558012dbf52
   ocaml(Printf) = 807ecd3a1538992580464c03462c9964
   ocaml(Random) = 462fc826fd1ae9df8d15e3cb798cba9d
   ocaml(String) = ecc403546c1c50056801131811c39017
   ocaml(Sys) = 21bf525b2b3f3a46a54b96163adfe387
   ocaml(Thread) = da0ce921a4a489fa87637cc4648cf5e3
   ocaml(Unix) = 0596a58544f8cd88fed5bf5432a53d43
   ocaml(runtime) = 3.11.0

  ocaml-p3l-devel-2.03-1.fc11.x86_64.rpm
   ocaml-p3l-devel = 2.03-1.fc11
   ocaml-p3l-devel(x86-64) = 2.03-1.fc11
  =
   ocaml-p3l = 2.03-1.fc11

  ocaml-p3l-doc-2.03-1.fc11.x86_64.rpm
   ocaml-p3l-doc = 2.03-1.fc11
   ocaml-p3l-doc(x86-64) = 2.03-1.fc11
  =
   ocaml-p3l = 2.03-1.fc11

? %check is not present, but there seem to be some tests.
* owns the directories it creates.
* doesn't own any directories it shouldn't.
X a few duplicates in %files.
* file permissions are appropriate.
* code, not content.
* large docs are in a separate -doc package.
* %docs are not necessary for the proper functioning of the package.
* .cma, .cmi, .so, .so.owner, META files in the main package.
* .a, .cmxa, .cmx and .mli files are in the -devel subpackage.
* .o and .ml files not included (.cmo fiels are OK as this is a syntax 
   extension)

Comment 4 Richard W.M. Jones 2009-03-16 14:09:07 UTC
According to the README the only test that we can rely on
working is Examples/DomainDecomposition.  This does compile,
but I couldn't exactly work out how to run it.  It looks like
you need a cluster of machines :-(

My updated package removes the duplicated files.

Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-p3l.spec
SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-p3l-2.03-2.fc11.src.rpm

* Mon Mar 16 2009 Richard W.M. Jones <rjones> - 2.03-2
- Don't duplicate the LICENSE and README.Fedora files.

Comment 5 Jason Tibbitts 2009-03-17 00:42:36 UTC
Looks good, thanks.

APPROVED

Comment 6 Richard W.M. Jones 2009-03-17 10:19:38 UTC
New Package CVS Request
=======================
Package Name: ocaml-p3l
Short Description: OCaml compiler for parallel programs
Owners: rjones
Branches: F-10
InitialCC:

Comment 7 Kevin Fenzi 2009-03-18 03:41:56 UTC
cvs done.

Comment 8 Fedora Update System 2009-03-18 09:50:34 UTC
ocaml-p3l-2.03-2.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/ocaml-p3l-2.03-2.fc10

Comment 9 Fedora Update System 2009-03-18 19:12:16 UTC
ocaml-p3l-2.03-2.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.