Bug 1211362 - Review Request: wildmagic5 - Wild Magic libraries
Summary: Review Request: wildmagic5 - Wild Magic libraries
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Paulo Andrade
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-04-13 18:23 UTC by Antonio T. (sagitter)
Modified: 2015-05-20 04:55 UTC (History)
2 users (show)

Fixed In Version: wildmagic5-5.13-9.el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-05-08 07:32:04 UTC
Type: ---
Embargoed:
paulo.cesar.pereira.de.andrade: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)
WildMagic warnings from packaging (75.08 KB, text/plain)
2015-04-13 18:25 UTC, Antonio T. (sagitter)
no flags Details

Description Antonio T. (sagitter) 2015-04-13 18:23:09 UTC
Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
SRPM URL: https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-2.fc21.src.rpm

Description: 
A library of source code for computing in the fields of graphics, 
mathematics, physics, and image analysis.

Fedora Account System Username: sagitter

Upstream website: http://www.geometrictools.com

This package is needed to build a new release of OpenMS, already available in Fedora.
There are still two warnings:

unused-direct-shlib-dependency: usual workaround for this warning (https://fedoraproject.org/wiki/Common_Rpmlint_issues?rd=PackageMaintainers/Common_Rpmlint_Issues#unused-direct-shlib-dependency) seems break the code.

(A lot of) undefined-non-weak-symbol: honestly, i don't know yet where they come from.

Comment 1 Antonio T. (sagitter) 2015-04-13 18:25:26 UTC
Created attachment 1014027 [details]
WildMagic warnings from packaging

Comment 2 Paulo Andrade 2015-04-14 00:10:55 UTC
I will review this package.

Comment 3 Paulo Andrade 2015-04-14 00:16:34 UTC
(In reply to Antonio Trande from comment #1)
> Created attachment 1014027 [details]
> WildMagic warnings from packaging

I will look on it while learning about the package.
At first, those are -lpthread and -lGL symbols, so,
likely, *may* need -pthread in C{,XX}FLAGS and -lGL
in LDFLAGS.

Comment 4 Paulo Andrade 2015-04-14 01:05:42 UTC
Please work on building the sample tools, e.g.

$ ls -d GeometricTools/WildMagic5/Sample*/* | wc -l
132

Bonus points for building the sample applications only
with the runtime and devel installed, that is, not
inside the build tree.

Looking at GeometricTools/WildMagic5/SamplePhysics/makeapp.wm5
GeometricTools/WildMagic5/SamplePhysics/makefile.wm5 it
appears to link tests/examples with -lpthread -lGL -lGLU.
I suggest adding -pthread to CXXFLAGS, and -lGL and -lGLU
to the linkage of the libraries.

Comment 5 Antonio T. (sagitter) 2015-04-14 12:35:58 UTC
Hi Paulo.

Although compiler is g++, only CFLAGS (instead of CXXFLAGS) is considered as optimization flag variable.
Even LDFLAGS is set.

Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
SRPM URL: https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-3.fc21.src.rpm

Comment 6 Antonio T. (sagitter) 2015-04-14 14:38:51 UTC
undefined-non-weak-symbol vanish if i set ldflags like you said:

LDFLAGS=" -lGL -lGLU"
export CFLAGS="%{optflags} -pthread -DNDEBUG"

but rpmlint detects unused dependencies 

$ rpmlint wildmagic5 wildmagic5-devel
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Physics.so.5.13 /lib64/libGL.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Physics.so.5.13 /lib64/libGLU.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Physics.so.5.13 /lib64/libWm5Core.so.5
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Mathematics.so.5.13 /lib64/libGL.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Mathematics.so.5.13 /lib64/libGLU.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Core.so.5.13 /lib64/libGL.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Core.so.5.13 /lib64/libGLU.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Core.so.5.13 /lib64/libm.so.6
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Applications.so.5.13 /lib64/libGL.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Applications.so.5.13 /lib64/libGLU.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Applications.so.5.13 /lib64/libWm5Imagics.so.5
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Applications.so.5.13 /lib64/libWm5Physics.so.5
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Imagics.so.5.13 /lib64/libGL.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Imagics.so.5.13 /lib64/libGLU.so.1
wildmagic5.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libWm5Graphics.so.5.13 /lib64/libGLU.so.1
wildmagic5.x86_64: W: no-documentation
wildmagic5-devel.x86_64: W: only-non-binary-in-usr-lib
wildmagic5-devel.x86_64: W: no-documentation
2 packages and 0 specfiles checked; 0 errors, 18 warnings.

$ rpmlint -I unused-direct-shlib-dependency
unused-direct-shlib-dependency:
The binary contains unused direct shared library dependencies.  This may
indicate gratuitously bloated linkage; check that the binary has been linked
with the intended shared libraries only.

$ ldd /usr/lib64/libWm5Physics.so.5.13
	linux-vdso.so.1 =>  (0x00007fffe4bc3000)
	libGL.so.1 => /lib64/libGL.so.1 (0x00007fc618208000)
	libGLU.so.1 => /lib64/libGLU.so.1 (0x00007fc617f97000)
	libWm5Core.so.5 => /lib64/libWm5Core.so.5 (0x00007fc617d86000)
	libWm5Mathematics.so.5 => /lib64/libWm5Mathematics.so.5 (0x00007fc61787e000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fc61756f000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fc617266000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc61704f000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fc616c92000)
	libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fc616a67000)
	libglapi.so.0 => /lib64/libglapi.so.0 (0x00007fc61683d000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fc616618000)
	libXext.so.6 => /lib64/libXext.so.6 (0x00007fc616405000)
	libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007fc616202000)
	libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007fc615ffc000)
	libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007fc615df9000)
	libX11.so.6 => /lib64/libX11.so.6 (0x00007fc615ab6000)
	libxcb-glx.so.0 => /lib64/libxcb-glx.so.0 (0x00007fc61589d000)
	libxcb-dri2.so.0 => /lib64/libxcb-dri2.so.0 (0x00007fc615697000)
	libxcb-dri3.so.0 => /lib64/libxcb-dri3.so.0 (0x00007fc615494000)
	libxcb-present.so.0 => /lib64/libxcb-present.so.0 (0x00007fc615291000)
	libxcb-randr.so.0 => /lib64/libxcb-randr.so.0 (0x00007fc615082000)
	libxcb-xfixes.so.0 => /lib64/libxcb-xfixes.so.0 (0x00007fc614e7a000)
	libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007fc614c70000)
	libxcb-shape.so.0 => /lib64/libxcb-shape.so.0 (0x00007fc614a6b000)
	libxcb-sync.so.1 => /lib64/libxcb-sync.so.1 (0x00007fc614864000)
	libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fc614642000)
	libxshmfence.so.1 => /lib64/libxshmfence.so.1 (0x00007fc61443e000)
	libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007fc614238000)
	libdrm.so.2 => /lib64/libdrm.so.2 (0x00007fc61402b000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc613e0e000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc613c0a000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc618720000)
	libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fc61399c000)
	liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fc613777000)
	libXau.so.6 => /lib64/libXau.so.6 (0x00007fc613572000)

Comment 7 Paulo Andrade 2015-04-14 17:37:15 UTC
From a quick look only libWm5Graphics.so really needs to
be linked to libGL and libGLX. But it could be done as
the code already does, that is to link all samples
explicitly to -lGL -lGLX. BTW, it uses glXGetProcAddressARB
to initialize function pointers, this link may be of interest
http://dri.freedesktop.org/wiki/glXGetProcAddressNeverReturnsNULL/

This rpmlint, based on file name looks suspecting:

wildmagic5-data.noarch: E: zero-length /usr/share/WildMagic/Data/Wmfx/ForceWinZipToInclude.txt

I know it is not an easy task, but I still want to see
the samples running. This will catch problems in the
runtime. It will be even better to have a samples
subpackage, where on could build from sources, using
the installed wildmagic5, wildmagic5-devel, and likely,
sample applications will need wildmagic5-data for
textures, shaders, etc.
I can help with the above, but will need some time to,
get time :), usually weekends, as I have full busy days
lately :(

Comment 8 Antonio T. (sagitter) 2015-04-16 19:13:42 UTC
Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
SRPM URL: https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-4.fc21.src.rpm

- %build section re-arranged
- Set LDFLAGS/CFLAGS separately
- Built samples sub-package

All libraries are compiled according to the upstream order, then Sample applications.

Sample executable files work, not before to set WM5_PATH environment variable to %{_datadir}/WildMagic.

Comment 9 Paulo Andrade 2015-04-17 16:36:11 UTC
I suggest only installing *.ReleaseDynamic, source code will
be in the debuginfo and srpm, and ide project files should not
be installed. Also, instead of having a directory, could remove
it, and in the toplevel create a wrapper setting WM5_PATH.

Somewhat like, untested, creating the shell pattern for:

for bin in WrigglingSnake; do
    mv %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics/${bin}.ReleaseDynamic %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics
    rm -fr %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics/${bin}
    cat > %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics/${bin} <<EOF
#!/bin/sh
export WM5_PATH=%{_datadir}/WildMagic
exec %{_libexecdir}/WildMagic/SamplePhysics/${bin}.ReleaseDynamic
EOF
    chmod +x %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics/${bin}
done

and do it for the different samples installed.

$ find /usr/libexec/WildMagic/ |grep \.ReleaseDynamic$|wc -l
248

Testing all of them are functional (no crashes, no missing files, etc)
is a plus :)

Comment 10 Antonio T. (sagitter) 2015-04-18 16:21:43 UTC
(In reply to Paulo Andrade from comment #9)
> I suggest only installing *.ReleaseDynamic, source code will
> be in the debuginfo and srpm, and ide project files should not
> be installed. Also, instead of having a directory, could remove
> it, and in the toplevel create a wrapper setting WM5_PATH.
> 
> Somewhat like, untested, creating the shell pattern for:
> 
> for bin in WrigglingSnake; do
>     mv
> %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics/${bin}.ReleaseDynamic
> %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics
>     rm -fr %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics/${bin}
>     cat > %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics/${bin} <<EOF
> #!/bin/sh
> export WM5_PATH=%{_datadir}/WildMagic
> exec %{_libexecdir}/WildMagic/SamplePhysics/${bin}.ReleaseDynamic
> EOF
>     chmod +x %{buildroot}%{_libexecdir}/WildMagic/SamplePhysics/${bin}
> done
> 
> and do it for the different samples installed.
> 
> $ find /usr/libexec/WildMagic/ |grep \.ReleaseDynamic$|wc -l
> 248
> 
> Testing all of them are functional (no crashes, no missing files, etc)
> is a plus :)

Everything should be okay.

Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
SRPM URL: https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-5.fc21.src.rpm

Comment 11 Antonio T. (sagitter) 2015-04-18 16:26:22 UTC
Rawhide build: http://koji.fedoraproject.org/koji/taskinfo?taskID=9507215

Comment 12 Paulo Andrade 2015-04-18 19:19:14 UTC
Please extend a bit the suggest script generation
to also pass $@ to the program, in case some of the
tests accept command line parameters, somewhat like:

-exec %{_libexecdir}/WildMagic/SampleGraphics/${bin}.ReleaseDynamic
+exec %{_libexecdir}/WildMagic/SampleGraphics/${bin}.ReleaseDynamic "$@"


-------------------------------
Fix please:
/usr/libexec/WildMagic/SampleGraphics/BlendedAnimations crashes:

open("/usr/share/WildMagic/SampleGraphics/BlendedAnimations/Data/Skins/Skins1.texture.wmtf", O_RDONLY) = -1 ENOENT (No such file or directory)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x24} ---

$ find 1211362-wildmagic5/BUILD/ -name Skins0.texture.wmt\*
1211362-wildmagic5/BUILD/GeometricTools/WildMagic5/SampleGraphics/BlendedAnimations/Data/Skins/Skins0.texture.wmtf

file as not installed.

-------------------------------
Another crash:
open("/usr/share/WildMagic/Data/Im/BlendedTerrain.wmfx", O_RDONLY) = -1 ENOENT (No such file or directory)
open("", O_RDONLY)                      = -1 ENOENT (No such file or directory)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x68} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)

$ find 1211362-wildmagic5/BUILD/ -name BlendedTerrain.wmfx
1211362-wildmagic5/BUILD/GeometricTools/WildMagic5/SampleGraphics/BlendedTerrain/Shaders/BlendedTerrain.wmfx

file not installed.

------------------------------
Yet another crash...
open("/usr/share/WildMagic/Data/Im/SimpleBumpMap.wmfx", O_RDONLY) = -1 ENOENT (No such file or directory)
open("", O_RDONLY)                      = -1 ENOENT (No such file or directory)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x68} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)

$ find 1211362-wildmagic5/BUILD/ -name SimpleBumpMap.wmfx
1211362-wildmagic5/BUILD/GeometricTools/WildMagic5/SampleGraphics/BumpMaps/Shaders/SimpleBumpMap.wmfx



*****
Stopped from first to last example due to almost half of
the tests crashing due to missing data files.

Now from last to first until a problem:
*****

-------------------------------
Good, but optional if you check about below; it
is upstream error:

/usr/libexec/WildMagic/SamplePhysics/SimplePendulum fails
to run due to several missing files, that appear to be
upstream tarball generation error, some of the paths
tested (* means several different names):
...
Data/*/Data/stiff1_appr.im
Data/*/Data/stiff2_true.txt
Data/*/Data/stiff2_appr_h0.05.txt
Data/*/Data/stiff2_appr_h0.10.txt
...

Comment 13 Antonio T. (sagitter) 2015-04-19 11:25:13 UTC
(In reply to Paulo Andrade from comment #12)
> Please extend a bit the suggest script generation
> to also pass $@ to the program, in case some of the
> tests accept command line parameters, somewhat like:
> 
> -exec %{_libexecdir}/WildMagic/SampleGraphics/${bin}.ReleaseDynamic
> +exec %{_libexecdir}/WildMagic/SampleGraphics/${bin}.ReleaseDynamic "$@"
> 
> 
> -------------------------------
> Fix please:
> /usr/libexec/WildMagic/SampleGraphics/BlendedAnimations crashes:
> 
> open("/usr/share/WildMagic/SampleGraphics/BlendedAnimations/Data/Skins/
> Skins1.texture.wmtf", O_RDONLY) = -1 ENOENT (No such file or directory)
> --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x24} ---
> 
> $ find 1211362-wildmagic5/BUILD/ -name Skins0.texture.wmt\*
> 1211362-wildmagic5/BUILD/GeometricTools/WildMagic5/SampleGraphics/
> BlendedAnimations/Data/Skins/Skins0.texture.wmtf
> 
> file as not installed.
> 
> -------------------------------
> Another crash:
> open("/usr/share/WildMagic/Data/Im/BlendedTerrain.wmfx", O_RDONLY) = -1
> ENOENT (No such file or directory)
> open("", O_RDONLY)                      = -1 ENOENT (No such file or
> directory)
> --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x68} ---
> +++ killed by SIGSEGV (core dumped) +++
> Segmentation fault (core dumped)
> 
> $ find 1211362-wildmagic5/BUILD/ -name BlendedTerrain.wmfx
> 1211362-wildmagic5/BUILD/GeometricTools/WildMagic5/SampleGraphics/
> BlendedTerrain/Shaders/BlendedTerrain.wmfx
> 
> file not installed.
> 
> ------------------------------
> Yet another crash...
> open("/usr/share/WildMagic/Data/Im/SimpleBumpMap.wmfx", O_RDONLY) = -1
> ENOENT (No such file or directory)
> open("", O_RDONLY)                      = -1 ENOENT (No such file or
> directory)
> --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x68} ---
> +++ killed by SIGSEGV (core dumped) +++
> Segmentation fault (core dumped)
> 
> $ find 1211362-wildmagic5/BUILD/ -name SimpleBumpMap.wmfx
> 1211362-wildmagic5/BUILD/GeometricTools/WildMagic5/SampleGraphics/BumpMaps/
> Shaders/SimpleBumpMap.wmfx
> 

Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
SRPM URL: https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-6.fc21.src.rpm

> 
> 
> *****
> Stopped from first to last example due to almost half of
> the tests crashing due to missing data files.
> 
> Now from last to first until a problem:
> *****
> 
> -------------------------------
> Good, but optional if you check about below; it
> is upstream error:
> 
> /usr/libexec/WildMagic/SamplePhysics/SimplePendulum fails
> to run due to several missing files, that appear to be
> upstream tarball generation error, some of the paths
> tested (* means several different names):
> ...
> Data/*/Data/stiff1_appr.im
> Data/*/Data/stiff2_true.txt
> Data/*/Data/stiff2_appr_h0.05.txt
> Data/*/Data/stiff2_appr_h0.10.txt
> ...

How did you debugged these crashes ?
I will try to contact someone to upstream.

Comment 14 Paulo Andrade 2015-04-19 15:09:42 UTC
Just strace it :)

If still fail to get enough information, install the debuginfo
packages and run under gdb.

Comment 15 Antonio T. (sagitter) 2015-04-21 17:54:32 UTC
(In reply to Paulo Andrade from comment #12)

> 
> -------------------------------
> Good, but optional if you check about below; it
> is upstream error:
> 
> /usr/libexec/WildMagic/SamplePhysics/SimplePendulum fails
> to run due to several missing files, that appear to be
> upstream tarball generation error, some of the paths
> tested (* means several different names):
> ...
> Data/*/Data/stiff1_appr.im
> Data/*/Data/stiff2_true.txt
> Data/*/Data/stiff2_appr_h0.05.txt
> Data/*/Data/stiff2_appr_h0.10.txt
> ...

Those are output files created by SimplePendulum sample; i've patched their destination directory but executable still fails because of normal user no-write permission in the /usr/share sub-directories. 

Upstream maintainer said to me that's better if samples file are built in the user home directory.

Can we try something in your opinion to bypass this problem?

Comment 16 Paulo Andrade 2015-04-25 20:08:34 UTC
As far as I could check, the samples that create output
files, write them to the current directory. If some sample
uses a prefix to choose the name, it probably should not
be too difficult to patch.

There is a major bug, you did not quote "$@", all scripts
receive "" as argument. In the spec you should write "\$@".

I did a quick:

$ for f in `rpm -ql wildmagic5-samples |grep -v ReleaseDynamic`; do if [ ! -d $f ]; then echo $f; $f; echo $?; fi done  

/usr/libexec/WildMagic/SampleImagics/ImViewer
did not crash, but needs an argument (i.e. "$@")

The ones that crashed:

/usr/libexec/WildMagic/SampleGraphics/Castle
/usr/libexec/WildMagic/SampleGraphics/CubeMaps
/usr/libexec/WildMagic/SampleGraphics/GlossMaps
/usr/libexec/WildMagic/SampleGraphics/MorphControllers
/usr/libexec/WildMagic/SampleGraphics/MorphFaces
/usr/libexec/WildMagic/SampleGraphics/MultipleRenderTargets
/usr/libexec/WildMagic/SampleGraphics/ProjectedTextures
/usr/libexec/WildMagic/SampleGraphics/ShadowMaps
/usr/libexec/WildMagic/SampleGraphics/SkinnedBiped
/usr/libexec/WildMagic/SampleGraphics/Skinning
/usr/libexec/WildMagic/SampleGraphics/SphereMaps
/usr/libexec/WildMagic/SampleGraphics/Terrains
/usr/libexec/WildMagic/SampleGraphics/VolumeFog
/usr/libexec/WildMagic/SampleGraphics/VolumeTextures
/usr/libexec/WildMagic/SampleImagics/GpuGaussianBlur2
/usr/libexec/WildMagic/SampleImagics/GpuGaussianBlur3
/usr/libexec/WildMagic/SampleMathematics/BSplineFitContinuous
/usr/libexec/WildMagic/SampleMathematics/DistancePointEllipseEllipsoid
/usr/libexec/WildMagic/SampleMathematics/GeodesicHeightField
/usr/libexec/WildMagic/SampleMathematics/GeodesicPaths


I stopped at

/usr/libexec/WildMagic/SampleMathematics/MeshEnvelope

because it was stuck after a few minutes.

A few tests appear to do nothing and exit too quickly, others
write output to the current directory, so need to understand
what they do.

Comment 17 Antonio T. (sagitter) 2015-04-26 15:06:04 UTC
Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
SRPM URL: https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-7.fc21.src.rpm

About SamplePhysics/SimplePendulum, quoting upstream maintainer:

>The program generates a text file (explicit.txt) consisting of 2-tuples and an >image file (explicit.im) that shows a plot of those points.  The *.im format is >my own (a simple header plus the data).  The project  GeometricTools/WildMagic5
>/SampleImagics/ImViewer generates an executable that can be used to display the >images.  I created ImViewer.exe and copied it to GeometricTools/WildMagic5
>/SamplePhysics/SimplePendulum/Data.  Then in a console window I executed >"ImViewer explicit.im".  The file explicit.png is a screen capture of the >displayed window.  The file gamephysics.png is from by book draft, showing how >I used that image for the book.

About SampleMathematics/DistancePointEllipseEllipsoid:

it still fails but should be a write permission problem when it writes the output.txt file in /usr/share.

About SampleMathematics/GpuRootFinder:

i don't know why does not work. I'm waiting for upstream reply.

All other samples should work fine.

Comment 18 Antonio T. (sagitter) 2015-04-27 09:40:25 UTC
(In reply to Antonio Trande from comment #17)
> Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
> SRPM URL:
> https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-7.fc21.src.rpm
> 
> 
> About SampleMathematics/GpuRootFinder:
> 
> i don't know why does not work. I'm waiting for upstream reply.
> 

Quoting upstream mail:

>That example uses the GPU to compute the roots of a function f(x) by computing >the function at all pairs of consecutive finite 'float' numbers.  Any pair x0 >and x1 that lead to f(x0)*f(x1) <= 0 form a root-bounding interval.  The output >of the program is a text file that shows how many microseconds the program used >to compute the roots, and it shows the roots (2 in this case).

Comment 19 Paulo Andrade 2015-04-27 21:45:36 UTC
Untested fix for DistancePointEllipseEllipsoid
---8<---
diff -up SampleMathematics/DistancePointEllipseEllipsoid/DistancePointEllipseEllipsoid.cpp.orig SampleMathematics/DistancePointEllipseEllipsoid/DistancePointEllipseEllipsoid.cpp
--- SampleMathematics/DistancePointEllipseEllipsoid/DistancePointEllipseEllipsoid.cpp.orig      2015-04-27 18:23:55.915645820 -0300
+++ SampleMathematics/DistancePointEllipseEllipsoid/DistancePointEllipseEllipsoid.cpp   2015-04-27 18:24:30.936645486 -0300
@@ -718,7 +718,7 @@ void DistancePointEllipseEllipsoid::Hype
 //----------------------------------------------------------------------------
 int DistancePointEllipseEllipsoid::Main (int, char**)
 {
-    std::string output = ThePath + "output.txt";
+    std::string output = "output.txt";
     FILE* outFile = fopen(output.c_str(), "wt");
 
     char filename[256];
---8<---

SampleMathematics/GpuRootFinder eventually finishes for me.

SampleMathematics/MeshEnvelope takes a really long time to
finish, but that is not a problem :)

SampleMathematics/NoniterativeEigensolver as well takes a
long time (like 10+ minutes). This should be due to using
some software fallback; should be faster when using nvidia
drivers or something like that...

Next one to crash is:
$ strace -f /usr/libexec/WildMagic/SampleMathematics/NonlocalBlowup
[...]
open("/usr/share/WildMagic/SampleMathematics/NonlocalBlowup/Data/Grid.wmtf", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/WildMagic/SampleMathematics/NonlocalBlowup/Grid.wmtf", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/WildMagic/Data/Wmfx/Grid.wmtf", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/WildMagic/Data/Wmof/Grid.wmtf", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/WildMagic/Data/Wmtf/Grid.wmtf", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/WildMagic/Data/Wmvf/Grid.wmtf", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/WildMagic/Data/Im/Grid.wmtf", O_RDONLY) = -1 ENOENT (No such file or directory)
open("", O_RDONLY)                      = -1 ENOENT (No such file or directory)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x24} ---


Correct the problems with DistancePointEllipseEllipsoid and
NonlocalBlowup and the package will be good :) and of high
quality!

Comment 20 Antonio T. (sagitter) 2015-04-28 12:14:47 UTC
(In reply to Paulo Andrade from comment #19)
> Untested fix for DistancePointEllipseEllipsoid
> ---8<---
> diff -up
> SampleMathematics/DistancePointEllipseEllipsoid/
> DistancePointEllipseEllipsoid.cpp.orig
> SampleMathematics/DistancePointEllipseEllipsoid/
> DistancePointEllipseEllipsoid.cpp
> ---
> SampleMathematics/DistancePointEllipseEllipsoid/
> DistancePointEllipseEllipsoid.cpp.orig      2015-04-27 18:23:55.915645820
> -0300
> +++
> SampleMathematics/DistancePointEllipseEllipsoid/
> DistancePointEllipseEllipsoid.cpp   2015-04-27 18:24:30.936645486 -0300
> @@ -718,7 +718,7 @@ void DistancePointEllipseEllipsoid::Hype
>  //--------------------------------------------------------------------------
> --
>  int DistancePointEllipseEllipsoid::Main (int, char**)
>  {
> -    std::string output = ThePath + "output.txt";
> +    std::string output = "output.txt";
>      FILE* outFile = fopen(output.c_str(), "wt");
>  
>      char filename[256];
> ---8<---
> 
> SampleMathematics/GpuRootFinder eventually finishes for me.
> 
> SampleMathematics/MeshEnvelope takes a really long time to
> finish, but that is not a problem :)
> 
> SampleMathematics/NoniterativeEigensolver as well takes a
> long time (like 10+ minutes). This should be due to using
> some software fallback; should be faster when using nvidia
> drivers or something like that...

Yes, it depends by video driver (nVidia or Nouveau) that you're using.

> 
> Next one to crash is:
> $ strace -f /usr/libexec/WildMagic/SampleMathematics/NonlocalBlowup
> [...]
> open("/usr/share/WildMagic/SampleMathematics/NonlocalBlowup/Data/Grid.wmtf",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/share/WildMagic/SampleMathematics/NonlocalBlowup/Grid.wmtf",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/share/WildMagic/Data/Wmfx/Grid.wmtf", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> open("/usr/share/WildMagic/Data/Wmof/Grid.wmtf", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> open("/usr/share/WildMagic/Data/Wmtf/Grid.wmtf", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> open("/usr/share/WildMagic/Data/Wmvf/Grid.wmtf", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> open("/usr/share/WildMagic/Data/Im/Grid.wmtf", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> open("", O_RDONLY)                      = -1 ENOENT (No such file or
> directory)
> --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x24} ---
> 
> 
> Correct the problems with DistancePointEllipseEllipsoid and
> NonlocalBlowup and the package will be good :) and of high
> quality!

Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
SRPM URL: https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-8.fc21.src.rpm

Comment 21 Paulo Andrade 2015-04-29 14:16:42 UTC
Before approving the package, I want information on this:

1. Why was this added?
Requires: libtxc_dxtn, elfutils-libelf-devel
to the samples package?
libtxc_dxtn is in rpmfusion, so, it cannot be added to
an official Fedora package. Please remove the
libtxc_dxtn requires, and add a documentation about
it being desirable for better performance. You can spend
some time checking about status of s3tc patent and
open source, but as for as 2+ years ago, it was still
too much uncertain that no distro would use distribute it
in official, free releases. But things may have changed,
and AFAIR, the open source implementations of s3tc were
done in a way that would not "exactly" match the patent
wording...

2. What is the reason to not have %__global_ldflags in
LDFLAGS? Hint, if you do not know, make a new package
adding %__global_ldflags to every place you set LDFLAGS.

Comment 22 Antonio T. (sagitter) 2015-04-29 16:17:49 UTC
(In reply to Paulo Andrade from comment #21)
> Before approving the package, I want information on this:
> 
> 1. Why was this added?
> Requires: libtxc_dxtn, elfutils-libelf-devel
> to the samples package?
> libtxc_dxtn is in rpmfusion, so, it cannot be added to
> an official Fedora package. Please remove the
> libtxc_dxtn requires, and add a documentation about
> it being desirable for better performance. You can spend
> some time checking about status of s3tc patent and
> open source, but as for as 2+ years ago, it was still
> too much uncertain that no distro would use distribute it
> in official, free releases. But things may have changed,
> and AFAIR, the open source implementations of s3tc were
> done in a way that would not "exactly" match the patent
> wording...

It derives from old tests: i thought that those libraries were needed (i have tested successfully all samples without them). 

> 
> 2. What is the reason to not have %__global_ldflags in
> LDFLAGS? Hint, if you do not know, make a new package
> adding %__global_ldflags to every place you set LDFLAGS.

None. I have added them.

Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
SRPM URL: https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-9.fc21.src.rpm

Comment 23 Paulo Andrade 2015-04-29 19:05:25 UTC
The package is approved.

Please only fix the sequences:

##Build sample applications
export LDFLAGS="  "
export CFLAGS="%{optflags} -DNDEBUG"
make CFG=ReleaseDynamic -f makefile.wm5 -C WildMagic5/SampleGraphics %{?_smp_mflags}
export LDFLAGS="  "
export CFLAGS="%{optflags} -DNDEBUG"
make CFG=ReleaseDynamic -f makefile.wm5 -C WildMagic5/SamplePhysics %{?_smp_mflags}
export LDFLAGS="  "
export CFLAGS="%{optflags} -DNDEBUG"
make CFG=ReleaseDynamic -f makefile.wm5 -C WildMagic5/SampleImagics %{?_smp_mflags}
export LDFLAGS="  "
export CFLAGS="%{optflags} -DNDEBUG"
make CFG=ReleaseDynamic -f makefile.wm5 -C WildMagic5/SampleMathematics %{?_smp_mflags}

You only need to export CFLAGS once, since all lines
export the same value.
The LDFLAGS need %__global_ldflags. It may be better to
write as %{__global_ldflags}.

But other than the empty LDFLAGS, these are cosmetic
changes.

Comment 24 Antonio T. (sagitter) 2015-04-29 21:23:21 UTC
(In reply to Paulo Andrade from comment #23)
> The package is approved.
> 
> Please only fix the sequences:
> 
> ##Build sample applications
> export LDFLAGS="  "
> export CFLAGS="%{optflags} -DNDEBUG"
> make CFG=ReleaseDynamic -f makefile.wm5 -C WildMagic5/SampleGraphics
> %{?_smp_mflags}
> export LDFLAGS="  "
> export CFLAGS="%{optflags} -DNDEBUG"
> make CFG=ReleaseDynamic -f makefile.wm5 -C WildMagic5/SamplePhysics
> %{?_smp_mflags}
> export LDFLAGS="  "
> export CFLAGS="%{optflags} -DNDEBUG"
> make CFG=ReleaseDynamic -f makefile.wm5 -C WildMagic5/SampleImagics
> %{?_smp_mflags}
> export LDFLAGS="  "
> export CFLAGS="%{optflags} -DNDEBUG"
> make CFG=ReleaseDynamic -f makefile.wm5 -C WildMagic5/SampleMathematics
> %{?_smp_mflags}
> 
> You only need to export CFLAGS once, since all lines
> export the same value.
> The LDFLAGS need %__global_ldflags. It may be better to
> write as %{__global_ldflags}.
> 
> But other than the empty LDFLAGS, these are cosmetic
> changes.

Thank you Paulo.
I'm keeping the same release number.

Spec URL: https://sagitter.fedorapeople.org/wm5/wildmagic5.spec
SRPM URL: https://sagitter.fedorapeople.org/wm5/wildmagic5-5.13-9.fc21.src.rpm

Comment 25 Antonio T. (sagitter) 2015-04-29 21:50:42 UTC
New Package SCM Request
=======================
Package Name: wildmagic5
Short Description: Wild Magic libraries
Upstream URL: http://www.geometrictools.com/
Owners: sagitter
Branches: f21 f22 el6 epel7

Comment 26 Gwyn Ciesla 2015-04-30 12:18:07 UTC
Git done (by process-git-requests).

Comment 27 Fedora Update System 2015-04-30 14:28:12 UTC
wildmagic5-5.13-9.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/wildmagic5-5.13-9.fc22

Comment 28 Fedora Update System 2015-04-30 14:28:19 UTC
wildmagic5-5.13-9.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/wildmagic5-5.13-9.fc21

Comment 29 Fedora Update System 2015-04-30 14:28:25 UTC
wildmagic5-5.13-9.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/wildmagic5-5.13-9.el6

Comment 30 Fedora Update System 2015-04-30 14:28:33 UTC
wildmagic5-5.13-9.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/wildmagic5-5.13-9.el7

Comment 31 Fedora Update System 2015-04-30 17:12:17 UTC
wildmagic5-5.13-9.el7 has been pushed to the Fedora EPEL 7 testing repository.

Comment 32 Fedora Update System 2015-05-08 07:32:04 UTC
wildmagic5-5.13-9.fc22 has been pushed to the Fedora 22 stable repository.

Comment 33 Fedora Update System 2015-05-12 20:49:17 UTC
wildmagic5-5.13-9.fc21 has been pushed to the Fedora 21 stable repository.

Comment 34 Fedora Update System 2015-05-20 04:50:31 UTC
wildmagic5-5.13-9.el6 has been pushed to the Fedora EPEL 6 stable repository.

Comment 35 Fedora Update System 2015-05-20 04:55:04 UTC
wildmagic5-5.13-9.el7 has been pushed to the Fedora EPEL 7 stable repository.


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