Bug 202946

Summary: Review Request: aqsis - 3D Rendering system
Product: [Fedora] Fedora Reporter: Denis Leroy <denis>
Component: Package ReviewAssignee: Chris Weyl <cweyl>
Status: CLOSED DUPLICATE QA Contact: Fedora Package Reviews List <fedora-package-review>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhide   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-12-03 22:39:39 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: 201449    
Attachments:
Description Flags
rpmlint errors from -2 none

Description Denis Leroy 2006-08-17 13:18:58 UTC
Spec URL: http://www.poolshark.org/src/aqsis.spec
SRPM URL: http://www.poolshark.org/src/aqsis-1.0.1-1.src.rpm

Description: 

Aqsis is a high quality, photorealistic, 3D rendering solution. It complies with the Renderman® interface standard defined by Pixar. Aqsis comprises a command line rendering tool, a tool for compiling shaders in the RSL language, a tool for preparing textures for optimal use, and various developer libraries to enable integration with third party tools.

Notes to reviewer:
- The latest stable release is not happy with g++ 4, so the package requires g++ 3.4 and adds some patching to remove CXXFLAGS options that g++ 3.4 doesn't like. Current CVS snapshots are ok with g++4, so this will disappear when 1.1 is released.

Comment 1 Jochen Schmitt 2006-08-17 17:51:25 UTC
I could found compat-gcc-34-c++ on FC-5.

Comment 2 Denis Leroy 2006-08-17 17:58:42 UTC
No, this is targeted at Rawhide and rawhide only. FC-5 needs compat-gcc-32-c++
and patch modifications...


Comment 3 Denis Leroy 2006-08-17 21:40:50 UTC
I forgot to mention in the notes that the main package contains some header
files that rpmlint will complain about. Those are ok, shader code is compiled
during runtime by the rendering engine.

Comment 4 Chris Weyl 2006-08-20 18:44:25 UTC
As the review bug says, this package is intended for rawhide/devel only.

The licensing is interesting.  The spec notes "GPL and LGPL" -- but it's not
package wide (that is, there's a bundled library that's LGPL, whereas the main
program itself is GPL).  Is it worth splitting the library out into its own
package, even if just a subpackage of this one, in order to clarify this at
the package level?  I suppose a relevent question here is: do we expect this
library to be used by other packages?  I'm inclined to defer to the judgement
of the packager.

Unfortunately, my mock build (devel/x86_64) fails:

--------------------------------
/bin/sh ../../libtool --tag=CC --mode=link gcc  -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic   -o
libgif2tif.la -rpath /usr/lib64/aqsis  gif2tif.lo ../common/libcommon.la
gcc -shared  .libs/gif2tif.o -Wl,--whole-archive ../common/.libs/libcommon.a
-Wl,--no-whole-archive  -L/usr/local/lib -ltiff  -m64 -mtune=generic
-Wl,-soname -Wl,libgif2tif.so.0 -o .libs/libgif2tif.so.0.0.0
/usr/bin/ld: ../common/.libs/libcommon.a(pixelsave.o): relocation R_X86_64_32
against `a local symbol' can not be used when making a shared object;
recompile with -fPIC
../common/.libs/libcommon.a(pixelsave.o): could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libgif2tif.la] Error 1
make[2]: Leaving directory `/builddir/build/BUILD/aqsis-1.0.1/plugins/gif2tif'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/builddir/build/BUILD/aqsis-1.0.1/plugins'
make: *** [all-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.16921 (%build)
--------------------------------

This prevents me from completing the formal review...  I can post the
build.log, etc, here if it'll help.


Comment 5 Denis Leroy 2006-08-22 12:32:21 UTC
Yup, x86_64 needs the -fPIC option for the C-compiled modules:

Spec URL: http://www.poolshark.org/src/aqsis.spec
SRPM URL: http://www.poolshark.org/src/aqsis-1.0.1-2.src.rpm

Sure we could split libri2rib into a seperate RPM, but I'm not convinced it's
worth the effort at this point since it doesn't like as though it is usable
outside of aqsis at all.


Comment 6 Chris Weyl 2006-08-28 05:50:19 UTC
(In reply to comment #5)
> Sure we could split libri2rib into a seperate RPM, but I'm not convinced it's
> worth the effort at this point since it doesn't like as though it is usable
> outside of aqsis at all.

Works by me.

Ok, so the package builds under mock for me, but rpmlint complains:

[build@zeus aqsis]$ rpmlint aqsis-1.0.1-2.fc6.x86_64.rpm
W: aqsis incoherent-version-in-changelog 1.0.1-1 1.0.1-2.fc6
W: aqsis objdump-failed objdump:
/tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libbake2tif.so.0.0.0:
File format not recognized
E: aqsis binary-or-shlib-defines-rpath /usr/lib64/aqsis/libdisplay.so.0.0.0
['/usr/lib64']
W: aqsis objdump-failed objdump:
/tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libgif2tif.so.0.0.0:
File format not recognized
W: aqsis objdump-failed objdump:
/tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libjpg2tif.so.0.0.0:
File format not recognized
W: aqsis objdump-failed objdump:
/tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libpcx2tif.so.0.0.0:
File format not recognized
W: aqsis objdump-failed objdump:
/tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libppm2tif.so.0.0.0:
File format not recognized
W: aqsis objdump-failed objdump:
/tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libtga2tif.so.0.0.0:
File format not recognized
W: aqsis objdump-failed objdump:
/tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/libslpp.so.0.0.0: File format
not recognized
E: aqsis shlib-with-non-pic-code /usr/lib64/libslpp.so.0.0.0
W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/bake.h
W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/DPProctext.h
W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/patterns.h
W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/noises.h
 
The headers sound like they should be there (comment #1); the first warning is
an easyfix (needs a changelog entry).  The rpath error needs to be dealt with;
the objdump errors may be related to that I ran rpmlint against them on my fc5
system (anyone know an easy way to install rpmlint in a mock chroot?), but
there's some additional funkiness in build.log:

+ /usr/lib/rpm/find-debuginfo.sh /builddir/build/BUILD/aqsis-1.0.1
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libargparse.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libaqsistypes.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libcodegenvm.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/librib2.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/librib2ri.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/librib2stream.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libslparse.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libshadervm.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libshaderexecenv.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libraytrace.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libslpp.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libri2rib.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libslxargs.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/aqsis/libdisplay.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/aqsis/libgif2tif.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/aqsis/libjpg2tif.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/aqsis/libppm2tif.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/aqsis/libpcx2tif.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/aqsis/libtga2tif.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/aqsis/libbake2tif.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libddmanager.so.0.0.0
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/lib64/libaqsis.so.0.0.0
extracting debug info from /var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/bin/aqsl
extracting debug info from
/var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/bin/aqsltell
extracting debug info from /var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/bin/aqsis
extracting debug info from /var/tmp/aqsis-1.0.1-2.fc6-root-mockbuild/usr/bin/teqser
cpio: aqsis-1.0.1/aqsis/<internal>: No such file or directory
cpio: aqsis-1.0.1/aqsl/<internal>: No such file or directory
cpio: aqsis-1.0.1/aqsltell/<internal>: No such file or directory
cpio: aqsis-1.0.1/display/<internal>: No such file or directory
cpio: aqsis-1.0.1/libaqsistypes/<internal>: No such file or directory
cpio: aqsis-1.0.1/libaqsistypes/posix/<internal>: No such file or directory
cpio: aqsis-1.0.1/libargparse/<internal>: No such file or directory
cpio: aqsis-1.0.1/libcodegenvm/<internal>: No such file or directory
cpio: aqsis-1.0.1/libddmanager/<internal>: No such file or directory
cpio: aqsis-1.0.1/libraytrace/<internal>: No such file or directory
cpio: aqsis-1.0.1/libri2rib/<internal>: No such file or directory
cpio: aqsis-1.0.1/librib2/<internal>: No such file or directory
cpio: aqsis-1.0.1/librib2ri/<internal>: No such file or directory
cpio: aqsis-1.0.1/librib2stream/<internal>: No such file or directory
cpio: aqsis-1.0.1/libshaderexecenv/<internal>: No such file or directory
cpio: aqsis-1.0.1/libshadervm/<internal>: No such file or directory
cpio: aqsis-1.0.1/libslxargs/<internal>: No such file or directory
cpio: aqsis-1.0.1/render/<internal>: No such file or directory
cpio: aqsis-1.0.1/teqser/<internal>: No such file or directory
7653 blocks


Comment 7 Denis Leroy 2006-08-30 12:34:50 UTC
Ok, maybe we should tackel a FC-5 version of this package first for review ? I
can't reproduce those rpmlint warnings, but I build the package with mock under
FC-4. Running rpmlint on rawhide on those packages yields warnings about weakly
linked symbols which I'm not sure quite sure yet what to do about...


Comment 8 Paul Howarth 2006-08-30 17:49:56 UTC
(In reply to comment #7)
> Ok, maybe we should tackel a FC-5 version of this package first for review ? I
> can't reproduce those rpmlint warnings, but I build the package with mock under
> FC-4. Running rpmlint on rawhide on those packages yields warnings about weakly
> linked symbols which I'm not sure quite sure yet what to do about...

Usually it means you need to link the binary/library against the library that
the weakly-linked symbols come from.


Comment 9 Paul Howarth 2006-09-13 17:50:47 UTC
(In reply to comment #6)
> Ok, so the package builds under mock for me, but rpmlint complains:
> 
> [build@zeus aqsis]$ rpmlint aqsis-1.0.1-2.fc6.x86_64.rpm
> W: aqsis incoherent-version-in-changelog 1.0.1-1 1.0.1-2.fc6
> W: aqsis objdump-failed objdump:
> /tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libbake2tif.so.0.0.0:
> File format not recognized
> E: aqsis binary-or-shlib-defines-rpath /usr/lib64/aqsis/libdisplay.so.0.0.0
> ['/usr/lib64']
> W: aqsis objdump-failed objdump:
> /tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libgif2tif.so.0.0.0:
> File format not recognized
> W: aqsis objdump-failed objdump:
> /tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libjpg2tif.so.0.0.0:
> File format not recognized
> W: aqsis objdump-failed objdump:
> /tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libpcx2tif.so.0.0.0:
> File format not recognized
> W: aqsis objdump-failed objdump:
> /tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libppm2tif.so.0.0.0:
> File format not recognized
> W: aqsis objdump-failed objdump:
> /tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/aqsis/libtga2tif.so.0.0.0:
> File format not recognized
> W: aqsis objdump-failed objdump:
> /tmp/aqsis-1.0.1-2.fc6.x86_64.rpm.18847/usr/lib64/libslpp.so.0.0.0: File format
> not recognized
> E: aqsis shlib-with-non-pic-code /usr/lib64/libslpp.so.0.0.0
> W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/bake.h
> W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/DPProctext.h
> W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/patterns.h
> W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/noises.h
>  
> The headers sound like they should be there (comment #1); the first warning is
> an easyfix (needs a changelog entry).  The rpath error needs to be dealt with;
> the objdump errors may be related to that I ran rpmlint against them on my fc5
> system (anyone know an easy way to install rpmlint in a mock chroot?)

Just came across this issue myself. It's possible to do this as follows:

1. Copy the packages you're trying to run rpmlint against into the chroot's root:

  $ cp *.rpm /var/lib/mock/fedora-development-x86_64-core/root/

2. Install rpmlint into the chroot:

  $ /usr/sbin/mock-helper yum --installroot
/var/lib/mock/fedora-development-x86_64-core/root install rpmlint

3. Get a shell in the chroot:

  $ mock -r fedora-devel-x86_64-core.cfg shell

4. Run rpmlint:

  mock-chroot> rpmlint *.rpm

5. Exit from the chroot:

  mock-chroot> exit


Comment 10 Chris Weyl 2006-09-14 04:38:59 UTC
Nifty :) 

mock-chroot> rpmlint *.rpm
W: aqsis incoherent-version-in-changelog 1.0.1-1 1.0.1-2.fc6
E: aqsis binary-or-shlib-defines-rpath /usr/lib64/aqsis/libdisplay.so.0.0.0
['/usr/lib64']
W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/bake.h
W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/DPProctext.h
W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/patterns.h
W: aqsis devel-file-in-non-devel-package /usr/share/aqsis/shaders/noises.h

First one is easy enough, last four are wrong, given the comments above.

The second one seems to be fairly standard for non-fedora libtools; and the wiki
suggests that it's not cause for alarm.

Now, installing the aqsis in the chroot and running rpmlint against it returns
those additional errors....

W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZN5Aqsis9gColBlackE
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZTVN5Aqsis13CqSplineCubicE
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZN5Aqsis11gPowerBasisE
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZN5Aqsis13gHermiteBasisE
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZN5Aqsis16gCatmullRomBasisE
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZN5Aqsis13gBSplineBasisE
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZN5Aqsis12gBezierBasisE
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZNK5Aqsis7CqColor8rgbtohsvEv
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZNK5Aqsis8CqString16TranslateEscapesEv
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZNK5Aqsis7CqColor8XYZtorgbEv
W: aqsis undefined-non-weak-symbol /usr/lib64/libshaderexecenv.so.0.0.0
_ZN5Aqsis8CqMatrixC1EPf
...and on, and on.  For completeness' sake, I'll attach the complete log...

Comment 11 Chris Weyl 2006-09-14 04:40:34 UTC
Created attachment 136231 [details]
rpmlint errors from -2

Comment 12 Denis Leroy 2006-09-14 07:53:36 UTC
Yes, I was able to get access to a x86_64 system and reproduce.

Those are all very tough warnings to get rid off. The undefined-non-weak-symbol
errors are related to circular dependencies. I asked on the list, but got little
insights :

http://www.redhat.com/archives/fedora-devel-list/2006-September/msg00173.html

Essentially this is due to the poor organization of aqsis source code, and has
all since been fixed in CVS. The /usr/lib64 rpath error is caused by fltk-config
(bug 199657). Now none of these warnings/errors are preventing aqsis from
working fine (try run it on ribfiles/vase.rib from the tarball, looks nice).

So the choice seems to be

1) either package the stable 1.0 release and live with the oddities of the build
system, the undefined symbols mean a (very slight) slower launch time.

2) package stable 1.0 with all sorts of patches to move code around and get rid
of the warnings.

3) package a CVS snapshot that has a smoother build but might have all sorts of
other problem, it not being a stable release...

I'll veto point 2 right away :-) Debian does 3. I'm hapy with 1 or 3.



Comment 13 Chris Weyl 2006-09-20 17:26:01 UTC
I'm good with either 1 or 3 as well, and absent any guidelines to the contrary
am more than willing to defer to you on this :)

Comment 14 Denis Leroy 2006-09-21 09:19:41 UTC
Okay, let's go with 1) for now, to finish this review. I'd like aqsis to make it
into FE when FC6 comes out, so that we have the k3d/aqsis pair available. Let me
know if there are still things you want me change.

After the package approval, I'll start working on a new version based on a CVS
snapshot. Ubuntu uses a snapshot from 2005/08/15 (a year old!).

Comment 15 Denis Leroy 2006-12-03 22:39:39 UTC

*** This bug has been marked as a duplicate of 167147 ***

Comment 16 Christoph Wickert 2006-12-09 22:47:15 UTC
Marking as bug #201449