Bug 1065610 - Review Request: mandelbulber - Advanced 3D fractal generator
Summary: Review Request: mandelbulber - Advanced 3D fractal generator
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: David King
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-02-15 06:26 UTC by Christopher Meng
Modified: 2014-06-24 23:24 UTC (History)
4 users (show)

Fixed In Version: mandelbulber-1.21-2.fc19
Clone Of:
Environment:
Last Closed: 2014-06-24 23:21:18 UTC
Type: ---
Embargoed:
amigadave: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Christopher Meng 2014-02-15 06:26:15 UTC
Spec URL: http://cicku.me/mandelbulber.spec
SRPM URL: http://cicku.me/mandelbulber-1.21-1.fc21.src.rpm
Description: Mandelbulber is an experimental application that helps to make rendering 3D Mandelbrot fractals much more accessible. A few of the supported 3D fractals: Mandelbulb, Mandelbox, BulbBox, JuliaBulb, Menger Sponge, Quaternion, 
Trigonometric, Hypercomplex, and Iterated Function Systems (IFS). All of these
can be combined into infinite variations with the ability to hybridize 
different formulas together. 

** FEATURES **
* GUI created in the GTK+ 2 environment.
* Multi-core rendering.
* 3D Navigator with tools to see how close the camera is to the fractal 
surface.
* Complex 3D shading: hard shadows, 3 modes of ambient occlusion, depth of 
field, reflections, fog, glow, primitive objects, and water.
* Lights can be manually or randomly placed. Volumetric lighting available.
* Camera animation: Keyframe and mouse controlled flight.
* Keyframe animation of all parameters.
* Camera lenses: three-point projection, fisheye, and equirectangular 
projection.
* Distance estimation algorithm to reduce render times and artifacts of ray 
marching.
* Low memory mode to render images larger than 16,000 x 16,000 pixels.
* OpenCL support.
Fedora Account System Username: cicku

Comment 1 David King 2014-03-21 09:10:24 UTC
Will look at this today (swap with bug 1077810).

Comment 2 David King 2014-03-21 09:26:55 UTC
I cannot seem to fetch the spec nor SRPM:

ERROR: 'Error [Errno socket error] [Errno 111] Connection refused downloading http://cicku.me/mandelbulber-1.21-1.fc21.src.rpm'

Can you check it?

Comment 3 Christopher Meng 2014-03-21 09:59:37 UTC
(In reply to David King from comment #2)
> I cannot seem to fetch the spec nor SRPM:
> 
> ERROR: 'Error [Errno socket error] [Errno 111] Connection refused
> downloading http://cicku.me/mandelbulber-1.21-1.fc21.src.rpm'
> 
> Can you check it?

Oh, I nearly forgot that my website is down for maintenance, please try later from the URL.

SRPM(1 week only): http://www.tempfiles.net/download/201403/341006/mandelbulber-1.html

Comment 4 David King 2014-03-21 13:17:34 UTC
Functionally fine, just the Boost license problem to fix. The other "issues" are all optional.

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

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable


Issues:
=======
- update-desktop-database is invoked in %post and %postun if package contains
  desktop file(s) with a MimeType: entry.
  Note: desktop file(s) with MimeType entry in mandelbulber
  See: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#desktop-
  database

Bogus, as the MimeType entry is empty. Upstream should be informed so that the line can be removed.

- BSL (Boost) license

src/clew.cpp lists:
//  Distributed under the Boost Software License, Version 1.0.
//  (See accompanying file license.txt)

license.txt should be included, as the Boost license requires that. :-/ Upstream should be informed (License field is fine)

- examples in /usr/share

The .c files (examplesOCLformulas) probably do not need to be installed at all, but their presence currently throws up an rpmlint warning. The other examples could be split into a noarch subpackage, but that is just a suggestion.

- rpmlint spelling errors

Bogus, ignore.

===== 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:
     "MIT/X11 (BSD like)", "BSL (v1.0)", "Unknown or generated". 48 files have
     unknown license. Detailed output of licensecheck in
     /home/david/checkout/rpms/mandelbulber/licensecheck.txt
[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.
[-]: 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.
[-]: 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.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 71680 bytes in 3 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]: 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 %doc.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[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]: 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 do not use a name that already exist
[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:
[!]: Uses parallel make %{?_smp_mflags} macro.
[!]: 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]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: 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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[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]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[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 1259520 bytes in /usr/share
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).


Rpmlint
-------
Checking: mandelbulber-1.21-1.fc20.x86_64.rpm
          mandelbulber-1.21-1.fc20.src.rpm
mandelbulber.x86_64: W: spelling-error %description -l en_US Mandelbulb -> Mandelbrot
mandelbulber.x86_64: W: spelling-error %description -l en_US Volumetric -> Cliometric
mandelbulber.x86_64: W: spelling-error %description -l en_US Keyframe -> Key frame, Key-frame, Framework
mandelbulber.x86_64: W: spelling-error %description -l en_US fisheye -> fish eye, fish-eye, fishery
mandelbulber.x86_64: W: spelling-error %description -l en_US equirectangular -> rectangular
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example2.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example1.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example3.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example2Init.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example3Init.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example1Init.c
mandelbulber.x86_64: W: no-manual-page-for-binary mandelbulber
mandelbulber.src: W: spelling-error %description -l en_US Mandelbulb -> Mandelbrot
mandelbulber.src: W: spelling-error %description -l en_US Volumetric -> Cliometric
mandelbulber.src: W: spelling-error %description -l en_US Keyframe -> Key frame, Key-frame, Framework
mandelbulber.src: W: spelling-error %description -l en_US fisheye -> fish eye, fish-eye, fishery
mandelbulber.src: W: spelling-error %description -l en_US equirectangular -> rectangular
2 packages and 0 specfiles checked; 0 errors, 17 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint mandelbulber
mandelbulber.x86_64: W: spelling-error %description -l en_US Mandelbulb -> Mandelbrot
mandelbulber.x86_64: W: spelling-error %description -l en_US Volumetric -> Cliometric
mandelbulber.x86_64: W: spelling-error %description -l en_US Keyframe -> Key frame, Key-frame, Framework
mandelbulber.x86_64: W: spelling-error %description -l en_US fisheye -> fish eye, fish-eye, fishery
mandelbulber.x86_64: W: spelling-error %description -l en_US equirectangular -> rectangular
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example2.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example1.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example3.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example2Init.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example3Init.c
mandelbulber.x86_64: W: devel-file-in-non-devel-package /usr/share/mandelbulber/exampleOCLformulas/cl_example1Init.c
mandelbulber.x86_64: W: no-manual-page-for-binary mandelbulber
1 packages and 0 specfiles checked; 0 errors, 12 warnings.
# echo 'rpmlint-done:'



Requires
--------
mandelbulber (rpmlib, GLIBC filtered):
    libatk-1.0.so.0()(64bit)
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libfontconfig.so.1()(64bit)
    libfreetype.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgdk-x11-2.0.so.0()(64bit)
    libgdk_pixbuf-2.0.so.0()(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libgthread-2.0.so.0()(64bit)
    libgtk-x11-2.0.so.0()(64bit)
    libjpeg.so.62()(64bit)
    libjpeg.so.62(LIBJPEG_6.2)(64bit)
    libm.so.6()(64bit)
    libpango-1.0.so.0()(64bit)
    libpangocairo-1.0.so.0()(64bit)
    libpangoft2-1.0.so.0()(64bit)
    libpng16.so.16()(64bit)
    libpng16.so.16(PNG16_0)(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    rtld(GNU_HASH)



Provides
--------
mandelbulber:
    application()
    application(mandelbulber.desktop)
    mandelbulber
    mandelbulber(x86-64)



Source checksums
----------------
http://download.sourceforge.net/project/mandelbulber/mandelbulber1.21-1.orig.tar.gz :
  CHECKSUM(SHA256) this package     : d9d95be4e21311fa2b2b7883a659d2c173940499a7c5f8436aa62cdf543b6eca
  CHECKSUM(SHA256) upstream package : d9d95be4e21311fa2b2b7883a659d2c173940499a7c5f8436aa62cdf543b6eca


Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13
Command line :/usr/bin/fedora-review --rpm-spec --name /home/david/Downloads/mandelbulber-1.21-1.fc21.src.rpm
Buildroot used: fedora-20-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

Comment 5 Christopher Meng 2014-05-05 12:16:19 UTC
Thanks for the review.

1. Mimetype rpmlint warning can be safely ignored.

2. License problem is not a problem actually, it's a typo.

Quoted from upstream reply:

"Hi

I have substituted src/clew.cpp file with the file which contains following header:

//////////////////////////////////////////////////////////////////////////
//  Copyright (c) 2009 Organic Vectory B.V.
//  Written by George van Venrooij
//
//  Distributed under the Boost Software License, Version 1.0.
//    (See accompanying file LICENSE_1_0.txt or copy at
//          http://www.boost.org/LICENSE_1_0.txt)
//////////////////////////////////////////////////////////////////////////

It links now to the license file witch is on boost.org website

Actual source package is here: https://sourceforge.net/projects/mandelbulber/files/mandelbulber1.21-1.orig.tar.gz/download

Best regards
   Krzysztof"

Upstream had updated the source file since he received the report from me.

3. I'd like to leave those underneath %_datadir intact.

Comment 6 David King 2014-05-05 14:51:05 UTC
(In reply to Christopher Meng from comment #5)
> 2. License problem is not a problem actually, it's a typo.
> 
> Quoted from upstream reply:
> 
> "Hi
> 
> I have substituted src/clew.cpp file with the file which contains following
> header:
> 
> //////////////////////////////////////////////////////////////////////////
> //  Copyright (c) 2009 Organic Vectory B.V.
> //  Written by George van Venrooij
> //
> //  Distributed under the Boost Software License, Version 1.0.
> //    (See accompanying file LICENSE_1_0.txt or copy at
> //          http://www.boost.org/LICENSE_1_0.txt)
> //////////////////////////////////////////////////////////////////////////
> 
> It links now to the license file witch is on boost.org website
> 
> Actual source package is here:
> https://sourceforge.net/projects/mandelbulber/files/mandelbulber1.21-1.orig.
> tar.gz/download
> 
> Best regards
>    Krzysztof"
> 
> Upstream had updated the source file since he received the report from me.

The Boost license requires that the license text is supplied with the source code (as you can see if you read the license in full, specifically the second paragraph). According to the Fedora licensing guidelines, if such a license is used, the license must either be included in the upstream tarball, or supplied as a separate source file and included in %doc:

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

Directing to a URL for the Boost license is not sufficient. It must be included, and so the upstream change is insufficient.

Comment 7 Christopher Meng 2014-05-19 08:42:04 UTC
Is it OK for packager to add the license?

Comment 8 David King 2014-05-19 09:06:29 UTC
Hi Christopher. Yes, it is absolutely fine for the packager to include the license, if they are sure which license is used. In this case, you know that the license is the Boost license, so including the license text as a separate Source, and including it in the package with %doc, is correct.

Comment 9 Pavel Alexeev 2014-05-19 10:07:29 UTC
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License_Text said: "If the source package does not include the text of the license(s), the packager should contact upstream and encourage them to correct this mistake.". Later: "However, in situations where upstream is unresponsive, unable, or unwilling to provide proper full license text as part of the source code, and the indicated license requires that the full license text be included, Fedora Packagers must either:

Include a copy of what they believe the license text is intended to be, as part of the Fedora package in %doc, in order to remain in compliance."
So, packager may include license separately only if upstream irresponsible or refuse such inclusion request.

Comment 10 Christopher Meng 2014-05-21 03:58:41 UTC
Thank you Pavel and David, I've attached it into the new SPEC/SRPM:

SPEC: http://misc.cicku.me/fedora/mandelbulber.spec
SRPM: http://misc.cicku.me/fedora/mandelbulber-1.21-2.fc21.src.rpm

Comment 11 David King 2014-05-21 07:08:00 UTC
License change looks good to me. Thanks!

Comment 12 Christopher Meng 2014-05-21 08:16:04 UTC
New Package SCM Request
=======================
Package Name: mandelbulber
Short Description: Advanced 3D fractal generator
Upstream URL: http://www.mandelbulber.com/
Owners: cicku
Branches: f19 f20

Comment 13 Gwyn Ciesla 2014-05-21 10:07:14 UTC
Git done (by process-git-requests).

Comment 14 Pavel Alexeev 2014-05-21 11:29:03 UTC
Upstream author refuse request include it in tarball?

Comment 15 Christopher Meng 2014-05-21 11:55:26 UTC
(In reply to Pavel Alexeev (aka Pahan-Hubbitus) from comment #14)
> Upstream author refuse request include it in tarball?

Maybe, since I haven't got any response from him. He is offline/busy now.

Comment 16 Fedora Update System 2014-06-09 07:10:22 UTC
mandelbulber-1.21-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/mandelbulber-1.21-2.fc19

Comment 17 Fedora Update System 2014-06-09 07:10:28 UTC
mandelbulber-1.21-2.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/mandelbulber-1.21-2.fc20

Comment 18 Fedora Update System 2014-06-10 02:51:20 UTC
mandelbulber-1.21-2.fc20 has been pushed to the Fedora 20 testing repository.

Comment 19 Fedora Update System 2014-06-24 23:21:18 UTC
mandelbulber-1.21-2.fc20 has been pushed to the Fedora 20 stable repository.

Comment 20 Fedora Update System 2014-06-24 23:24:24 UTC
mandelbulber-1.21-2.fc19 has been pushed to the Fedora 19 stable repository.


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