Spec URL: http://berrange.fedorapeople.org/review/gmic/gmic.spec SRPM URL: http://berrange.fedorapeople.org/review/gmic/gmic-1.5.8.2-1.fc20.src.rpm Description: G'MIC is an open and full-featured framework for image processing, providing several different user interfaces to convert/manipulate/filter/visualize generic image datasets, from 1d scalar signals to 3d+t sequences of multi-spectral volumetric images. Fedora Account System Username: berrange Some points to note - A F21 rawhide build http://koji.fedoraproject.org/koji/taskinfo?taskID=6494231 - Error from rpmlint: $ rpmlint gmic.spec gmic.spec:78: E: hardcoded-library-path in %{_prefix}/lib/* 0 packages and 1 specfiles checked; 1 errors, 0 warnings. It is catching the place where the spec *fixes* the broken libdir from the Makefile, so a false positive - Warnings from rpmlint on the binaries: $ rpmlint ~/rpmbuild/RPMS/x86_64/gmic-*1.5.8.2-1.fc20.x86_64.rpm gmic.x86_64: W: spelling-error %description -l en_US datasets -> data sets, data-sets, databases gmic.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti gmic.x86_64: W: spelling-error %description -l en_US volumetric -> cliometric gmic.x86_64: W: non-conffile-in-etc /etc/bash_completion.d/gmic gmic-devel.x86_64: W: spelling-error %description -l en_US datasets -> data sets, data-sets, databases gmic-devel.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti gmic-devel.x86_64: W: spelling-error %description -l en_US volumetric -> cliometric gmic-devel.x86_64: W: no-documentation gmic-gimp.x86_64: W: spelling-error %description -l en_US datasets -> data sets, data-sets, databases gmic-gimp.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti gmic-gimp.x86_64: W: spelling-error %description -l en_US volumetric -> cliometric gmic-gimp.x86_64: W: no-documentation 4 packages and 0 specfiles checked; 0 errors, 12 warnings. I believe these are false positives because * The spelling-errors are not errors. * The lack of docs is fine since those sub-rpms depend on the main RPM which has the COPYING file * The bash completion files aren't supposed to be marked %config - The GMIC code would ordinarily prefer to build with ffmpeg library support. ffmpeg is of course not distributed in Fedora, so that is *not* done. When ffmpeg is not available to compile against, GMIC code will instead fallback to running the ffmpeg command line tools if they happen to be installed. If the cli tools aren't present the functionality will raise an error. Since this still only affects a tiny subset of GMIC functionality, I believe this is a negligible limitation which doesn't outweigh benefits of including GMIC in Fedora. Oh, and yes, if you try to rebuild the srpm it will burn your CPU at 100% for a pretty long time :-)
I forgot to submit this package last year... ;) Take it.
If you have a desire to be a co-maintainer once review is complete, I'm always happy to have co-maintainers.
0. I packaged this in 1.5.5 era, but currently I'd say no, due to the horrible list of package eithor submitted or NOT submitted yet ;) Please package newer version 1.5.8.3 released 16 hours ago...... XDDD 1. All subpackages has Requires: %{name} = %{version}-%{release} but Missing %?_isa need to be appended after %{name}. 2. devel package template: %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel This package contains libraries and header files for developing applications that use %{name}. 3. Being as the Design softwares SIG leader, I'd say that gimp plugins need to be named as gimp-%{name}-plugin. 4. make in subdirectory? Just try make -C $(SUBDIRECTORY) --> make %{?_smp_mflags} FFMPEG_CFLAGS= FFMPEG_LDFLAGS= OPT_CFLAGS="%{optflags}" -C src/ 5. You may need to add a %configure : || in %build also for LDFLAGS since this package doesn't use configure to honor global ldflags. [rpmaker@fab SPECS]$ rpm -E %__global_ldflags -Wl,-z,relro 6. No %defattr(-,root,root) please. 7. No zart build. Please use %package -n zart to create a separate package. 8. %{_prefix}/include --> %{_includedir} 9. Add lang(fr): lang(fr) %{_mandir}/fr/man1/%{name}.1* (use glob) 10. Delete Buildroot: %{_tmppath}/%{name}-%{version}-root ** I've mailed these issues in building to upstream, hope they can work around some in the next release.
11. I guess your spec is copied from somewhere(whole build process doesn't require qt4), no problem, just build zart. But one note is that Fedora has %qmake_qt4 macro to build, so if normal build is not perfect(e.g no inserted ldflags from fedora system), please manually build it.
Refreshed packages SRPM URL: http://berrange.fedorapeople.org/review/gmic/gmic-1.5.8.3-2.fc20.src.rpm Spec URL: http://berrange.fedorapeople.org/review/gmic/gmic.spec (In reply to Christopher Meng from comment #3) > Please package newer version 1.5.8.3 released 16 hours ago...... XDDD Done > 1. All subpackages has Requires: %{name} = %{version}-%{release} but > > Missing %?_isa need to be appended after %{name}. Added to the -devel RPM. I actually removed the Requires from the plugin + zart RPMs since they're not needed for the apps to operate afaict > 2. devel package template: Done > 3. Being as the Design softwares SIG leader, I'd say that gimp plugins need > to be named as gimp-%{name}-plugin. Done > 4. make in subdirectory? Just try make -C $(SUBDIRECTORY) --> Done > 5. You may need to add a %configure : || in %build also for LDFLAGS since > this package doesn't use configure to honor global ldflags. Setting OPT_LDFLAGS appears sufficient to make it honour global ldflags > 6. No %defattr(-,root,root) please. Done > 7. No zart build. Please use %package -n zart to create a separate package. Done - missed that the rules in src/Makefile had disabled zart ! > 8. %{_prefix}/include --> %{_includedir} Done > 9. Add lang(fr): Done > 10. Delete Buildroot: %{_tmppath}/%{name}-%{version}-root Done > 11. I guess your spec is copied from somewhere(whole build process doesn't > require qt4), no problem, just build zart. But one note is that Fedora has > %qmake_qt4 macro to build, so if normal build is not perfect(e.g no inserted > ldflags from fedora system), please manually build it. The %qmake_qt4 macro did not appear to work with zart - a normal make was succesful though.
Opps, that should have been SRPM URL: http://berrange.fedorapeople.org/review/gmic/gmic-1.5.8.3-1.fc20.src.rpm
Appreciate you might be busy, but if you have time to re-review this soon that'd be great.
(In reply to Daniel Berrange from comment #7) > Appreciate you might be busy, but if you have time to re-review this soon > that'd be great. OK... I'm terribly busy right now, brb... BTW 1.5.8.4 is available now... Also thanks to bug 1063144, we have following macros available... # RPM macros for GIMP %_gimp_datadir %{_datadir}/gimp/2.0 %_gimp_libdir %{_libdir}/gimp/2.0 %_gimp_sysconfdir %{_sysconfdir}/gimp/2.0 %_gimp_localedir %{_datadir}/locale %_gimp_scriptdir %{_datadir}/gimp/2.0/scripts %_gimp_plugindir %{_libdir}/gimp/2.0/plug-ins You should replace the one you've defined...
Updated to version 1.5.8.5 now, and rely on the gimp provided macros http://berrange.fedorapeople.org/review/gmic/gmic-1.5.8.5-1.fc20.src.rpm
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: Header files in -devel subpackage, if present. [x]: ldconfig called in %post and %postun if required. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. [x]: Development (unversioned) .so files in -devel subpackage, if present. Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "CeCILL", "*No copyright* CeCILL", "Unknown or generated". 2 files have unknown license. Detailed output of licensecheck: *No copyright* CeCILL --------------------- gmic-1.5.8.5/src/CImg.h CeCILL ------ gmic-1.5.8.5/src/gmic.cpp gmic-1.5.8.5/src/gmic.h gmic-1.5.8.5/src/gmic_gimp.cpp gmic-1.5.8.5/src/gmic_use_lib.cpp gmic-1.5.8.5/zart/include/CommandEditor.h gmic-1.5.8.5/zart/include/Common.h gmic-1.5.8.5/zart/include/DialogAbout.h gmic-1.5.8.5/zart/include/DialogLicence.h gmic-1.5.8.5/zart/include/FilterThread.h gmic-1.5.8.5/zart/include/ImageConverter.h gmic-1.5.8.5/zart/include/ImageView.h gmic-1.5.8.5/zart/include/MainWindow.h gmic-1.5.8.5/zart/include/WebcamGrabber.h gmic-1.5.8.5/zart/src/CommandEditor.cpp gmic-1.5.8.5/zart/src/DialogAbout.cpp gmic-1.5.8.5/zart/src/DialogLicence.cpp gmic-1.5.8.5/zart/src/FilterThread.cpp gmic-1.5.8.5/zart/src/ImageConverter.cpp gmic-1.5.8.5/zart/src/ImageView.cpp gmic-1.5.8.5/zart/src/MainWindow.cpp gmic-1.5.8.5/zart/src/WebcamGrabber.cpp gmic-1.5.8.5/zart/src/ZArt.cpp Unknown or generated -------------------- gmic-1.5.8.5/src/gmic_bashcompletion.sh gmic-1.5.8.5/src/gmic_def.h [x]: License file installed when any subpackage combination is installed. [x]: Package must own all directories that it creates. Note: Directories without known owners: /usr/lib/gimp, /usr/lib/gimp/2.0, /usr/lib/gimp/2.0/plug-ins [x]: %build honors applicable compiler flags or justifies otherwise. [!]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [!]: Package contains desktop file if it is a GUI application. [x]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [x]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 30720 bytes in 2 files. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: 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]: Package requires other packages for directories it uses. [x]: Package does not own files or directories owned by other packages. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package do not use a name that already exist [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [x]: 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]: Final provides and requires are sane (see attachments). [x]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in gimp-gmic- plugin , zart [x]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Scriptlets must be sane, if used. [x]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: Package should compile and build into binary rpms on all supported architectures. [-]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: Dist tag is present (not strictly required in GL). [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Uses parallel make %{?_smp_mflags} macro. [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. Rpmlint ------- Checking: gmic-1.5.8.5-1.fc21.i686.rpm gmic-devel-1.5.8.5-1.fc21.i686.rpm gimp-gmic-plugin-1.5.8.5-1.fc21.i686.rpm zart-1.5.8.5-1.fc21.i686.rpm gmic-1.5.8.5-1.fc21.src.rpm gmic.i686: W: spelling-error %description -l en_US datasets -> data sets, data-sets, databases gmic.i686: W: spelling-error %description -l en_US multi -> mulch, mufti gmic.i686: W: spelling-error %description -l en_US volumetric -> cliometric gmic.i686: W: invalid-url URL: http://gmic.sourceforge.net/index.shtml <urlopen error timed out> gmic.i686: W: non-conffile-in-etc /etc/bash_completion.d/gmic gmic-devel.i686: W: invalid-url URL: http://gmic.sourceforge.net/index.shtml <urlopen error timed out> gmic-devel.i686: W: no-documentation gimp-gmic-plugin.i686: W: invalid-url URL: http://gmic.sourceforge.net/index.shtml <urlopen error timed out> gimp-gmic-plugin.i686: W: no-documentation zart.i686: W: spelling-error %description -l en_US webcam -> web cam, web-cam, became zart.i686: W: invalid-url URL: http://gmic.sourceforge.net/index.shtml <urlopen error timed out> zart.i686: W: no-documentation zart.i686: W: no-manual-page-for-binary zart gmic.src: W: spelling-error %description -l en_US datasets -> data sets, data-sets, databases gmic.src: W: spelling-error %description -l en_US multi -> mulch, mufti gmic.src: W: spelling-error %description -l en_US volumetric -> cliometric gmic.src: W: invalid-url URL: http://gmic.sourceforge.net/index.shtml <urlopen error timed out> gmic.src:84: E: hardcoded-library-path in %{_prefix}/lib/* gmic.src: W: invalid-url Source0: http://downloads.sourceforge.net/project/gmic/gmic_1.5.8.5.tar.gz timed out 5 packages and 0 specfiles checked; 1 errors, 18 warnings. Rpmlint (installed packages) ---------------------------- # rpmlint gimp-gmic-plugin gmic zart gmic-devel gimp-gmic-plugin.i686: W: invalid-url URL: http://gmic.sourceforge.net/index.shtml <urlopen error timed out> gimp-gmic-plugin.i686: W: no-documentation gmic.i686: W: spelling-error %description -l en_US datasets -> data sets, data-sets, databases gmic.i686: W: spelling-error %description -l en_US multi -> mulch, mufti gmic.i686: W: spelling-error %description -l en_US volumetric -> cliometric gmic.i686: W: invalid-url URL: http://gmic.sourceforge.net/index.shtml <urlopen error timed out> gmic.i686: W: non-conffile-in-etc /etc/bash_completion.d/gmic zart.i686: W: spelling-error %description -l en_US webcam -> web cam, web-cam, became zart.i686: W: invalid-url URL: http://gmic.sourceforge.net/index.shtml <urlopen error timed out> zart.i686: W: no-documentation zart.i686: W: no-manual-page-for-binary zart gmic-devel.i686: W: invalid-url URL: http://gmic.sourceforge.net/index.shtml <urlopen error timed out> gmic-devel.i686: W: no-documentation 4 packages and 0 specfiles checked; 0 errors, 13 warnings. # echo 'rpmlint-done:' Requires -------- gimp-gmic-plugin (rpmlib, GLIBC filtered): libatk-1.0.so.0 libc.so.6 libcairo.so.2 libfftw3.so.3 libfftw3_threads.so.3 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgimp-2.0.so.0 libgimpbase-2.0.so.0 libgimpcolor-2.0.so.0 libgimpconfig-2.0.so.0 libgimpmath-2.0.so.0 libgimpmodule-2.0.so.0 libgimpui-2.0.so.0 libgimpwidgets-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpng16.so.16 libpng16.so.16(PNG16_0) libpthread.so.0 libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libz.so.1 rtld(GNU_HASH) gmic (rpmlib, GLIBC filtered): /sbin/ldconfig libHalf.so.11 libIlmImf-Imf_2_1.so.21 libX11.so.6 libc.so.6 libfftw3.so.3 libfftw3_threads.so.3 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libjpeg.so.62 libjpeg.so.62(LIBJPEG_6.2) libm.so.6 libpng16.so.16 libpng16.so.16(PNG16_0) libpthread.so.0 libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libtiff.so.5 libtiff.so.5(LIBTIFF_4.0) libz.so.1 rtld(GNU_HASH) zart (rpmlib, GLIBC filtered): libQtCore.so.4 libQtGui.so.4 libQtNetwork.so.4 libQtXml.so.4 libX11.so.6 libc.so.6 libfftw3.so.3 libfftw3_threads.so.3 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libm.so.6 libopencv_calib3d.so.2.4 libopencv_contrib.so.2.4 libopencv_core.so.2.4 libopencv_features2d.so.2.4 libopencv_flann.so.2.4 libopencv_highgui.so.2.4 libopencv_imgproc.so.2.4 libopencv_legacy.so.2.4 libopencv_ml.so.2.4 libopencv_objdetect.so.2.4 libopencv_ocl.so.2.4 libopencv_photo.so.2.4 libopencv_stitching.so.2.4 libopencv_superres.so.2.4 libopencv_ts.so.2.4 libopencv_video.so.2.4 libopencv_videostab.so.2.4 libpthread.so.0 libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) rtld(GNU_HASH) gmic-devel (rpmlib, GLIBC filtered): gmic(x86-32) libgmic.so.1 Provides -------- gimp-gmic-plugin: gimp-gmic-plugin gimp-gmic-plugin(x86-32) gmic: gmic gmic(x86-32) libgmic.so.1 zart: zart zart(x86-32) gmic-devel: gmic-devel gmic-devel(x86-32) Source checksums ---------------- http://downloads.sourceforge.net/project/gmic/gmic_1.5.8.5.tar.gz : CHECKSUM(SHA256) this package : 823c909f04f333b2d0c420221db1e038a4b9c57891bdbc364b5aef58d25b15e7 CHECKSUM(SHA256) upstream package : 823c909f04f333b2d0c420221db1e038a4b9c57891bdbc364b5aef58d25b15e7 Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13 Command line :/usr/bin/fedora-review -rvn gmic-1.5.8.5-1.fc20.src.rpm Buildroot used: fedora-rawhide-i386 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG ----------Summary--------- 1. $RPM_BUILD_ROOT/ , no slash plz. 2. IMO this package bundles CImg(bug 1001008), CImg is a template library for image processing written in C++. If you urge to push it to Fedora, please file a ticket at FPC, otherwise let me finish the CImg packaging and then use that large header from system. Others are fine. ;-D
Added the CImg review as a dep, since it doesn't seem worth the effort to go to FPC when the CImg review ought to be easy enough to finish.
Put the latest version SRPM here and I will take a look again. ;)
The CImg.h version built into Fedora is sadly older than the version used by current GMIC - it is using a GIT snapshot of CImg, rather than the current formal release. It crashes & burns trying to build against the older CImg due to new OpenMP support $ grep 'define cimg_version' gmic-1.5.9.3/src/CImg.h #define cimg_version 159 $ grep 'define cimg_version' /usr/include/CImg.h #define cimg_version 158
Updated srpm at: http://berrange.fedorapeople.org/review/gmic/gmic-1.5.9.3-1.fc20.src.rpm http://berrange.fedorapeople.org/review/gmic/gmic.spec As noted above, the CImg in gmic is newer than the official release, so I've add a condition 'use_system_cimg' macro in the spec file, that is currently set to 0. As & when a new CImg is released & makes its way into Fedora, we can change that to '1' again. And so on in the future, since I guess this may happen again. Also note, you can't build this on F20 due to a gcc bug. So if testing on f20 pull a newer gcc (see https://bugzilla.redhat.com/show_bug.cgi?id=1107972)
@Christopher could you approve this package finally. It has all the changes you've requested previously. I really want to get this into Fedora before yet another release comes out & we have to waste more time going round in this review.
I still hope you can get an exception from FESCo.
New Package SCM Request ======================= Package Name: gmic Short Description: GREYC's Magic for Image Computing Owners: berrange Branches: InitialCC:
New Package SCM Request ======================= Package Name: gmic Short Description: GREYC's Magic for Image Computing Owners: berrange Branches: f20 f21 InitialCC:
Git done (by process-git-requests).
gmic-1.5.9.4-1.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/gmic-1.5.9.4-1.fc20
gmic-1.5.9.4-1.fc20 has been pushed to the Fedora 20 stable repository.