Spec URL: http://patrice.bouchand.free.fr/rpm/gtkperf.spec SRPM URL: http://patrice.bouchand.free.fr/rpm/gtkperf-0.40-1.src.rpm Description: * This is one of my first package, and I'm seeking a sponsor * GtkPerf is an application designed to test GTK+ performance. The point is to create common testing platform to run predefined GTK+ widgets and this way define the speed of device/platform.
there some problems with this package: 1) don't use /usr/share use %{_datadir} instead 2) use _smp_mflags for make 3) use RPM_OPT_FLAGS or %{optflags} 4) no rpmlint warnings/errors ;)
Fixed in the following links. Spec URL: http://patrice.bouchand.free.fr/rpm/gtkperf.spec SRPM URL: http://patrice.bouchand.free.fr/rpm/gtkperf-0.40-2.fc7.src.rpm Thanks again for your help.
here is a unofficial/incomplete review (I am not sponsored yet): MUST items: MUST: rpmlint must be run on every package. -> ok (no output) MUST: The package must be named according to the Package Naming Guidelines. -> ok MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption on Package Naming Guidelines. ->ok MUST: The package must be licensed with an open-source compatible license and meet other legal requirements as defined in the legal section of Packaging Guidelines. ->ok MUST: The package must be licensed with an open-source compatible license and meet other legal requirements as defined in the legal section of Packaging Guidelines. ->ok 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 must be included in %doc. -> NOT ok; please package COPYING MUST: The spec file must be written in American English. ->ok MUST: The spec file for the package MUST be legible. -> ok MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. -> ok (4331dde4bb83865e15482885fcb0cc53) MUST: The package must successfully compile and build into binary rpms on at least one supported architecture. ->ok (tested on F7 x86_64) MUST: A package must own all directories that it creates. ->ok MUST: Packages must not own files or directories already owned by other packages. ->ok MUST: All filenames in rpm packages must be valid UTF-8. ->ok MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) ->ok MUST: If a package includes something as %doc, it must not affect the runtime of the application. ->ok MUST: Large documentation files should go in a -doc subpackage. ->ok (no large documentation) MUST: If the package is designed to be relocatable, the packager must state this fact in the request for review, along with the rationalization for relocation of that specific package. Without this, use of Prefix: /usr is considered a blocker. ->ok (not relocatable) MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package. ->ok (no libs in this package) MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} ->ok (no devel package) MUST: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section. ->NOT ok (no desktop file found!) MUST: Packages must NOT contain any .la libtool archives, these should be removed in the spec. ->ok MUST: Header files must be in a -devel package. ->ok (no header files) MUST: Static libraries must be in a -static package. ->ok (no static libs;no libs at all) MUST: The package must contain code, or permissable content. ->ok MUST: The package must meet the Packaging Guidelines. ->NOT ok, (no desktop file, license file not installed)
Summary: Please Package COPING and include a .desktop file.
> Please Package COPING and include a .desktop file. Done. I set the "Categories" to "Graphics" in desktop file ? Do you have a better idea ? Spec URL: http://patrice.bouchand.free.fr/rpm/gtkperf.spec SRPM URL: http://patrice.bouchand.free.fr/rpm/gtkperf-0.40-3.fc7.src.rpm
(In reply to comment #5) > > Please Package COPING and include a .desktop file. > Done. > > I set the "Categories" to "Graphics" in desktop file ? Do you have a better idea ? > Use "System"
Some comments (just watched your spec file and tried to rebuild) * For sourceforge source, please refert to the section "Sourceforge.net" of http://fedoraproject.org/wiki/Packaging/SourceURL * Please follow the fedora usage of build root (section: "BuildRoot tag" of http://fedoraproject.org/wiki/Packaging/Guidelines ) * export CFLAGS="%{optflags}" This is not needed as %configure sets it (please check what %configure actually does by "rpm --eval %configure") * Please set vendor id for desktop file (the section "desktop-file-install usage" of http://fedoraproject.org/wiki/Packaging/Guidelines ) * We now recommend %defattr(-,root,root,-) * rebuild failed. At least desktop-file-utils is missing from BuildRequires. http://koji.fedoraproject.org/koji/taskinfo?taskID=80492
ping?
> * For sourceforge source, please refert to the section "Sourceforge.net" of > http://fedoraproject.org/wiki/Packaging/SourceURL Change source path to http://downloads.sourceforge.net/%{name}/%{name}_%{version}.tar.gz > * Please follow the fedora usage of build root > (section: "BuildRoot tag" of > http://fedoraproject.org/wiki/Packaging/Guidelines ) Change BuildRoot to %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Use only %{buildroot} now (no more mixed with $RPM_BUILD_ROOT) > * export CFLAGS="%{optflags}" > This is not needed as %configure sets it (please check what %configure > actually does by "rpm --eval %configure") This has been removed. It is implicitly done by %configure. > * Please set vendor id for desktop file (the section "desktop-file-install usage" > of http://fedoraproject.org/wiki/Packaging/Guidelines ) vendor Id set to fedora. > * We now recommend %defattr(-,root,root,-) Done. > * rebuild failed. At least desktop-file-utils is missing from > BuildRequires. > http://koji.fedoraproject.org/koji/taskinfo?taskID=80492 Add BuildRequires: desktop-file-utils The new files: Spec URL: http://patrice.bouchand.free.fr/rpm/gtkperf.spec SRPM URL: http://patrice.bouchand.free.fr/rpm/gtkperf-0.40-4.fc7.src.rpm Thanks for you time. Patrice
(Removing NEEDSPONSOR: bug 248301)
Some remarks. * Fedora specific compilation flags are not honored (Compiler flags of http://fedoraproject.org/wiki/Packaging/Guidelines ) Check the log: http://koji.fedoraproject.org/koji/getfile?taskID=92083&name=build.log Also debuginfo rpm does not contain debug information and this should be fixed. * (From build log) Suppress the call of automated autoheader ("touch"ing some files, i.e. fixing the timestamp of some files should fix this issue) * Update License tag. (IMO this is GPLv2, not GPLv2+) * Change the encoding of "ChangeLog" from ISO-8859-1 to UTF-8.
> * Fedora specific compilation flags are not honored > (Compiler flags of http://fedoraproject.org/wiki/Packaging/Guidelines ) > Check the log: > http://koji.fedoraproject.org/koji/getfile?taskID=92083&name=build.log > Also debuginfo rpm does not contain debug information and this > should be fixed. CFLAGS entry in Makefile is empty. I did not find yet why configure substitutes @CFLAGS@ with an empty string in Makefile.in. I try this which seems to work: |for f in `find -name Makefile` | do | sed -i -e "s/^CFLAGS =.*$/CFLAGS = %{optflags}/" $f | done but I do not think it's acceptable. Do you have an idea about what could be wrong ? > * (From build log) > Suppress the call of automated autoheader ("touch"ing some files, > i.e. fixing the timestamp of some files should fix this issue) Done > * Update License tag. (IMO this is GPLv2, not GPLv2+) Done > * Change the encoding of "ChangeLog" from ISO-8859-1 to UTF-8. Done
(In reply to comment #12) > CFLAGS entry in Makefile is empty. I did not find yet why configure substitutes > @CFLAGS@ with an empty string in Makefile.in. The culprit is a bug in configure.in ... CFLAGS="" AC_SUBST(CFLAGS) ... Here they overwrite CFLAGS with an empty string, which causes the configure script to propagate this empty string into the Makefiles. The "right fix" would be upstream to remove these two lines. They are plain wrong. A work-around applicable to packagers is to override CFLAGS from the environment. I.e. use make CFLAGS=${RPM_OPT_FLAGS} in all places in your spec where you invoke "make".
> A work-around applicable to packagers is to override CFLAGS from the > environment. I.e. use > make CFLAGS=${RPM_OPT_FLAGS} > in all places in your spec where you invoke "make". This is what I have done, thanks for your help. The updated files: Spec URL: http://patrice.bouchand.free.fr/rpm/gtkperf.spec SRPM URL: http://patrice.bouchand.free.fr/rpm/gtkperf-0.40-5.fc7.src.rpm
Well, actually %attr(755,root,root) can be removed. Other things are okay. ---------------------------------------------------------- This package (gtkperf) is APPROVED by me ----------------------------------------------------------
(In reply to comment #15) > Well, actually %attr(755,root,root) can be removed. Ok ,I will fix this before the first cvs import. > Other things are okay. > > ---------------------------------------------------------- > This package (gtkperf) is APPROVED by me > ---------------------------------------------------------- Thanks !
New Package CVS Request ======================= Package Name: gtkperf Short Description: GTK+ performance tester Owners: patriceb Branches: F-7 InitialCC: Commits by cvsextras: yes
cvs done.