[Bug 767042] Review Request: js-of-ocaml - OCaml to Javascript compiler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.


https://bugzilla.redhat.com/show_bug.cgi?id=767042

--- Comment #3 from Jerry James <loganjerry@xxxxxxxxx> 2011-12-21 15:13:59 EST ---
If you are going to build this package for Fedora only, then there are several
elements of the spec file that are not needed.  These lines:

%global _use_internal_dependency_generator 0
%global __find_requires /usr/lib/rpm/ocaml-find-requires.sh
%global __find_provides /usr/lib/rpm/ocaml-find-provides.sh

are still specified on the wiki even though they haven't been necessary for a
few Fedora releases.  In fact, if you remove these, you'll see Requires on libc
and libm show up that don't show up with these lines in place.  Unfortunately,
a Provides of dlljs_of_ocaml.so() also shows up, but it can be filtered like
this:

%global __provides_exclude_from ^%{_libdir}/ocaml/stublibs/.*\.so$

All current versions of Fedora were released with ocaml 3.12.0, so you can omit
the ">= 3.10.0" on the BuildRequires of ocaml.

Finally, the "rm -rf $RPM_BUILD_ROOT" at the top of %install and the %defattr
in %files can be omitted.

If you are going to build for EPEL, disregard everything above this line.

Legend:
+: OK
-: must be fixed
=: should be fixed (at your discretion)
N: not applicable

MUST:
[-] rpmlint output:
js-of-ocaml.x86_64: W: unstripped-binary-or-object /usr/bin/js_of_ocaml
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/regexp.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/regexp.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/libjs_of_ocaml.a
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/form.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/form.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/js.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/js.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/event_arrows.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/event_arrows.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/dom_events.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/dom_events.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/dom.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/dom.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/xmlHttpRequest.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/xmlHttpRequest.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/runtime.js
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/file.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/file.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/url.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/url.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/firebug.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/firebug.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/CSS.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/CSS.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/dom_html.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/dom_html.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/lwt_js.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/lwt_js.mli
js-of-ocaml.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/ocaml/js_of_ocaml/json.mli
js-of-ocaml.x86_64: E: incorrect-fsf-address
/usr/lib64/ocaml/js_of_ocaml/json.mli
js-of-ocaml.x86_64: W: no-manual-page-for-binary js_of_ocaml
js-of-ocaml.x86_64: W: ocaml-naming-policy-not-applied
/usr/lib64/ocaml/js_of_ocaml/regexp.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/viewer_js.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/wiki/main.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/svg.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/converter.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/main.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/scene_json.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/planet/planet.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/wysiwyg/main.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/viewer_common.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/dot_file.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/dot_lexer.mll
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/dot_lexer.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/wiki/wikicreole.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/scene.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/cubes/cubes.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/viewer.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/scene.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/dot_graph.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/dot_file.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/dot_parser.mly
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/scene_extents.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/dot_render.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/wiki/wiki_syntax.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/viewer.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/viewer_common.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/wiki/wikicreole.mll
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/dot_render.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/scene_json.mli
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/scene_extents.ml
js-of-ocaml-doc.noarch: E: incorrect-fsf-address
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/dot_graph.ml
js-of-ocaml-doc.noarch: W: hidden-file-or-dir
/usr/share/doc/js-of-ocaml-doc-1.0.9/examples/graph_viewer/.depend
2 packages and 1 specfiles checked; 45 errors, 19 warnings.

The unstripped binary is okay.  As you noted, programs containing ocaml
bytecode do not survive being stripped.  However, you also have to worry about
prelink.  You need to add a file to /etc/prelink.conf.d to blacklist the
binary.  See the ocaml-ocamlnet spec file for an example of how to do this.

I assume the devel-file-in-non-devel-package warnings are because those devel
files are needed in the translation process.  Is that right?

Please talk to upstream about fixing the FSF's address.  This is not a blocker,
though.

I'm not sure what to think of the ocaml naming policy warning.  I guess rpmlint
wants this package to be named ocaml-js-of-ocaml?

I doubt the hidden file is needed.  What do you think?
[=] follows package naming guidelines: why did you change the underscores to
hyphens?  Since upstream uses underscores, this package is granted the
exception mentioned in
https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Separators. 
Reverting back to underscores would also let you use %{name} in more places in
the spec file, and also drop the "-n js_of_ocaml-%{version}" from the %setup
invocation.
[+] spec file base name matches package name
[+] package meets the packaging guidelines: but consider adding "-p" to the
"cp" invocations, as per
https://fedoraproject.org/wiki/Packaging:Guidelines#Timestamps.
[+] package uses a Fedora approved license
[+] license field matches the actual license: not quite.  The LICENSE file
mentions exceptions, so the license should be "LGPLv2+ with exceptions".  Also,
some of the examples are GPLv2+ (e.g., examples/graph_viewer/scene.mli), and
one is WTFPL (examples/boulderdash/boulderdash.ml).  I think the -doc
subpackage will need to have a license along the lines of "(LGPLv2+ with
exceptions) and GPLv2+ and WTFPL".
[+] license file is included in %doc
[+] spec file is in American English
[+] spec file is legible
[+] sources match upstream: md5sum is e3ddba862f046859eb0d0456853d195a for both
[+] package builds on at least one primary arch (tried x86_64)
[-] appropriate use of ExcludeArch: this spec file must contain this line:

ExclusiveArch: %{ocaml_arches}

[+] all build requirements in BuildRequires
[N] spec file handles locales properly
[N] ldconfig in %post and %postun
[+] no bundled copies of system libraries
[N] no relocatable packages
[+] package owns all directories that it creates
[+] no files listed twice in %files
[+] proper permissions on files
[+] consistent use of macros
[+] code or permissible content
[+] large documentation in -doc
[+] no runtime dependencies in %doc
[N] header files in -devel
[N] static libraries in -static
[N] .so in -devel: this package has an .so, but it is in the right place
[N] -devel requires main package
[+] package contains no libtool archives
[N] package contains a desktop file, uses desktop-file-install
[+] package does not own files/dirs owned by other packages
[+] all filenames in UTF-8

SHOULD:
[N] query upstream for license text
[N] description and summary contains available translations
[+] package builds in mock: tried fedora-rawhide-i386
[+] package builds on all supported arches: tried i386 and x86_64
[-] package functions as described: only minimal testing
[+] sane scriptlets
[+] subpackages require the main package
[N] placement of pkgconfig files
[+] file dependencies versus package dependencies
[=] package contains man pages for binaries/scripts

-- 
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
package-review mailing list
package-review@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/package-review



[Index of Archives]     [Fedora Legacy]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]