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
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.
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)
It is not contrary to README, it also says "GNU __Library___ General Public License" there.
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
No, it certainly is LGPLv2+, please also see comment#3. I tried to build with rpmbuild. I'll try again later.
(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
rpmlint output: https://www.disk.dsl.o2online.de/FclyPlh/RPMS/free-solid/free-solid-free-solid-output.txt?a=vLgtgGWnNuU
NEW spec + srpm https://www.disk.dsl.o2online.de/FclyPlh/RPMS/free-solid/free-solid.spec?a=jmovCYIgh8A https://www.disk.dsl.o2online.de/FclyPlh/RPMS/free-solid/free-solid-2.1.1-4.fc16.src.rpm?a=fW2OetxTfqo
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
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?
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.
(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?
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?!
(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.
Created attachment 571351 [details] Patch to cleanup configure.in
NEW spec + srpm, package renamed to FreeSolid https://www.disk.dsl.o2online.de/FclyPlh/RPMS/FreeSOLID/FreeSOLID.spec?a=MHazzHUz_4M https://www.disk.dsl.o2online.de/FclyPlh/RPMS/FreeSOLID/FreeSOLID-2.1.1-5.fc16.src.rpm?a=vwx_aob1fTE
(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.
Created attachment 571691 [details] free-sold.pc -> FreeSOLID.pc
Created attachment 571692 [details] Move info files from -devel to base package
(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.
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%]
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?)
(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
NEW spec + srpm: https://www.disk.dsl.o2online.de/FclyPlh/RPMS/FreeSOLID/FreeSOLID-2.1.1-7.fc16.src.rpm?a=B2ymeCypLeE https://www.disk.dsl.o2online.de/FclyPlh/RPMS/FreeSOLID/FreeSOLID.spec?a=3TZNKhk7ihI
Spec URL: https://www.disk.dsl.o2online.de/FclyPlh/RPMS/speed-dreams/rc2_r4687.21/speed-dreams.spec?a=fqTzUFodk4Y SRPM URL: https://www.disk.dsl.o2online.de/FclyPlh/RPMS/speed-dreams/rc2_r4687.21/speed-dreams-2.0.0-0.1.rc2_r4687.21.fc16.src.rpm?a=WGv8MVL1YIE
(In reply to comment #25) > Spec URL: > https://www.disk.dsl.o2online.de/FclyPlh/RPMS/speed-dreams/rc2_r4687.21/speed-dreams.spec?a=fqTzUFodk4Y > > SRPM URL: > https://www.disk.dsl.o2online.de/FclyPlh/RPMS/speed-dreams/rc2_r4687.21/speed-dreams-2.0.0-0.1.rc2_r4687.21.fc16.src.rpm?a=WGv8MVL1YIE speed-dream? Wrong package?
(In reply to comment #26) > (In reply to comment #25) > > Spec URL: > > https://www.disk.dsl.o2online.de/FclyPlh/RPMS/speed-dreams/rc2_r4687.21/speed-dreams.spec?a=fqTzUFodk4Y > > > > SRPM URL: > > https://www.disk.dsl.o2online.de/FclyPlh/RPMS/speed-dreams/rc2_r4687.21/speed-dreams-2.0.0-0.1.rc2_r4687.21.fc16.src.rpm?a=WGv8MVL1YIE > > speed-dream? Wrong package? Well spotted!
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.
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?
%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
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).
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.
Created attachment 596980 [details] Patch free-solid-config to use pkg-config Convert freesolid-config to use pkg-config according to Ralf's proposal.
Created attachment 596981 [details] Spec file patch Proposed patch to handle comment #31, including the new patch in comment #33
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
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:
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.
%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
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 :)
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)
Created attachment 597182 [details] Updated FreeSOLID-2.1.1-pkgconfig.patch Old version provides wrong data (freesolid -> FreeSOLID)
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"?
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.
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?
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?
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
Created attachment 597316 [details] pkgconfig.patch update Upadted with parts of Ralf's patch
Created attachment 597317 [details] freesolid.config.patch update Updated with parts of Ralf's patch.
(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
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?
Created attachment 597320 [details] freesolid.config.patch update (right patch!) Updated with parts of Ralf's patch
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)
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
Created attachment 597414 [details] Update pkgconfig-update.patch, the previous lost the .pc and .pc.i n files
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).
Created attachment 597429 [details] New update, patch updated
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
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
New Package SCM Request ======================= Package Name: FreeSOLID Short Description: FreeSOLID - A 3D collision detection C++ library Owners: martinkg Branches: f16 f17 InitialCC:
Git done (by process-git-requests).
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
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
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
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.
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
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
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.
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.
Package Change Request ====================== Package Name: FreeSOLID New Branches: f18 Owners: martinkg InitialCC:
f18 branch exists.