Bug 478372
Summary: | Review request: Mathgl - Scientific plotting library. | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | D Haley <mycae> |
Component: | Package Review | Assignee: | Susi Lehtola <susi.lehtola> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | low | ||
Version: | 10 | CC: | alex, fedora-package-review, kryzhev, mail, notting, rdieter, susi.lehtola |
Target Milestone: | --- | Keywords: | Reopened |
Target Release: | --- | Flags: | susi.lehtola:
fedora-review+
gwync: fedora-cvs+ |
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | 1.9-8.el5 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2009-11-05 21:26:46 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: | 513744 | ||
Bug Blocks: | 478388 |
Description
D Haley
2008-12-29 03:18:47 UTC
Just a few drive-by review recommendations: 1. drop hard-coded Requires: freeglut hdf5 fltk qt these should all get picked up automatically 2. use BuildRequires: qt4-devel (it's unambiguous which version of qt you're using) OK, a few other areas that NEEDSWORK: 3. static libs are preferably omitted. But if included at all (with justification), must be packaged separately, into something like %{name}-devel-static. .la files should go with the statics libs (omitted, or packaged along with the static libs) 4. %_includedir/ltdl.h conflicts with system libtool-ltdl-devel. Omit from packaging 5. replace %{_includedir}/mgl/*.h with (something like) %{_includedir}/mgl/ so parent dir is owned too. 6. Why does -devel have a separate (and invalid) License: GPL ? SPEC URL: http://dhd.selfip.com/427e/mathgl-2.spec SRPM URL: http://dhd.selfip.com/427e/mathgl-1.8-2.fc10.src.rpm rpmlint output (spec, SRPM and RPM): mathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 exit 1. drop hard-coded Requires: freeglut hdf5 fltk qt these should all get picked up automatically >Done. Might be a stupid lack of understanding on my part, but I do not understand how these can be picked up automatically if the only Requires is gsl. Normally rpmlint warns if you have redundant requires. I.e if A depends on C, and you "Requires: A, C" then rpmlint says that "Requires: C" is not needed. Where is it obtaining the automatic Requires from? 2. use BuildRequires: qt4-devel (it's unambiguous which version of qt you're using) > Done. 3. static libs are preferably omitted. But if included at all (with justification), must be packaged separately, into something like %{name}-devel-static. .la files should go with the statics libs (omitted, or packaged along with the static libs) >configure now has --disable-static --enable-shared passed as a flag. 4. %_includedir/ltdl.h conflicts with system libtool-ltdl-devel. Omit from packaging >I would have found that out if i had tried to install the RPM, wouldn't I? I will add this to my pre-request checks for next time around. >Building libtool-ltdl that accompanies this package has been disabled. 5. replace %{_includedir}/mgl/*.h with (something like) %{_includedir}/mgl/ so parent dir is owned too. > Done. 6. Why does -devel have a separate (and invalid) License: GPL ? >Because I stuffed up :). Removed. Latest koji scratch: http://koji.fedoraproject.org/koji/taskinfo?taskID=1024362 Some comment for me. - Summary without package name would be nice (as UDAV :-) ) - Please preserve the time stamps, use ' make install DESTDIR=%{buildroot} INSTALL="install -p" ' if possible instead of ' make install INSTALL_ROOT=%{buildroot} ' - Use '%defattr(-,root,root,-)' instead of '%defattr(-, root, root)' (In reply to comment #3) > rpmlint output (spec, SRPM and RPM): > mathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 > exit Will the upstream fix this issue? SPEC URL: http://dhd.selfip.com/427e/mathgl-3.spec SRPM URL: http://dhd.selfip.com/427e/mathgl-1.8-3.fc10.src.rpm RPMLint: $ rpmlint ../SRPMS/mathgl-1.8-3.fc10.src.rpm ../RPMS/i386/mathgl-1.8-3.fc10.i386.rpm mathgl.spec mathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 exit 2 packages and 1 specfiles checked; 0 errors, 1 warnings. Koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=1088112 >Summary without package name would be nice (as UDAV :-) ) Done. >Please preserve the time stamps, use ' make install DESTDIR=%{buildroot} INSTALL="install -p" ' if possible instead of ' make install INSTALL_ROOT=%{buildroot} ' mathgl *does* use configure, so this is Done. >Use '%defattr(-,root,root,-)' instead of '%defattr(-, root, root)' Done. >Will the upstream fix this issue? Here is what upstream had to say: --- I understand badness of usage of exit() function. Unfortunately I don't know how user can terminate the program by other way using GLUT window :(. So the only suggestion I have is exclude the module libmgl-glut from the package. The matter is that this is not the part of MathGL core and the same functionality can be reached by other widget classes (FLTK or Qt). --- So yes, if a suitable solution can be found. I haven't looked into it, it may be trivial or it may not -- I have not used glut for generating windows. Without suggestions as to the correct way to modify upstream code, no. 1.8.1 was released at 4 March 2009 - Add GIF animation features via functions StartGIF/NewFrame/EndFrame/CloseGIF. - Add new plot Tens() for tension plot (curve with variable color). - Add ColumnPlot function for making column of plots. - Add AdjustTicks function for automatic ticks adjusting for current axis ranges. - Add image export to GIF files. - Add NumPy import for Python interface. - Improve documentation (add descriptions of new functions; add sections about animation and about utilities). - Add new functions SetRanges(), SetAutoRanges() for setting axis ranges (Python style) and for setting ranges of automatic variables. - Add TickLen parameter for setting length of ticks/subticks - Colorbar now can have arbitrary size and position - Add mgl_set_[xyzc]ttw() functions into C/Fortran interface. - Add error message if string is not closed in MGL script. - Add data export functions from std::vector<T> - Add new tool mgl2gif for exporting to GIF files (including animated GIF) - Add option -Lval for setting locale to val. Option is added to mgl2png, mgl2eps, mgl2cpp, mglview. For example, use "mglview fname -Lru_RU.utf8" for file in UTF-8 encoding. - Extend TriPlot() by adding manual coloring array (like SurfC()). - Extend Dots() by adding transparency for dots. - Improve STFA() by adding smoothed mask at the edges. - Improve tick labels drawing if RotatedText = false. - Add mglGraphAB::LastMousePos - Add argument to show window maximazed - Bug correction in configure script with unsual GSL setup. - Bug correction in configure script with extra Qt options. - Bug correction in subticks if ticks origin is specified. - Bug correction with MGL command 'call'. - Bug with subticks (having the same size as normal ticks). - Improve labels for curved coordinates. I think it would be worth to think about an update. As per UDAV, thanks for the reminder. I will also attend to this package this coming weekend. SPEC URL: http://dhd.selfip.com/427e/mathgl-1.8.1-1.spec SRPM URL: http://dhd.selfip.com/427e/mathgl-1.8.1-1.fc10.src.rpm Koji scratch: http://koji.fedoraproject.org/koji/taskinfo?taskID=1332306 1332306 build (dist-f10, mathgl-1.8.1-1.fc10.src.rpm): open (x86-6.fedora.phx.redhat.com) -> closed 0 free 0 open 5 done 0 failed 1332306 build (dist-f10, mathgl-1.8.1-1.fc10.src.rpm) completed successfully RPMLint: rpmlint mathgl.spec ../SRPMS/mathgl-1.8.1-1.fc10.src.rpm ../RPMS/i386/mathgl-1.8.1-1.fc10.i386.rpm mathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 exit 2 packages and 1 specfiles checked; 0 errors, 1 warnings. With regards to the error, quoting from http://www.opengl.org/resources/libraries/glut/spec3/node90.html "GLUT has no special routine for exiting the program. GLUT programs should use ANSI C's exit routine. If a program needs to perform special operations before quitting the program, use the ANSI C onexit routine to register exit callbacks. GLUT will exit the program unilaterally when fatal errors occur or when the window system requests the program to terminate. For this reason, avoid calling any GLUT routines within an exit callback." Thus this is entirely a glut limitation, and I don't think that we should drop GLUT support for this reason. GLUT is a convenient first foray into OpenGL programming. Changelog: * Fri May 02 2009 <mycae(a!t)yahoo.com> 1.8.1-1 - Update to 1.8.1 - Drop the explicit Require: Requires: gsl http://fedoraproject.org/wiki/Packaging/Guidelines#Explicit_Requires - Keep the time stamps on the converted files with for file in AUTHORS ChangeLog.txt README; do sed 's/\r//' $file > $file.new && \ touch -r $file $file.new && \ mv $file.new $file done - Add space after the last entry in %changelog. - Update to 1.9.0.1, then I'll do the review. SPEC URL: http://dhd.selfip.com/427e/mathgl-1.9-1.spec SRPM URL: http://dhd.selfip.com/427e/mathgl-1.9-1.fc10.src.rpm Rpmlint provides one warning worth mentioning: mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl.so.5.0.0 /usr/lib/libgomp.so.1 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl.so.5.0.0 /usr/lib/libgslcblas.so.0 Using the suggested fix (below) to set libtool to tell the linker to "link as needed" fails. sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool Modifying the GSL_FLAGS before the ./configure to "-lgsl" also causes the build to fail: /usr/lib/libgsl.so.0: undefined reference to `cblas_ztrsv' /usr/lib/libgsl.so.0: undefined reference to `cblas_scasum' /usr/lib/libgsl.so.0: undefined reference to `cblas_izamax' ... Is rpmlint checking this correctly? The functions that mgl needs are the "special functions" of GSL, namely Airy and elliptic integral computation. I think it is safe to ignore this warning. >- Drop the explicit Require: > Requires: gsl Done > - Update to 1.9.0.1, then I'll do the review. The 1.9.0.1 tarball appears to be missing the fonts dir (note that the tarball has halved in size between versions!), and the build fails when make install cannot find these fonts, which is explicitly asked for the makefile. I have however updated to 1.9 which does have the font data, and emailed upstream for advice on what their intent is with respect to this in 1.9.0.1. Did they omit the fonts inadvertently or are they intending to use system fonts? No such discussion is apparent on their site -- according to their news, the .0.1 release is targeted at fixing a win32 specific bug. - Keep the time stamps on the converted files with... Fixed - Add space after the last entry in %changelog. Fixed (In reply to comment #10) > Rpmlint provides one warning worth mentioning: > mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl.so.5.0.0 > /usr/lib/libgomp.so.1 > mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl.so.5.0.0 > /usr/lib/libgslcblas.so.0 > > Using the suggested fix (below) to set libtool to tell the linker to "link as > needed" fails. > > sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool > > Modifying the GSL_FLAGS before the ./configure to "-lgsl" also causes the build > to fail: > /usr/lib/libgsl.so.0: undefined reference to `cblas_ztrsv' > /usr/lib/libgsl.so.0: undefined reference to `cblas_scasum' > /usr/lib/libgsl.so.0: undefined reference to `cblas_izamax' > ... This looks like you are missing -lgslcblas. But including gslcblas causes rpmlint to complain. Normally the build uses gsl-config. $ gsl-config --libs -lgsl -lgslcblas -lm Sorry for the noise: I got a response from upstream. I think it is best to stick with 1.9. >Dear D Haley, > >I don't put font files into v.1.9.0.1 because it is minor release >(mostly for windows users). Just copy font/ folder from v.1.9 or any >previous one. > >All the best, >Alexey (In reply to comment #12) > But including gslcblas causes rpmlint to complain. Normally the build uses > gsl-config. > > $ gsl-config --libs > -lgsl -lgslcblas -lm And how does it complain then? - Why do you use "--disable-ltdl-install"? - You seem to be missing some buildrequirements: * giflib-devel(?) for GIF support * wxGTK-devel for wx support * python-devel for python support * octave-devel for octave support + the corresponding configure options - The package must own %{_datadir}/%{name}/ instead of %{_datadir}/%{name}/fonts/*.vfm The font files don't seem to fall under the fonts policy, so they should be OK as is. https://fedoraproject.org/wiki/Packaging:FontsPolicy - The package has rpath enabled: http://fedoraproject.org/wiki/Packaging/Guidelines#Beware_of_Rpath rpmlint output: mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/mgl2eps ['/usr/lib64'] mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/libmgl-fltk.so.5.0.0 ['/usr/lib64'] mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/libmgl-glut.so.5.0.0 ['/usr/lib64'] mathgl.x86_64: W: shared-lib-calls-exit /usr/lib64/libmgl-glut.so.5.0.0 exit.5 mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/mglview ['/usr/lib64'] mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/mgl2png ['/usr/lib64'] mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/mgl_example ['/usr/lib64'] mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/mgl_glut_example ['/usr/lib64'] mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/mgl_fltk_example ['/usr/lib64'] mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/mgl2svg ['/usr/lib64'] mathgl.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/mgl2cpp ['/usr/lib64'] mathgl-devel.x86_64: W: no-documentation 4 packages and 0 specfiles checked; 10 errors, 2 warnings. Be sure that you have the redhat-rpm-config package installed on your system. ping. I fixed the x86_64 rpath issue, however enabling some of those optional builds causes build errors. This will have to wait until this weekend. SPEC URL: http://dhd.selfip.com/427e/mathgl-1.9-2.spec SRPM URL: http://dhd.selfip.com/427e/mathgl-1.9-2.fc10.src.rpm Koji Builds: F10: F11:http://koji.fedoraproject.org/koji/taskinfo?taskID=1518017 (actually these builds are slightly out of date. I added a zero length file removal.) RPMLint: === $ rpmlint `cat files | sed 's/Wrote: //' | tr '\n' '\ '` mathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 exit mathgl-devel.i386: W: no-documentation 4 packages and 0 specfiles checked; 0 errors, 2 warnings. $ sudo rpm -e mathgl && sudo rpm -i ../RPMS/i386/mathgl-1.9-2.fc10.i386.rpm && rpmlint mathgl [sudo] password for makerpm: mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-qt.so.5.0.0 /lib/libpthread.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl.so.5.0.0 /usr/lib/libgomp.so.1 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl.so.5.0.0 /usr/lib/libgslcblas.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /usr/lib/libwx_gtk2u_richtext-2.8.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /usr/lib/libwx_gtk2u_aui-2.8.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /usr/lib/libwx_gtk2u_xrc-2.8.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /usr/lib/libwx_gtk2u_qa-2.8.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /usr/lib/libwx_gtk2u_html-2.8.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /usr/lib/libwx_gtk2u_adv-2.8.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /usr/lib/libwx_baseu_xml-2.8.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /usr/lib/libwx_baseu_net-2.8.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /usr/lib/libmgl.so.5 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-wx.so.5.0.0 /lib/libm.so.6 mathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 exit 1 packages and 0 specfiles checked; 0 errors, 14 warnings. === *the shlib warnings are caused by pkg-config usage. I'm not particularly concerned with them. linking with --as-needed doesn't work, and causes build errors, so I suggest that this be ignored. *With the octave plugin, I didn't see any precedent here for plugin installation, except for a few mailing list entries. I installed the plugin in a subdir of %{prefix}/libexec/octave and then provided a symlink in a default search path in octave, so that octave can find it by default. *I have excluded arch on x86_64 and ppc64 for f10. This is due to the swig build issue that is in the dep. bug. I suspect (but have not tried) that a swig update will solve this issue, although I concede that swig could be pulling bad code in from elsewhere on the system, and therefore a swig update could potentially not fix the problem. Either way, f11 works fine for all arches, so something is different :-). If a swig update does not work it is possible to patch the makefile to postprocess the swig generated code before compilation, although this is a little messy. Oops. F10 Koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=1518053 Removing rpath: http://fedoraproject.org/wiki/Packaging/Guidelines#Removing_Rpath * you're running autoreconf, so --disable-rpath to configure should work. * the second option has worked always in my case (also works flawlessly in version upgrades and so on): %configure sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool Please use one of these instead of chrpath, which is the very last option. ** Usually we don't fix SMP make (at least when it requires regenerating autotools). Just send the patches upstream, drop Patch1 and its BRs and comment the %{?_smp_mflags} part with a note that it doesn't work in 1.9. ** The package containing the octave plugin must Requires: octave(api) = %{octave_api} drop the octave site stuff #Create a symlink in octave's path, so plugin gets detected by octave mkdir -p $RPM_BUILD_ROOT/%{_prefix}/libexec/octave/site/%{octave_api}/%{octave_type}/ cd $RPM_BUILD_ROOT/%{_prefix}/libexec/octave/site/%{octave_api}/%{octave_type}/ ln -s %{_prefix}/libexec/octave/plugins/%{name}/%{octave_type}- %{octave_api}/%{name}.oct and run the following commands to regenerate the octave package database: %post octave -q -H --no-site-file --eval "pkg('rebuild');" %postun octave -q -H --no-site-file --eval "pkg('rebuild');" ** Drop the definition of octtype as you're not using it, and change the %define's into %global's. http://fedoraproject.org/wiki/Packaging/Guidelines#.25global_preferred_over_.25define ** Put the info files in the main package. ** You might not want to remove the zero-length files as if some of them are missing the program might not work. Best to ask upstream to remove the empty files from the distribution. ** Remove the documentation 'make install' installs in %{_docdir}/%{name} with rm -rf %{_docdir}/%{name} instead just list the necessary files in the %doc of the -doc subpackage. ** You need to regenerate the info database as well: https://fedoraproject.org/wiki/Packaging/ScriptletSnippets#Texinfo SPEC URL: http://dhd.selfip.com/427e/mathgl-1.9-3.spec SRPM URL: http://dhd.selfip.com/427e/mathgl-1.9-3.fc10.src.rpm Koji: F10: Unable to run, dep errors from blocking bug (http://koji.fedoraproject.org/koji/getfile?taskID=1573375&name=root.log) F11: http://koji.fedoraproject.org/koji/taskinfo?taskID=1573383 $cat files Wrote: /home/makerpm/rpmbuild/SRPMS/mathgl-1.9-3.fc10.src.rpm Wrote: /home/makerpm/rpmbuild/RPMS/i386/mathgl-1.9-3.fc10.i386.rpm Wrote: /home/makerpm/rpmbuild/RPMS/i386/mathgl-devel-1.9-3.fc10.i386.rpm Wrote: /home/makerpm/rpmbuild/RPMS/noarch/mathgl-doc-1.9-3.fc10.noarch.rpm Wrote: /home/makerpm/rpmbuild/RPMS/i386/mathgl-debuginfo-1.9-3.fc10.i386.rpm $ rpmlint `cat files | sed 's/Wrote: //' | tr '\n' '\ '` mathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 exit mathgl-devel.i386: W: no-documentation 5 packages and 0 specfiles checked; 0 errors, 2 warnings. > * you're running autoreconf, so --disable-rpath to configure should work. Didn't work, complains its an unknown option. However the libtool hack works after an autoreconf. So this is Done. > Usually we don't fix SMP make (at least when it requires regenerating > autotools). Just send the patches upstream, drop Patch1 and its BRs and comment > the %{?_smp_mflags} part with a note that it doesn't work in 1.9. Not Done. I think we should keep it, especially seeing as we are 'reconfing anyway. I will notify upstream however. Packages with functional SMP builds are a lot easier to maintain, even with an autoreconf. >Drop the definition of octtype as you're not using it, and change the %define's into %global's. >http://fedoraproject.org/wiki/Packaging/Guidelines#.25global_preferred_over_.25define Fixed >and run the following commands to regenerate the octave package database: Fixed. > drop the octave site stuff Not done, as that breaks the oct file finding. This needs to work without user intervention. So you still need something to help octave find mathgl.oct, even with the pkg('rebuild'). A dirty test indicates: *pkg('rebuild') only searches the search paths of octave (this is in the manual as well), *The rebuild is not persistent at finding the oct file between sessions if path changes: So either a symlink or the plugin proper must be in one of these, or we must modify this permanently After rpm installation (w/o symlink): -- [makerpm@spiderbox mathgl-1.9]$ sudo octave -q octave:1> mathgl error: `mathgl' undefined near line 1 column 1 octave:1> addpath('/usr/libexec/octave/plugins/mathgl/i386-redhat-linux-gnu-api-v32/') octave:2> pkg('rebuild') octave:3> mathgl octave:4> quit [makerpm@spiderbox mathgl-1.9]$ sudo octave -q octave:1> mathgl error: `mathgl' undefined near line 1 column 1 octave:1> -- By default: --- octave:1> path Octave's search path contains the following directories: . /usr/libexec/octave/3.0.3/site/oct/i386-redhat-linux-gnu /usr/libexec/octave/site/oct/api-v32/i386-redhat-linux-gnu /usr/libexec/octave/site/oct/i386-redhat-linux-gnu /usr/share/octave/3.0.3/site/m Octave's search path contains the following directories: . /usr/libexec/octave/3.0.3/site/oct/i386-redhat-linux-gnu /usr/libexec/octave/site/oct/api-v32/i386-redhat-linux-gnu /usr/libexec/octave/site/oct/i386-redhat-linux-gnu /usr/share/octave/3.0.3/site/m /usr/share/octave/site/api-v32/m /usr/share/octave/site/m /usr/share/octave/site/m/startup /usr/libexec/octave/3.0.3/oct/i386-redhat-linux-gnu /usr/share/octave/3.0.3/m /usr/share/octave/3.0.3/m/plot /usr/share/octave/3.0.3/m/special-matrix /usr/share/octave/3.0.3/m/finance /usr/share/octave/3.0.3/m/optimization /usr/share/octave/3.0.3/m/quaternion /usr/share/octave/3.0.3/m/testfun /usr/share/octave/3.0.3/m/path /usr/share/octave/3.0.3/m/linear-algebra /usr/share/octave/3.0.3/m/statistics /usr/share/octave/3.0.3/m/statistics/models /usr/share/octave/3.0.3/m/statistics/distributions /usr/share/octave/3.0.3/m/statistics/tests /usr/share/octave/3.0.3/m/statistics/base /usr/share/octave/3.0.3/m/time /usr/share/octave/3.0.3/m/elfun /usr/share/octave/3.0.3/m/deprecated /usr/share/octave/3.0.3/m/control /usr/share/octave/3.0.3/m/control/hinf /usr/share/octave/3.0.3/m/control/obsolete /usr/share/octave/3.0.3/m/control/util /usr/share/octave/3.0.3/m/control/base /usr/share/octave/3.0.3/m/control/system /usr/share/octave/3.0.3/m/pkg /usr/share/octave/3.0.3/m/audio /usr/share/octave/3.0.3/m/geometry /usr/share/octave/3.0.3/m/set /usr/share/octave/3.0.3/m/sparse /usr/share/octave/3.0.3/m/image /usr/share/octave/3.0.3/m/signal /usr/share/octave/3.0.3/m/polynomial /usr/share/octave/3.0.3/m/startup /usr/share/octave/3.0.3/m/miscellaneous /usr/share/octave/3.0.3/m/general /usr/share/octave/3.0.3/m/io /usr/share/octave/3.0.3/m/specfun /usr/share/octave/3.0.3/m/strings --- >Remove the documentation 'make install' installs in %{_docdir}/%{name} with >rm -rf %{_docdir}/%{name} >instead just list the necessary files in the %doc of the -doc subpackage Done. >Put the info files in the main package. Fixed > You need to regenerate the info database as well: > https://fedoraproject.org/wiki/Packaging/ScriptletSnippets#Texinfo Fixed >You might not want to remove the zero-length files as if some of them are >missing the program might not work. Best to ask upstream to remove the empty >files from the distribution. There are exactly 2 files that are zero-length, one is the INDEX file for octave (which is an optional file), and the second is the all.png file, which is being used as a faux target in the makefile, as far as i can tell. I have simply rm'd them instead of using the catchall, so this is Done. (In reply to comment #20) > >and run the following commands to regenerate the octave package database: > Fixed. > > > drop the octave site stuff > Not done, as that breaks the oct file finding. This needs to work without user > intervention. So you still need something to help octave find mathgl.oct, even > with the pkg('rebuild'). > > A dirty test indicates: > *pkg('rebuild') only searches the search paths of octave (this is in the manual > as well), > *The rebuild is not persistent at finding the oct file between sessions if path > changes: > > So either a symlink or the plugin proper must be in one of these, or we must > modify this permanently No, this is a dirty hack. For a good model on how to do it properly, look at Octave Forge, the package containing additional tools for Octave: http://cvs.fedoraproject.org/viewvc/rpms/octave-forge/F-11/octave-forge.spec?view=markup The architecture dependent packages are installed in /usr/libexec/octave/packages/ and noarch packages in /usr/share/octave/packages. ** Use %{!?octave_api:%global octave_api %(octave-config -p API_VERSION || echo 0)} to get the Octave api version, then you can Requires: octave(api) = %{octave_api} (plplot uses this version) Just quickly:
>Requires: octave(api) = %{octave_api}
Is considered to be an error (E) by rpmlint, as macros are not allowed, however I was unable to locate the rationale behind this. I am reticent to do something that RPMlint considers to be an error unless I know why I am doing this.
(In reply to comment #22) > Just quickly: > >Requires: octave(api) = %{octave_api} > Is considered to be an error (E) by rpmlint, as macros are not allowed, however > I was unable to locate the rationale behind this. I am reticent to do something > that RPMlint considers to be an error unless I know why I am doing this. What's the error? I'm not at my build box atm. However I have copied it from http://rpmlint.zarb.org/cgi-bin/trac.cgi/changeset/1370 as noted in the spec. > What's the error? This rpm has a dependency whose version part contains the '%' character. It could be an unexpanded macro, please double check. (In reply to comment #24) > I'm not at my build box atm. However I have copied it from > http://rpmlint.zarb.org/cgi-bin/trac.cgi/changeset/1370 > as noted in the spec. > > > What's the error? > This rpm has a dependency whose version part contains the '%' character. It > could be an unexpanded macro, please double check. Key word: unexpanded macro. If you have defined the macro correctly, it is expanded and you don't get such an error. SPEC URL: http://dhd.selfip.com/427e/mathgl-1.9-4.spec SRPM URL: http://dhd.selfip.com/427e/mathgl-1.9-4.fc10.src.rpm Koji Builds: F10:http://koji.fedoraproject.org/koji/taskinfo?taskID=1606818 F11:http://koji.fedoraproject.org/koji/taskinfo?taskID=1606824 RPMLint: $ cat files Wrote: /home/makerpm/rpmbuild/SRPMS/mathgl-1.9-4.fc10.src.rpm Wrote: /home/makerpm/rpmbuild/RPMS/i386/mathgl-1.9-4.fc10.i386.rpm Wrote: /home/makerpm/rpmbuild/RPMS/i386/mathgl-devel-1.9-4.fc10.i386.rpm Wrote: /home/makerpm/rpmbuild/RPMS/noarch/mathgl-doc-1.9-4.fc10.noarch.rpm Wrote: /home/makerpm/rpmbuild/RPMS/i386/mathgl-debuginfo-1.9-4.fc10.i386.rpm $ rpmlint `cat files | sed 's/Wrote: //' | tr '\n' '\ '` mathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 exit mathgl-devel.i386: W: no-documentation 5 packages and 0 specfiles checked; 0 errors, 2 warnings. $ sudo rpm -i ../RPMS/i386/mathgl-1.9-4.fc10.i386.rpm [sudo] password for makerpm: rpmlint mathgl skipping line skipping line skipping line $ rpmlint mathgl mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl-qt.so.5.0.0 /lib/libpthread.so.0 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl.so.5.0.0 /usr/lib/libgomp.so.1 mathgl.i386: W: unused-direct-shlib-dependency /usr/lib/libmgl.so.5.0.0 /usr/lib/libgslcblas.so.0 mathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 exit 1 packages and 0 specfiles checked; 0 errors, 4 warnings. These unused-direct-shlibs are simply -config extras, which I believe can be ignored. >For a good model on how to do it properly, look at Octave Forge, the package >containing additional tools for Octave: Octave packaging is done. pkg.m is not fun to work with :(. Note that I must manually use the -1.9.0 versioning as this is what octave searches for (you can see it from an strace, or by tracing the undocumented pkg.m file). >If you have defined the macro correctly, it is >expanded and you don't get such an error. I am unclear why %global octave_api %(octave-config -p API_VERSION || echo 0) is invalid. In any case, I have switched it to use the conditional. The links do not work. PEBKAC - Fixed. The SRPM is also available from koji. Why do you version the package's octave directory? Oh nevermind, octave-forge packages are versioned too. I'm still wondering why you use 1.9.0 instead of 1.9. >I'm still wondering why you use 1.9.0 instead of 1.9.
Octave does not detect the file if you simply place 1.9, if you follow pkg.m you can see that it requires Major.minor.micro notation. Took me a while to work that out.
rpmlint output: mathgl.x86_64: W: shared-lib-calls-exit /usr/lib64/libmgl-glut.so.5.0.0 exit.5 mathgl-devel.x86_64: W: no-documentation 5 packages and 0 specfiles checked; 0 errors, 2 warnings. These should be OK. MUST: The package does not yet exist in Fedora. The Review Request is not a duplicate. OK MUST: The spec file for the package is legible and macros are used consistently. ~OK - Please move the buildroot tag somewhere else from the middle of BuildRequires. I prefer the order: BuildRoot, BuildRequires, Requires. - Devel package does not contain static libraries, remove them from the summary. MUST: The package must be named according to the Package Naming Guidelines. OK MUST: The spec file name must match the base package %{name}. OK MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines. OK MUST: The License field in the package spec file must match the actual license. NEEDSWORK - License is GPLv2+ not GPLv3. MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. OK MUST: The package MUST successfully compile and build into binary rpms. OK MUST: The spec file MUST handle locales properly. N/A MUST: Optflags are used and time stamps preserved. OK MUST: Packages containing shared library files must call ldconfig. OK MUST: A package must own all directories that it creates or require the package that owns the directory. NEEDSWORK - The package needs to own %{_datadir}/%{name}/ instead of just %{_datadir}/%{name}/fonts/*.vfm MUST: Files only listed once in %files listings. OK MUST: Debuginfo package is complete. OK MUST: Permissions on files must be set properly. OK MUST: Clean section exists. OK MUST: Large documentation files must go in a -doc subpackage. OK MUST: All relevant items are included in %doc. Items in %doc do not affect runtime of application. NEEDSWORK - Add COPYING, COPYRIGHT, NEWS, TODO. MUST: Header files must be in a -devel package. OK MUST: Static libraries must be in a -static package. N/A MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'. N/A MUST: If a package contains library files with a suffix then library files ending in .so must go in a -devel package. OK MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency. OK MUST: Packages does not contain any .la libtool archives. OK MUST: Desktop files are installed properly. N/A MUST: No file conflicts with other packages and no general names. OK MUST: Buildroot cleaned before install. OK SHOULD: %{?dist} tag is used in release. OK SHOULD: If the package does not include license text(s) as separate files from upstream, the packager should query upstream to include it. OK SHOULD: The package builds in mock. OK Please fill in your full name in Bugzilla. >Please fill in your full name in Bugzilla.
My full name is registered with FAS, and will not be registered on bugzilla. This has not been problematic in any of my earlier packages.
ping, please address the issues. I can examine this package again this coming weekend. SPEC URL: http://dhd.selfip.com/427e/mathgl-1.9-5.spec SRPM URL: http://dhd.selfip.com/427e/mathgl-1.9-5.fc10.src.rpm Koji Builds: F10: http://koji.fedoraproject.org/koji/taskinfo?taskID=1672567 F11: http://koji.fedoraproject.org/koji/taskinfo?taskID=1672572 rpmlint output: $ rpmlint `cat tmp | awk '{print $2}'` catmathgl.i386: W: shared-lib-calls-exit /usr/lib/libmgl-glut.so.5.0.0 exit mathgl-devel.i386: W: no-documentation tmp 5 packages and 0 specfiles checked; 0 errors, 2 warnings. [makerpm@spiderbox SPECS]$ cat tmp Wrote: /home/makerpm/rpmbuild/SRPMS/mathgl-1.9-5.fc10.src.rpm Wrote: /home/makerpm/rpmbuild/RPMS/i386/mathgl-1.9-5.fc10.i386.rpm Wrote: /home/makerpm/rpmbuild/RPMS/i386/mathgl-devel-1.9-5.fc10.i386.rpm Wrote: /home/makerpm/rpmbuild/RPMS/noarch/mathgl-doc-1.9-5.fc10.noarch.rpm Wrote: /home/makerpm/rpmbuild/RPMS/i386/mathgl-debuginfo-1.9-5.fc10.i386.rpm >- Please move the buildroot tag somewhere else from the middle of >BuildRequires. I prefer the order: BuildRoot, BuildRequires, Requires. Done. >- Devel package does not contain static libraries, remove them from the > summary. Done. >- The package needs to own > %{_datadir}/%{name}/ >instead of just > %{_datadir}/%{name}/fonts/*.vfm Done >- Add COPYING, COPYRIGHT, NEWS, TODO. COPYRIGHT NEWS and TODO have been included. COPYING is not included as this is a GPLv3 licence, and conflicts with the source headers. >- License is GPLv2+ not GPLv3. I emailed upstream again, asking for clarification (fix headers or remove GPL3 licence). I still believe that GPL3 was the better option, given the presence of the COPYING file (gplv3 is compatible with gpl2, but not vice versa). Regardless, this has been to changed GPLv2+, as requested. I am aware of the wiki page that describes how to select the GPL version, however it doesn't cover this type of internal inconsistency. Diff: --- mathgl-1.9-4.spec 2009-08-15 18:23:08.000000000 +1000 +++ mathgl.spec 2009-09-12 14:38:14.000000000 +1000 @@ -1,10 +1,10 @@ %{!?octave_api:%global octave_api %(octave-config -p API_VERSION || echo 0)} Name: mathgl Version: 1.9 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Cross-platform library for making high-quality scientific graphics Summary(ru): MathGL - это библиотека для осуществления высококачественной визуализации данных -License: GPLv3 +License: GPLv2+ Group: Development/Libraries Url: http://mathgl.sourceforge.net Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tgz @@ -18,10 +18,7 @@ #Remove empty libmgl-wx from compilation Patch3: %{name}-no-mglwx.patch -Requires(post): info -Requires(preun): info - -Requires: octave(api) = %{octave_api} +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # mandatory packages BuildRequires: gsl-devel libpng-devel libtool-ltdl-devel libtool @@ -30,13 +27,17 @@ # optional packages BuildRequires: freeglut-devel hdf5-devel libjpeg-devel libtiff-devel fltk-devel qt4-devel BuildRequires: wxGTK-devel giflib-devel octave-devel -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #For autoreconf (required for patch1, libtool) BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool +Requires(post): info +Requires(preun): info + +Requires: octave(api) = %{octave_api} + %description Mathgl is a cross-platform library for making high-quality scientific graphics. It provides fast data plotting and handling of large data @@ -45,7 +46,7 @@ opengl applications %package devel -Summary: Static libraries and header files for %{name} library +Summary: Libraries and header files for %{name} library Group: Development/Libraries Requires: %{name} = %{version}-%{release} @@ -73,7 +74,7 @@ %setup -q #convert EOL encodings, maintaining timestames -for file in AUTHORS ChangeLog.txt README; do +for file in AUTHORS ChangeLog.txt README COPYRIGHT; do sed 's/\r//' $file > $file.new && \ touch -r $file $file.new && \ mv $file.new $file @@ -179,10 +180,10 @@ %files %defattr(-,root,root,-) -%doc AUTHORS ChangeLog.txt README +%doc AUTHORS ChangeLog.txt README COPYING COPYRIGHT NEWS TODO %{_libdir}/*.so.* %{_bindir}/mgl* -%{_datadir}/%{name}/fonts/*.vfm +%{_datadir}/%{name}/ %{_prefix}/libexec/octave/packages/%{name}-1.9.0/ %{_datadir}/octave/packages/%{name}-1.9.0/ %{_infodir}/%{name}.*.gz @@ -198,6 +199,11 @@ %doc texinfo/docs/* %changelog +* Sat Sep 12 2009 <mycae(a!t)yahoo.com> 1.9-5 +- Removed the word "static" from devel description, as doesn't have static +- Fonts now owned at datadir/name level +- Added COPYRIGHT NEWS and TODO + * Sat Aug 15 2009 <mycae(a!t)yahoo.com> 1.9-4 - Fix octave installation method - Remove wx lib, which doesn't have meaningful code. Response from upstream: > On the still continuing package approval process for Fedora, the licencing issues have been re-raised. > > Namely, the copyright included with the mathGL spec is not internally consistent. > > The COPYING file is GPLv3, the COPYRIGHT file is GPLv2 and the source code is \"version 2 or any later\" > > Is it possible to clarify in the source repository, exactly which licence is intended? Yes, it should be GPL v.2 or later (as in source code) -- I forgot to change COPYRIGHT and COPYING :( I think that is now quite clear :) (In reply to comment #37) > >- Add COPYING, COPYRIGHT, NEWS, TODO. > COPYRIGHT NEWS and TODO have been included. COPYING is not included as this is > a GPLv3 licence, and conflicts with the source headers. The source code headers say GPLv2+ so GPLv3 is valid in that category, so you can safely include it. Add it to %files. > >- License is GPLv2+ not GPLv3. > I emailed upstream again, asking for clarification (fix headers or remove GPL3 > licence). I still believe that GPL3 was the better option, given the presence > of the COPYING file (gplv3 is compatible with gpl2, but not vice versa). > Regardless, this has been to changed GPLv2+, as requested. > > I am aware of the wiki page that describes how to select the GPL version, > however it doesn't cover this type of internal inconsistency. The source code headers ALWAYS take precedence. You only look at the LICENSE file if there is no mention of the used license in the source code. ** Always post the new spec & srpm so the reviewer can check them. ** This time I'll trust your diff. The package has been APPROVED. Add LICENSE to the package before CVS import. > Always post the new spec & srpm so the reviewer can check them. Just to clarify : It is posted in the top of comment 37, just above the diff. The diff was for convenience. Anyway thanks for the review -- sorry it took so long to get it up to speed. New Package CVS Request ======================= Package Name: mathgl Short Description: Scientific plotting library Owners: mycae Branches: F-10 F-11 EL-5 InitialCC: baz I can't find user baz in FAS. Otherwise cvs done. mathgl-1.9-6.fc10 has been submitted as an update for Fedora 10. http://admin.fedoraproject.org/updates/mathgl-1.9-6.fc10 mathgl-1.9-6.fc11 has been submitted as an update for Fedora 11. http://admin.fedoraproject.org/updates/mathgl-1.9-6.fc11 mathgl-1.9-6.fc10 has been pushed to the Fedora 10 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update mathgl'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F10/FEDORA-2009-9555 mathgl-1.9-6.fc11 has been pushed to the Fedora 11 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update mathgl'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-9566 mathgl-1.9-6.fc10 has been pushed to the Fedora 10 stable repository. If problems still persist, please make note of it in this bug report. mathgl-1.9-6.fc11 has been pushed to the Fedora 11 stable repository. If problems still persist, please make note of it in this bug report. mathgl-1.9-8.el5 has been submitted as an update for Fedora EPEL 5. http://admin.fedoraproject.org/updates/mathgl-1.9-8.el5 Hmm, looking into the rawhide report and the pkgdb database, it appears that mathgl was never built for rawhide (see also bug #529522). This should not happen, packages should always be built for rawhide *first*, then for the released version, see the big warning on: http://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Request_Builds Now a broken upgrade path has been introduced. This review bug should not be closed until a successful rawhide/F-12 build is done. My guess is that this lack of it being in rawhide is the cause of it not being found via Fedora Community http://fedorahosted.org/fedoracommunity/ticket/316 mathgl-1.9-8.el5 has been pushed to the Fedora EPEL 5 stable repository. If problems still persist, please make note of it in this bug report. Package Change Request ====================== Package Name: mathgl New Branches: el6 epel7 Owners: mycae krege Git done (by process-git-requests). el6 exists. |