Bug 787713 - Review request: FreeSOLID - A 3D collision detection C++ library
Summary: Review request: FreeSOLID - A 3D collision detection C++ library
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Alec Leamas
QA Contact: Alec Leamas
URL:
Whiteboard:
Depends On:
Blocks: 785371
TreeView+ depends on / blocked
 
Reported: 2012-02-06 15:27 UTC by MartinKG
Modified: 2012-10-18 18:49 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-07-16 18:01:09 UTC
Type: ---
Embargoed:
leamas.alec: fedora-review+


Attachments (Terms of Use)
Patch to cleanup configure.in (1.48 KB, patch)
2012-03-20 10:46 UTC, Ralf Corsepius
no flags Details | Diff
free-sold.pc -> FreeSOLID.pc (1.73 KB, patch)
2012-03-21 12:02 UTC, Alec Leamas
no flags Details | Diff
Move info files from -devel to base package (346 bytes, patch)
2012-03-21 12:03 UTC, Alec Leamas
no flags Details | Diff
Updated patch (1.94 KB, patch)
2012-07-09 04:21 UTC, Alec Leamas
no flags Details | Diff
Patch free-solid-config to use pkg-config (1.15 KB, patch)
2012-07-09 04:24 UTC, Alec Leamas
no flags Details | Diff
Spec file patch (680 bytes, patch)
2012-07-09 04:33 UTC, Alec Leamas
no flags Details | Diff
Updated FreeSOLID-2.1.1-pkgconfig.patch (1.94 KB, patch)
2012-07-09 23:49 UTC, Alec Leamas
no flags Details | Diff
Patch against *-10 (2.19 KB, patch)
2012-07-10 07:29 UTC, Ralf Corsepius
no flags Details | Diff
Don't encode version in library name (513 bytes, patch)
2012-07-10 09:33 UTC, Alec Leamas
no flags Details | Diff
pkgconfig.patch update (1.11 KB, patch)
2012-07-10 11:47 UTC, Alec Leamas
no flags Details | Diff
freesolid.config.patch update (790 bytes, application/octet-stream)
2012-07-10 11:48 UTC, Alec Leamas
no flags Details
Remaining parts of Rallf's patch + my patch in comment #39 - Makefile.am (1.75 KB, patch)
2012-07-10 11:52 UTC, Alec Leamas
no flags Details | Diff
freesolid.config.patch update (right patch!) (790 bytes, patch)
2012-07-10 11:58 UTC, Alec Leamas
no flags Details | Diff
Update pkgconfig-update.patch, the previous lost the .pc and .pc.i n files (2.04 KB, patch)
2012-07-10 18:54 UTC, Alec Leamas
no flags Details | Diff
New update, patch updated (1.67 KB, patch)
2012-07-10 21:15 UTC, Alec Leamas
no flags Details | Diff

Description MartinKG 2012-02-06 15:27:04 UTC
FreeSOLID is a library for collision detection of three-dimensional
objects undergoing rigid motion and deformation. FreeSOLID is designed
to be used in interactive 3D graphics applications.

This is a dependency for speed-dreams. Blokcer for https://bugzilla.redhat.com/show_bug.cgi?id=785371
The simple fact is that the original library doesn't build on Fedora.

SRPM URL:
https://www.disk.dsl.o2online.de/FclyPlh/RPMS/free-solid/free-solid-2.1.1-1.fc16.src.rpm?a=F6rSOfkjiug
Spec URL:
https://www.disk.dsl.o2online.de/FclyPlh/RPMS/free-solid/free-solid.spec?a=VmhxKOVW2J8

rpmlint output:
# rpmlint free-solid-2.1.1-1.fc16.i686.rpm
free-solid.i686: E: incorrect-fsf-address /usr/share/doc/free-solid-2.1.1/COPYING
free-solid.i686: E: incorrect-fsf-address /usr/share/doc/free-solid-2.1.1/COPYING.LIB
1 packages and 0 specfiles checked; 2 errors, 0 warnings.

[root@fc16 i686]# rpmlint -v free-solid-2.1.1-1.fc16.i686.rpm
free-solid.i686: I: checking
free-solid.i686: I: checking-url http://sourceforge.net/projects/freesolid/ (timeout 10 seconds)
free-solid.i686: E: incorrect-fsf-address /usr/share/doc/free-solid-2.1.1/COPYING
free-solid.i686: E: incorrect-fsf-address /usr/share/doc/free-solid-2.1.1/COPYING.LIB
1 packages and 0 specfiles checked; 2 errors, 0 warnings.
[root@fc16 i686]# vim /tmp/free-solid.spec 
[root@fc16 i686]# rpmlint -v free-solid-devel-2.1.1-1.fc16.i686.rpm 
free-solid-devel.i686: I: checking
free-solid-devel.i686: I: checking-url http://sourceforge.net/projects/freesolid/ (timeout 10 seconds)
free-solid-devel.i686: E: zero-length /usr/include/FreeSOLID/MT_Point.h
free-solid-devel.i686: E: info-files-without-install-info-postin /usr/share/info/solid2.info.gz
free-solid-devel.i686: E: info-files-without-install-info-postun /usr/share/info/solid2.info.gz
free-solid-devel.i686: W: no-manual-page-for-binary freesolid-config
1 packages and 0 specfiles checked; 3 errors, 1 warnings.

Bugreport: COPYING and COPYING.LIB have wrong fsf address
https://sourceforge.net/tracker/?func=detail&aid=3484960&group_id=65180&atid=510059

Bugreport: rpmlint's warnings info-file-without-* seems to be bogus
https://sourceforge.net/tracker/?func=detail&aid=3484962&group_id=65180&atid=510059

Bugreport: rpmlint's warning about empty files
https://sourceforge.net/tracker/?func=detail&aid=3484963&group_id=65180&atid=510059

Bugreport: missing manual page
https://sourceforge.net/tracker/?func=detail&aid=3484964&group_id=65180&atid=510059

Comment 1 MartinKG 2012-02-06 18:40:07 UTC
Sorry about the rpmlint warnings on the info-files-without-* it's not an upstream bug, definitely not. it's a bug in rpmlint.
Note: this bug report was wrong.

Comment 2 Volker Fröhlich 2012-02-06 19:07:48 UTC
Contrary to what README, license is noted as LGPLv2+, see licensecheck -r <some_dir>.

I think the devel sub-package has to require pkgconfig, but I can't find that in the rules right now.

The devel package needs %{?_isa}, see http://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package

I suggest to use the name macro in the files section as well, as you're using it in other places.

You might want to include the sample dir as documentation to the devel package.

The build fails for me on F16 x86_64:

...
+ autoreconf -i
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
configure.in:26: required file `../ltmain.sh' not found
autoreconf: automake failed with exit status: 1
error: Bad exit status from /var/tmp/rpm-tmp.40wZ5K (%build)

Comment 3 Volker Fröhlich 2012-02-06 19:15:08 UTC
It is not contrary to README, it also says "GNU __Library___ General Public License" there.

Comment 4 MartinKG 2012-02-07 08:44:48 UTC
Thanks for remarks!

 >Contrary to what README, license is noted as LGPLv2+, see licensecheck -r
 ><some_dir>.
[ see comment #3]
So: we agree that License: GPLv2  is OK?!

 >I think the devel sub-package has to require pkgconfig, but I can't
find that
 >in the rules right now.
You are certainly right.  The .pc file lives in /usr/lib{64}/pkgconfig,
owned by pkgconfig. Fixed.

 >The devel package needs %{?_isa}, see
 >http://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package
Oops... Fixed.

 >I suggest to use the name macro in the files section as well, as
you're using
 >it in other places.
Fixed.

 >You might want to include the sample dir as documentation to the devel
package.
Fixed.

 >The build fails for me on F16 x86_64:
 >...
 >+ autoreconf -i
[cut]
This is strange. Both the old and the new srpm builds (built) on mock,
f15-x86_64 and f16-x86_64. The new also builds on koji, f16.  What's
going on?

Also fixed the source URL, which just was wrong.

New srpm at:
https://www.disk.dsl.o2online.de/FclyPlh/RPMS/free-solid/free-solid-2.1.1-2.fc16.src.rpm?a=ViKFwcxqtho
New rpm spec at:
https://www.disk.dsl.o2online.de/FclyPlh/RPMS/free-solid/free-solid-2.1.1-2.fc16.src.rpm?a=ViKFwcxqtho

Comment 5 Volker Fröhlich 2012-02-07 09:43:25 UTC
No, it certainly is LGPLv2+, please also see comment#3.

I tried to build with rpmbuild. I'll try again later.

Comment 6 MartinKG 2012-02-07 10:40:54 UTC
(In reply to comment #5)
> No, it certainly is LGPLv2+, please also see comment#3.
> 
> I tried to build with rpmbuild. I'll try again later.

Fixed (sorry, missed this completely)
https://www.disk.dsl.o2online.de/FclyPlh/RPMS/free-solid/free-solid.spec?a=VmhxKOVW2J8
https://www.disk.dsl.o2online.de/FclyPlh/RPMS/free-solid/free-solid-2.1.1-3.fc16.src.rpm?a=6haz9_kLXos

Comment 9 Volker Fröhlich 2012-03-11 23:18:47 UTC
Builds in Mock, but doesn't build with rpmbuild on my system.

...
+ autoreconf -i
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
configure.in:26: required file `../ltmain.sh' not found
autoreconf: automake failed with exit status: 1

Comment 10 Alec Leamas 2012-03-18 17:38:33 UTC
Martin: The spec link doesn't work, permission denied.
Volker: Hm... ltmain is part of libtool. As I understand the error message, autoreconf doesn't find libtool's /usr/share/libtool/config/ltmain.sh (?). Have you really libtool installed on your machine?

Comment 11 Volker Fröhlich 2012-03-19 22:10:02 UTC
Yes, libtool is installed, but ac_aux_dir seemingly becomes '../' on my system, while it is './' in the Mock build. I don't know a lot about m4, sadly.

Comment 12 Alec Leamas 2012-03-19 23:02:58 UTC
(In reply to comment #11)
> Yes, libtool is installed, but ac_aux_dir seemingly becomes '../' on my system,
> while it is './' in the Mock build. I don't know a lot about m4, sadly.

Nor do I :(  

I have googled a little for this. It seems that it might happen if the versions of automake/autoconf are "bad". If it's not too complicated, can you compare the automake/autotools/libtool  version on your system with koji's?

Comment 13 Alec Leamas 2012-03-19 23:08:03 UTC
Or... maybe we should just ask Martin to bundle ltmain.sh and all other required files so that configure.sh could be run directly, without invoking autoreconf/automake similar to many (most?) other packages. This is probably the easiest way to handle this?!

Comment 14 Ralf Corsepius 2012-03-20 10:44:28 UTC
(In reply to comment #11)
> Yes, libtool is installed, but ac_aux_dir seemingly becomes '../' on my system,
> while it is './' in the Mock build. I don't know a lot about m4, sadly.

The cause is a combination of this package's configure.in exploiting bugs in the ancient versions of the autotools the original upstream author had used and incompatibilities of this package's configuration with libtool-2.

I am going to attach a patch, which should fix this issue.

Further remarks:

- Upstream *.zip is called FreeSOLID => According to Fedora's package conventions, this package should be called FreeSOLID and not free-solid.

- Similar wrt. the *.pc. I don't see any reason why this addition should be called "free-solid.pc" and not be called FreeSOLID.pc.

- Why is freesolid-config removed?
It's upstream's nomial config tool other packages could be relying upon.

Comment 15 Ralf Corsepius 2012-03-20 10:46:10 UTC
Created attachment 571351 [details]
Patch to cleanup configure.in

Comment 17 Alec Leamas 2012-03-21 12:01:19 UTC
(In reply to comment #14)
> (In reply to comment #11)

> - Similar wrt. the *.pc. I don't see any reason why this addition should be
> called "free-solid.pc" and not be called FreeSOLID.pc.

You are certainly right, enclosing patch.

> - Why is freesolid-config removed?
> It's upstream's nomial config tool other packages could be relying upon.

It's not removed, just placed in the -devel package.

Also enclosing patch which resolves installation problem caused by info package being in -devel package.

Comment 18 Alec Leamas 2012-03-21 12:02:37 UTC
Created attachment 571691 [details]
free-sold.pc -> FreeSOLID.pc

Comment 19 Alec Leamas 2012-03-21 12:03:47 UTC
Created attachment 571692 [details]
Move info files from -devel to base package

Comment 20 Ralf Corsepius 2012-03-21 18:22:33 UTC
(In reply to comment #19)
> Created attachment 571692 [details]
> Move info files from -devel to base package

Why? In general documention should be part of the package the documentation documents. AFAICT, these *info are devel-docs, so they should be part of the devel package and not be part of the base package.

Comment 21 MartinKG 2012-03-21 19:16:10 UTC
if the info file is part of the devel package, then solid2.info.gz will not be created, and the followin error message appears:
rpm -ivh FreeSOLID-2.1.1-6.fc16.x86_64.rpm FreeSOLID-devel-2.1.1-6.fc16.x86_64.rpm
Preparing...                ########################################### [100%]
   1:FreeSOLID              ########################################### [ 50%]
install-info: No such file or directory for /usr/share/info/solid2.info
   2:FreeSOLID-devel        ########################################### [100%]

Comment 22 Alec Leamas 2012-03-21 19:26:55 UTC
That's because the install snippets are in the base package, and the info file in the devel package. You must let the snippets apply to the devel package, something like

%post devel

instead of 

%post

Can't make a patch, permission denied on the spec link again (would it be possible to use another hosting service?)

Comment 23 MartinKG 2012-03-21 19:41:56 UTC
(In reply to comment #20)
> (In reply to comment #19)
> > Created attachment 571692 [details]
> > Move info files from -devel to base package
> 
> Why? In general documention should be part of the package the documentation
> documents. AFAICT, these *info are devel-docs, so they should be part of the
> devel package and not be part of the base package.


You are right Ralf it's fixed in new spec file.

NEW spec + srpm:
https://www.disk.dsl.o2online.de/FclyPlh/RPMS/FreeSOLID/FreeSOLID.spec?a=7voZgnHrT7c
https://www.disk.dsl.o2online.de/FclyPlh/RPMS/FreeSOLID/FreeSOLID-2.1.1-6.fc16.src.rpm?a=V2Q_hGK4wVs

Comment 28 Ralf Corsepius 2012-05-22 12:06:36 UTC
Another finding:

/usr/bin/freesolid-config (Part of *-devel) contains hard-coded paths to %{_libdir}.

This prevents parallel installation of *-devel.i386 and *-devel.x86_64 and means this package is not multilib-ready.

A common work-around to this kind of issues is to rewrite such *-config scripts as wrappers to pkg-config.

A brute-force, last resort would be not to ship the *-config script.

Comment 29 Alec Leamas 2012-06-12 12:18:32 UTC
Hi Ralf!

Martin has asked me for help on this, and I'm trying to the best of my limited abilities.

Don't really understand your concern here, probably my fault. But still:
  - f-s-devel.i386 and f-s-devel.x86_64 can't be installed in parallel, since they contain a lot of conflicts: the complete /usr/share/doc... things as well as the headers under /usr/include. And also /usr/bin/freesolid-config.
  - OTOH, freesolid-config is generated from freesolid-config.in and does indeed report the correct /usr/lib64 include dir on on a 64-bit system.

So, your conclusion is still true: f-s-devel.i386 and f-s-devel.x86_64 can't be installed in parallel. But isn't this the case for any -devel package including e. g., headers?

Don't really know what to do. One solution might be to split -devel into two packages: one containing the arch-specific stuff (the *.pc file and *.so link) and a noarch package with the rest. This way, a parallell installation should work fully.

It's just that I havn't seen anything like this. Don't we just live with the fact that -devel packages conflicts when installed for different architectures?

Or?

Comment 30 MartinKG 2012-06-22 21:40:28 UTC
%changelog
* Fri Jun 22 2012  Martin Gansser <linux4martin> 2.1.1-8.fc17
- added configure patch
- rebuild for Fedora 17

Spec URL:
http://dev.speed-dreams.org/Martin/FreeSOLID.spec

SRPM URL:
http://dev.speed-dreams.org/Martin/FreeSOLID-2.1.1-8.fc17.src.rpm

Comment 31 Ralf Corsepius 2012-07-06 10:07:09 UTC
MUSTFIX:

* I regret, the multilib issue wrt. freesolid-config persists.

* Another issue: The contents of /usr/share/doc/FreeSOLID-devel-2.1.1/sample
needs to be furtherly cleaned up. It contains temporary files from the build directory, which are unusable, also break multilib and must not be shipped.

I'd recommend to remove all files but the actual sources (*.cpp's).

Comment 32 Alec Leamas 2012-07-09 04:21:42 UTC
Created attachment 596979 [details]
Updated patch

Original patch contains a .pc file with a "Requires: qhull" which breaks; qhull-devel doesn't have a .pc-file. Removing this is no problem, rpm takes care of  the dependency.

Comment 33 Alec Leamas 2012-07-09 04:24:59 UTC
Created attachment 596980 [details]
Patch free-solid-config to use pkg-config

Convert freesolid-config to use pkg-config according to Ralf's proposal.

Comment 34 Alec Leamas 2012-07-09 04:33:25 UTC
Created attachment 596981 [details]
Spec file patch

Proposed patch to handle comment #31, including the new patch in comment #33

Comment 35 MartinKG 2012-07-09 15:50:25 UTC
thanks Alec for the patches.

%changelog
* Mon Jul 9 2012  Martin Gansser <linux4martin> 2.1.1-9.fc17
- added multilib wrapper script free-solid-config to use pkg-config
- updated FreeSOLID pkgconfig patch
- updated spec file

Spec URL:
http://dev.speed-dreams.org/Martin/FreeSOLID.spec

SRPM URL:
http://dev.speed-dreams.org/Martin/FreeSOLID-2.1.1-9.fc17.src.rpm

Comment 36 Alec Leamas 2012-07-09 16:32:43 UTC
Package Review (informal, see next comment)
===========================================
Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated

==== C/C++ ====
[x]: MUST Header files in -devel subpackage, if present.
[x]: MUST Package does not contain any libtool archives (.la)
[x]: MUST Package does not contain kernel modules.
[x]: MUST Package contains no static executables.
[x]: MUST Rpath absent or only used for internal libs.
[x]: MUST Development (unversioned) .so files in -devel subpackage, if
     present.

==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[x]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[!]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[-]: MUST Package contains desktop file if it is a GUI application.
[x]: MUST Development files must be in a -devel package
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Fully versioned dependency in subpackages, if present.
[ ]: MUST Package complies to the Packaging Guidelines
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[-]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: MUST 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]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "LGPL (v2 or later)", "*No copyright* UNKNOWN", "UNKNOWN", "GPL (v2 or
     later)", "LGPL (v2 or later) (with incorrect FSF address)", "*No
     copyright* GENERATED FILE" For detailed output of licensecheck see file:
     /home/leamas/FedoraReview/src/787713-FreeSOLID/licensecheck.txt
[x]: MUST License file installed when any subpackage combination is installed.
[x]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Package is not relocatable.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[-]: SHOULD 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]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[?]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[x]: SHOULD The placement of pkgconfig(.pc) files are correct.
[x]: SHOULD Scriptlets must be sane, if used.
[x]: SHOULD SourceX / PatchY prefixed with %{name}.
[x]: SHOULD SourceX is a working URL.
[-]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[?]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[-]: SHOULD %check is present and all tests pass.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues:
 - Changelog vers only OK on F17. Drop the .f17 suffix in changelog
   version (2.1.1-9.fc17 ->  2.1.1-9) to make it work for all builds.
 - Inform upstream about the outdated COPYING file with bad FSF address.
 - Inform upstream about the empty file MT_Point.h, but keep it until
   you get a message what to do with it.
 - Since this is the only usecase, try to build a recent speed-dreams
   version (which uses system FreeSOLID if available) to check that it
   builds OK. Seemingly, it does on Ubuntu


Rpmlint
-------
Checking: FreeSOLID-2.1.1-9.fc15.x86_64.rpm
          FreeSOLID-2.1.1-9.fc15.src.rpm
          FreeSOLID-debuginfo-2.1.1-9.fc15.x86_64.rpm
          FreeSOLID-devel-2.1.1-9.fc15.x86_64.rpm
FreeSOLID.x86_64: W: incoherent-version-in-changelog 2.1.1-9.fc17 ['2.1.1-9.fc15', '2.1.1-9']
FreeSOLID.x86_64: E: incorrect-fsf-address /usr/share/doc/FreeSOLID-2.1.1/COPYING
FreeSOLID.x86_64: E: incorrect-fsf-address /usr/share/doc/FreeSOLID-2.1.1/COPYING.LIB
FreeSOLID-devel.x86_64: E: zero-length /usr/include/FreeSOLID/MT_Point.h
FreeSOLID-devel.x86_64: W: no-manual-page-for-binary freesolid-config
4 packages and 0 specfiles checked; 3 errors, 2 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint FreeSOLID-debuginfo
FreeSOLID-debuginfo.x86_64: I: enchant-dictionary-not-found en_US
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
# echo 'rpmlint-done:'

Requires
--------
FreeSOLID-2.1.1-9.fc15.x86_64.rpm (rpmlib, GLIBC filtered):
    
    /sbin/ldconfig  
    info  
    libc.so.6()(64bit)  
    libgcc_s.so.1()(64bit)  
    libgcc_s.so.1(GCC_3.0)(64bit)  
    libm.so.6()(64bit)  
    libqhull.so.5()(64bit)  
    libstdc++.so.6()(64bit)  
    libstdc++.so.6(CXXABI_1.3)(64bit)  
    rtld(GNU_HASH)  

FreeSOLID-debuginfo-2.1.1-9.fc15.x86_64.rpm (rpmlib, GLIBC filtered):
    

FreeSOLID-devel-2.1.1-9.fc15.x86_64.rpm (rpmlib, GLIBC filtered):
    
    /bin/sh  
    /usr/bin/pkg-config  
    FreeSOLID(x86-64) = 2.1.1-9.fc15
    libFreeSOLID-2.1.1.so.0()(64bit)  
    pkgconfig  

Provides
--------
FreeSOLID-2.1.1-9.fc15.x86_64.rpm:
    
    FreeSOLID = 2.1.1-9.fc15
    FreeSOLID(x86-64) = 2.1.1-9.fc15
    libFreeSOLID-2.1.1.so.0()(64bit)  

FreeSOLID-debuginfo-2.1.1-9.fc15.x86_64.rpm:
    
    FreeSOLID-debuginfo = 2.1.1-9.fc15
    FreeSOLID-debuginfo(x86-64) = 2.1.1-9.fc15

FreeSOLID-devel-2.1.1-9.fc15.x86_64.rpm:
    
    FreeSOLID-devel = 2.1.1-9.fc15
    FreeSOLID-devel(x86-64) = 2.1.1-9.fc15
    pkgconfig(FreeSOLID) = 2.1.1

MD5-sum check
-------------
http://sourceforge.net/projects/freesolid/files/FreeSOLID/FreeSOLID-2.1.1.zip/FreeSOLID-2.1.1.zip :
  MD5SUM this package     : 835ac39b2fc12a3e18311276f2def5e0
  MD5SUM upstream package : 835ac39b2fc12a3e18311276f2def5e0

Generated by fedora-review 0.2.0 (53cc903) last change: 2012-07-09
Command line :./fedora-review -b 787713
External plugins:

Comment 37 Alec Leamas 2012-07-09 16:38:39 UTC
I see no more than in the review. However, I have obviously not the sharpest eyes here, so I wait with assign/approve to give e. g. Ralf and Volker an opportunity to be heard and/or completing the review.

Comment 38 MartinKG 2012-07-09 18:50:54 UTC
%changelog
* Mon Jul 9 2012  Martin Gansser <linux4martin> 2.1.1-10.fc17
- updated fsf-fix patch

Spec URL:
http://dev.speed-dreams.org/Martin/FreeSOLID.spec

SRPM URL:
http://dev.speed-dreams.org/Martin/FreeSOLID-2.1.1-10.fc17.src.rpm

Comment 39 Alec Leamas 2012-07-09 19:13:55 UTC
No, thats not the way. See http://fedoraproject.org/wiki/Common_Rpmlint_issues#incorrect-fsf-address. Revert the changes in the patch, license files can't be edited for legal reasons.

Looking into the bugtracker I find that this is already reported by  you at https://sourceforge.net/tracker/?func=detail&aid=3484960&group_id=65180&atid=510059. With this link we can drop the issue about fsf wrong address in COPYING and COPYING.LIB

As I understand it, all other issues are still open(?). Although not exactly "by the book", I guess the most important thing is to check that speed-dreams actually builds against this library. After all, this is what's it all about ATM. And the other remarks are trivial :)

Comment 40 Alec Leamas 2012-07-09 23:47:03 UTC
The public header files under include are not installed by 'make install' Inline patch to fix:
diff -U2 FreeSOLID.spec.ORG FreeSOLID.spec
--- FreeSOLID.spec.ORG	2012-07-09 23:59:52.482377610 +0200
+++ FreeSOLID.spec	2012-07-10 00:19:05.470474834 +0200
@@ -74,4 +74,6 @@
 %install
 make install DESTDIR=%{buildroot}
+cp -ar include/SOLID include/3D include/config.h \
+    %{buildroot}%{_includedir}/%{name}
 rm $( find %{buildroot} -name '*.la' ) %{buildroot}%{_infodir}/dir
 rm -rf sample/*.o sample/.libs $(find sample -type f -a -executable)

Comment 41 Alec Leamas 2012-07-09 23:49:51 UTC
Created attachment 597182 [details]
Updated FreeSOLID-2.1.1-pkgconfig.patch

Old version provides wrong data (freesolid -> FreeSOLID)

Comment 42 Ralf Corsepius 2012-07-10 05:00:03 UTC
FWIW: I was about to send patches, right when Alec's patches arrived.
Now, I need to sort out this situation out.

First of all, Alec's findings match with mine (Broken spelling, no qhull pkg-config, missing headers, pkg-config wrapper), but I am having difficulties with some details of changes/proposals:

(In reply to comment #40)
> The public header files under include are not installed by 'make install'
> Inline patch to fix:
> diff -U2 FreeSOLID.spec.ORG FreeSOLID.spec
> --- FreeSOLID.spec.ORG	2012-07-09 23:59:52.482377610 +0200
> +++ FreeSOLID.spec	2012-07-10 00:19:05.470474834 +0200
> @@ -74,4 +74,6 @@
>  %install
>  make install DESTDIR=%{buildroot}
> +cp -ar include/SOLID include/3D include/config.h \
> +    %{buildroot}%{_includedir}/%{name}

config.h is an internal autoheader, which must not be installed.
All other headers must be installed, otherwise the package doesn't work.

I have a Makefile.am patch pending, but first have to rebase my local version with Martin's latest version 

(In reply to comment #33)
> Created attachment 596980 [details]
> Patch free-solid-config to use pkg-config
> 
> Convert freesolid-config to use pkg-config according to Ralf's proposal.

I do not understand the first part of the patch (The "On Fedora, changes to prefix and exec-prefix are silently ignored" chunk).
AFAIS, there is no behavioral change to the original freesolid-config, which would mean this change would be superflous.


(In reply to comment #41)
> Created attachment 597182 [details]
> Updated FreeSOLID-2.1.1-pkgconfig.patch
> 
> Old version provides wrong data (freesolid -> FreeSOLID)
Why "Name: Free Solid" and not "Name: FreeSolid"?

Comment 43 Ralf Corsepius 2012-07-10 07:29:26 UTC
Created attachment 597228 [details]
Patch against *-10

This patch is the diff of my local version against Martin's *-10.

It actually consists of 3 patches:

1. Makefile.am:
- Install missing headers.
- Don't ship generated FreeSolid.pc

2. FreeSolid.pc:
- Use -I.../FreeSOLID.
- Pull in qhull

3. freesolid-config:
- Revert changes to usage.
- Fix --version handling (pkg-config --version returns the version of pkg-config, --modversion the version of the module)

Remark: I (Fedora maintainer of qhull) added a qhull.pc to Fedora's qhull, yesterday. RPMS with qhull.pc added have been submitted, but are still stuck in Fedora's package delay queue (For reasons I do not understand, they have not even made it into testing).

Until these packages have landed in Fedora's public repos, FreeSOLID can not assume qhull to provide qhull.pc. Once these have landed, FreeSOLID should be changed to use qhull's qhull.pc.

Comment 44 Alec Leamas 2012-07-10 08:34:05 UTC
Thanks. It's a pleasure to work with you... Noting the Name: is still 'Free Solid'

Another finding: the library name is libFreeSOLID-2.1.1.so.0*, not the expected 
libFreeSOLID.so.0*. The build works, linking against the libFreeSOLID.so symlink from -devel. But what happens then in runtime, without -devel?

Comment 45 Alec Leamas 2012-07-10 08:38:34 UTC
The build is the build of speed-dreams, the upcoming client...

Maybe you could attach qhull.pc in this bug, just to shortcut testing until the update hit the repos?

Comment 46 Alec Leamas 2012-07-10 09:33:38 UTC
Created attachment 597255 [details]
Don't encode version in library name

Set library name to FreeSOLID instead of FreeSOLID-2.1.1. See also http://sources.redhat.com/autobook/autobook/autobook_88.html, look for -release

Comment 47 Alec Leamas 2012-07-10 11:47:24 UTC
Created attachment 597316 [details]
pkgconfig.patch update

Upadted with parts of Ralf's patch

Comment 48 Alec Leamas 2012-07-10 11:48:36 UTC
Created attachment 597317 [details]
freesolid.config.patch update

Updated with parts of Ralf's patch.

Comment 49 Ralf Corsepius 2012-07-10 11:49:08 UTC
(In reply to comment #45)
> The build is the build of speed-dreams, the upcoming client...
> 
> Maybe you could attach qhull.pc in this bug, just to shortcut testing until
> the update hit the repos?

You can retrieve them from Fedora's git rsp. from the src.rpms below
http://koji.fedoraproject.org/koji/packageinfo?packageID=3688

Comment 50 Alec Leamas 2012-07-10 11:52:57 UTC
Created attachment 597318 [details]
Remaining parts of Rallf's patch + my patch in comment #39 - Makefile.am

This is a new patch (patch8?)

The spec file link has expired. Martin: would you possibly consider using another hosting service?

Comment 51 Alec Leamas 2012-07-10 11:58:43 UTC
Created attachment 597320 [details]
freesolid.config.patch update (right patch!)

Updated with parts of Ralf's patch

Comment 52 Alec Leamas 2012-07-10 14:44:33 UTC
Note that when adding patch in comment #50, the changes introduces in comment #40 should be reverted (since make install now install all required headers)

Comment 53 MartinKG 2012-07-10 17:16:11 UTC
should hopefully solve the last things in comment #42 and comment #43

%changelog
* Tue Jul 10 2012  Martin Gansser <linux4martin> 2.1.1-11.fc17
- update added correct freesolid.config.patch
- added Makefile.am patch
- reverted fsf-fix patch

SRPM URL:
http://dev.speed-dreams.org/Martin/FreeSOLID-2.1.1-11/FreeSOLID-2.1.1-11.fc17.src.rpm

SPEC URL:
http://dev.speed-dreams.org/Martin/FreeSOLID-2.1.1-11/FreeSOLID.spec

Comment 54 Alec Leamas 2012-07-10 18:54:51 UTC
Created attachment 597414 [details]
Update pkgconfig-update.patch, the previous lost the .pc  and .pc.i n files

Comment 55 Alec Leamas 2012-07-10 19:00:05 UTC
No, my bad this time. Hopefully, previous comment should say it all. You don't need to bump the release for this one, just update the patch.

Also: fix the changelog version  (drop .fc17) as  described in comment #36 (Issues).

Comment 56 Alec Leamas 2012-07-10 21:15:58 UTC
Created attachment 597429 [details]
New update, patch updated

Comment 57 MartinKG 2012-07-10 21:26:39 UTC
updated FreeSOLID-2.1.1-pkgconfig.patch and droped version in changelog

SRPM URL:
http://dev.speed-dreams.org/Martin/FreeSOLID-2.1.1-11/FreeSOLID-2.1.1-11.fc17.src.rpm

SPEC URL:
http://dev.speed-dreams.org/Martin/FreeSOLID-2.1.1-11/FreeSOLID.spec

Comment 58 Alec Leamas 2012-07-10 21:45:47 UTC
Actually, it also builds with s-d :)

*** Approved

NOTE: The file FreeSOLID.pc.in has a commented line with "Requires: qhull". As soon as the new qhull package (currently in updates-testing) hits the repos this line should activated!

And congrats, this has been quite a wor

Comment 59 MartinKG 2012-07-11 07:47:18 UTC
New Package SCM Request
=======================
Package Name: FreeSOLID
Short Description: FreeSOLID - A 3D collision detection C++ library 
Owners: martinkg
Branches: f16 f17
InitialCC:

Comment 60 Gwyn Ciesla 2012-07-16 15:03:56 UTC
Git done (by process-git-requests).

Comment 61 MartinKG 2012-07-16 18:01:09 UTC
activated line "Requires: qhull" in file FreeSOLID.pc.in

the package built successfully

http://koji.fedoraproject.org/koji/taskinfo?taskID=4244530
http://koji.fedoraproject.org/koji/taskinfo?taskID=4244562
http://koji.fedoraproject.org/koji/taskinfo?taskID=4244574

Comment 62 Fedora Update System 2012-07-16 18:13:33 UTC
FreeSOLID-2.1.1-11.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/FreeSOLID-2.1.1-11.fc16

Comment 63 Fedora Update System 2012-07-16 18:14:42 UTC
FreeSOLID-2.1.1-11.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/FreeSOLID-2.1.1-11.fc17

Comment 64 Ralf Corsepius 2012-07-19 04:49:46 UTC
FYI: The pkg-config enabled qhull-devel packages have just landed in Fedora 16's and Fedora 17's "update" repositories.

Please reflect this change to the FreeSOLID packages.

Comment 65 Fedora Update System 2012-07-20 16:39:38 UTC
FreeSOLID-2.1.1-12.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/FreeSOLID-2.1.1-12.fc16

Comment 66 Fedora Update System 2012-07-20 16:43:30 UTC
FreeSOLID-2.1.1-12.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/FreeSOLID-2.1.1-12.fc17

Comment 67 Fedora Update System 2012-08-05 21:20:27 UTC
FreeSOLID-2.1.1-12.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 68 Fedora Update System 2012-08-05 21:34:37 UTC
FreeSOLID-2.1.1-12.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 69 MartinKG 2012-10-18 18:41:55 UTC
Package Change Request
======================
Package Name: FreeSOLID
New Branches: f18
Owners: martinkg
InitialCC:

Comment 70 Gwyn Ciesla 2012-10-18 18:48:40 UTC
f18 branch exists.


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