Spec Name or Url: http://finalzone.webmasterswebworkshop.com/Fedora/gdesklets.spec SRPM Name or Url: http://finalzone.webmasterswebworkshop.com/Fedora/gDesklets-0.35.2-1.src.rpm Description: This is my first build of package. I tested on my system and everything seems to work fine. gDesklets is an architecture for desktop applets.
*** Bug 173110 has been marked as a duplicate of this bug. ***
Minor changelog quibble, format is wrong: * Sat Nov 12 2005 Luya Tshimbalanga <luya_tfz> - 0.35.2-1 * Initial RPM Build Should use a dash (-), also "Initial RPM Build" is a bit vague, I suggest the following: * Sat Nov 12 2005 Luya Tshimbalanga <luya_tfz> - 0.35.2-1 - Initial Fedora Extras package
Please add URL to upstream project in URL field: http://gdesklets.gnomedesktop.org/
Specs and srpms are updated. Checkout the URL.
I'll give this a review later today. Is this your first package for Fedora? If so, you'll also need someone to sponsor you.
Thanks. By the way, this was not a full review, because I am not yet a formal contributor, nor can I sponsor contributors. (When somebody takes this package up for review, they will change the blocker bug from FE-NEW to FE-REVIEW.) I did, however, successfully build from the srpm, however, I installed a simple Clock applet from a website and I found I could not move it. In trying to find a way to fix this problem, I noticed that many links on the upstream site being broken, like the forums and the developer area, and the announcement about the main maintainer not having much time for the project make me wonder about the long term development of this package upstream. Have you a better sense of what is going on in the project, are you in contact with the upstream developer(s)? Lastly, if you update the spec file, you should also bump the release number and add a changelog entry even if it's still in review.
(In reply to comment #6)ime for the project make > Lastly, if you update the spec file, you should also bump the release number and > add a changelog entry even if it's still in review. And therefore, regenerate a new SRPM with a new URL (because it will have bumped the release number).
Here's my initial review of your spec for gdesklets. Items needing to be fixed: 1. spec file & src.rpm should have same name. Refer to: http://fedoraproject.org/wiki/PackageNamingGuidelines#head-34a32244e4e3fb99d3fedae338781321cb7b5c14 2. Group is not valid. Refer to: http://fedoraproject.org/wiki/RPMGroups 3. Missing BuildRequires: python-devel, & gnome-python2. Also, to handle locales correctly, you should also add gettext. To help determine if your missing BuildRequirements, use Mock. For more information refer to: http://fedoraproject.org/wiki/Projects/Mock 4. Missing Requires: pygtk2. Also instead of requiring python, use this instead: python-abi = %(%{__python} -c "import sys ; print sys.version[:3]") 5. Add '-n gDesklets-%{version}' to the %setup line in your spec. This will solve the problem with having the name as defined as gdesktlets, instead of gDesklets. 6. Desktop file isn't handled according to Fedora Guidelines. Refer to: http://fedoraproject.org/wiki/PackagingGuidelines#desktop 7. Locale files aren't handled correctly, you need to add '%find_lang %{name}' to the install section, and add '-f %{name}.lang' to the %file heading. 8. Missing documentation. You must add the COPYING files at a minimum to %doc in the %file section. 9. Missing scriplets for mime-info. Refer to: http://fedoraproject.org/wiki/ScriptletSnippets#head-ef39068afc1677de2e6b4370ad0fb24dafd4d47b 10. Remove unnecessary files. There's a bunch of files related to mime info, that should be removed so that they don't overwrite existing files on a system. Add the following to in the %install section: rm -rf ${RPM_BUILD_ROOT}%{_datadir}/mime/application rm -rf ${RPM_BUILD_ROOT}%{_datadir}/mime/{globs,magic,XMLnamespaces,aliases,subclasses} 11. In the %file section of your spec, there's a lot of changes that need to be made. Using %{_datadir}/* & %{_libdir}/*, is too generic and needs to be more specific. You'll run into problems with directory ownership, and possibly packing things that shouldn't be included. For example try doing this (I banged this out real quick, so there may be other items that still need to be addressed): %{_datadir}/mime/packages/%{name}.xml %{_datadir}/icons/gnome/48x48/mimetypes/*.png %{_datadir}/pixmaps/%{name}.png %{_datadir}/applications/fedora-%{name}.desktop %{_libdir}/%{name}/ %{_mandir}/man1/%{name}.1.gz %{_sysconfdir}/gconf/schemas/%{name}-display-thumbnail.schemas Let's work on fixing these items, then I'll do another review, to make sure I didn't miss anything, and make sure there's no outstanding issues.
(In reply to comment #5) > I'll give this a review later today. Is this your first package for Fedora? If > so, you'll also need someone to sponsor you. Yes, it is. Expect many error :)
(In reply to comment #8) > 3. Missing BuildRequires: python-devel, & gnome-python2. Also, to handle > locales correctly, you should also add gettext. To help determine if your > missing BuildRequirements, use Mock. For more information refer to: > http://fedoraproject.org/wiki/Projects/Mock Mock display that line: " [finalzone@experience ~]$ mock init rpmbuild/SRPMS/gDesklets-0.35.2-1.src.rpm You need to be a member of the mock group for this to work " I have tried to grant membership to my username but it seems not working.
(In reply to comment #6) > Have you a better sense of what is going on in the project, are you in contact > with the upstream developer(s)? According to gdesklets website: "There was a huge summer hole in gDesklets development, simply because the main developer graduated from univsersity and thus had not much time for the project. The situation is getting better again, though."
(In reply to comment #10) > I have tried to grant membership to my username but it seems not working. After you add yourself to a group, make sure you logout and login again. Your current processes will never know about the group membership change...
(In reply to comment #11) > According to gdesklets website: > > "There was a huge summer hole in gDesklets development, simply because the main > developer graduated from univsersity and thus had not much time for the project. > The situation is getting better again, though." I read that too, which doesn't make me very optimistic. But I was wondering if you have actually been in e-mail contact with the primary maintainer(s). It would probably be a good thing to do especially since the status seems somewhat unclear. Who knows, if they know that you were packaging it for Fedora Extras it might give them an incentive to work more on it, since Fedora is one of the most widely deployed distribitions and it will get much more exposure if you can simply "yum install gDesklets" than having to install it from source.
(In reply to comment #13) But I was wondering if > you have actually been in e-mail contact with the primary maintainer(s). It > would probably be a good thing to do especially since the status seems somewhat > unclear. Who knows, if they know that you were packaging it for Fedora Extras > it might give them an incentive to work more on it, since Fedora is one of the > most widely deployed distribitions and it will get much more exposure if you can > simply "yum install gDesklets" than having to install it from source. > I didn't contact the primary maintainer yet because it is the very first time I build a package from a spec written from scratch. I couldn't find e-mail from gdesklets website as well. ---- I updated the spec but when I build it, I got error like: Exécution_de(%install): /bin/sh -e /var/tmp/rpm-tmp.36981 + umask 022 + cd /home/finalzone/rpmbuild/BUILD + cd gDesklets-0.35.2 + LANG=C + export LANG + unset DISPLAY + /usr/lib/rpm/redhat/find-lang.sh /var/tmp/gdesklets-0.35.2-3-root-finalzone gdesklets /usr/lib/rpm/redhat/find-lang.sh: /var/tmp/gdesklets-0.35.2-3-root-finalzone: no such directoryerreur: Mauvais status de sortie pour /var/tmp/rpm-tmp.36981 (%install) Erreur de construction de RPM: Mauvais status de sortie pour /var/tmp/rpm-tmp.36981 (%install) Herer is a code: %install # rm -rf $RPM_BUILD_ROOT %find_lang %{name} rm -rf ${RPM_BUILD_ROOT}%{_datadir}/mime/application rm -rf ${RPM_BUILD_ROOT}%{_datadir}/mime/{globs,magic,XMLnamespaces,aliases,subclasses} desktop-file-install --vendor fedora \ --dir ${RPM_BUILD_ROOT}%{_datadir}/applications \ --add-category X-Fedora make install DESTDIR=$RPM_BUILD_ROOT
specs updated
You should post a link to the updated SRPM, I think you can do that without rebuilding the binary using: "rpmbuild -bs gDesklets.spec".
updated SRPMS: http://finalzone.webmasterswebworkshop.com/Fedora/gdesklets-0.35.2-3.src.rpm
You added a line between the "rm" command and the directory, here: rm -rf <- should be no new line ${RPM_BUILD_ROOT}%{_datadir}/mime/{globs,magic,XMLnamespaces,aliases,subclasses} This also needs to appear *after* the make install because it has to remove the files before it packages them (there should be no "unpackaged files left over"). You also need to specify a fedora-gdesklets.desktop to install, and add relevant categories, and remove the upstream gdesklets.desktop from the build root, to make way for the fedora-gdesklets.desktop Your %install should look something like: %install make install DESTDIR=$RPM_BUILD_ROOT rm -rf ${RPM_BUILD_ROOT}%{_datadir}/mime/application rm -rf ${RPM_BUILD_ROOT}%{_datadir}/mime/{globs,magic,XMLnamespaces,aliases,subclasses} rm -f ${RPM_BUILD_ROOT}%{_datadir}/applications/{gdesklets.desktop,mimeinfo.cache} desktop-file-install --vendor=fedora \ --dir ${RPM_BUILD_ROOT}%{_datadir}/applications \ --add-category X-Fedora \ --add-category Accessories \ --add-category Application \ --add-category Utility \ data/gdesklets.desktop Please read http://fedoraproject.org/wiki/PackagingGuidelines#desktop carefully, you can't just cut and paste the example. Also, I would change to description to which is less over-the-top: %description 'gDesklets' provides an advanced architecture for desktop applets - tiny displays that sit on your desktop such as status meters, icon bars, weather sensors, news tickers. (Don't indent the description.)
Created attachment 121120 [details] Updated spec file Attach spec file with my modifications (bugzilla often inserts extra newlines in comments so code samples often get messed up).
(In reply to comment #18) > Please read http://fedoraproject.org/wiki/PackagingGuidelines#desktop carefully, > you can't just cut and paste the example. > > Also, I would change to description to which is less over-the-top: > > %description > 'gDesklets' provides an advanced architecture for desktop applets - > tiny displays that sit on your desktop such as status meters, icon > bars, weather sensors, news tickers. > > (Don't indent the description.) It is common mistake to just copy and paste. That's a part of learning process. :) I just updated the spec but stuck with this build error: Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Vérification des fichiers non empaquetés: /usr/lib/rpm/check-files /var/tmp/gdesklets-0.35.2-4-root-finalzone erreur: Fichier(s) installé(s) (mais non empaquetés): /usr/share/mime/mime.cache Erreur de construction de RPM: Fichier(s) installé(s) (mais non empaquetés): /usr/share/mime/mime.cache It means the path is installed bu not packaged.
rpmlint is also complaining about the following errors: W: gdesklets symlink-should-be-relative /usr/lib/gdesklets/data/gdesklets.png /usr/share/pixmaps/gdesklets.png E: gdesklets script-without-shellbang /usr/lib/gdesklets/NullObject.py W: gdesklets symlink-should-be-relative /usr/bin/gdesklets /usr/lib/gdesklets/gdesklets
Created attachment 121259 [details] updated gdesklets.spec Updated gdesklets.spec. Added some dependencies for testing. Need to learn to change the name for the menu. I wonder if there is a way to reduce possible memory leak when rebuilding package.
I forgot to include src file: http://finalzone.webmasterswebworkshop.com/Fedora/gdesklets-0.35.2-10.src.rpm Now the src and spec are ready for review.
configure gives a warning: configure: WARNING: you should use --build, --host, --target Is that really ignorable? -=- Package installs a schema file, but the schema is not installed. The spec file says that gdesklets no longer requires gconf. If it no longer requires gconf, should the schema be removed? in %files %defattr(-,root,root,0755) I think it should be %defattr(-,root,root,-) If that causes a problem, the correct attribute should be set where it is needed. In %files %{_mandir}/man1/%{name}.1.gz should be %{_mandir}/man1/* How the file is compressed (and even if it is compressed) should be left up the macros on the build machine - which currently is gzip, but could change to bz2 or something else (though I find it unlikely that it would) -=- minor - please use a dist tag. IE instead of Release: 10 use Release: 10%{?dist} ... There are some rpmlint warnings/errors: W: gdesklets symlink-should-be-relative /usr/lib/gdesklets/data/gdesklets.png /usr/share/pixmaps/gdesklets.png E: gdesklets script-without-shellbang /usr/lib/gdesklets/NullObject.py W: gdesklets symlink-should-be-relative /usr/bin/gdesklets /usr/lib/gdesklets/gdesklets They could be and should be fixed.
(In reply to comment #24) > configure gives a warning: > > configure: WARNING: you should use --build, --host, --target > > Is that really ignorable? No, it's a bug inside of the spec. The cause is a stray "noreplace" in the %configure line. I have no idea what this is supposed to mean, but I know for sure, it disturbs autoconf - Simply remove it. Further issue: The tarball is called gDesklets, while the package is called gdesklets. IMO, the package therefore should be called gDesklets.
Created attachment 121307 [details] updated gdesklets.spec 2005-11-21 New src build: http://finalzone.webmasterswebworkshop.com/Fedora/gdesklets-0.35.2-10.src.rpm About spec name, I though it should be in lowercase according to the guideline. (In reply to comment #25) >The cause is a stray "noreplace" in the %configure line. I have no idea what >this is supposed to mean, but I know for sure, it disturbs autoconf - Simply >remove it. I removed "noreplace" but the same warning is there. Therefore the bug is with %configure.
Just to let know that I signed CLA. I habe been busy lately. Currently. I couldn't find what cause error on comment 21. Perhaps I should rework %install. Since it is my first package, I have no clue what to do.
Created attachment 121601 [details] generated gdesklets.spec
Created attachment 121613 [details] generated gdesklets.spec
Created attachment 121614 [details] patch against NullObject.py
Created attachment 121615 [details] Updated patch Try this patch
Created attachment 121645 [details] updated spec
Patches works great. Unfortunately, I have hard time to figure out about symlink even with theses under %install: mkdir -p ${RPM_BUILD_ROOT}{%{_bindir}} ln -sf %{_libdir}/%{name}/%{name} ${RPM_BUILD_ROOT}%{_bindir}/%{name} rpmlint will give this message even though this line show symbolic link. Is rpmlint wrong or buggy
Update. Succesfully passed rpmlint. It tooks me 20 built for that tiny details :/. Seems to be mediocre for a first built package. Any way, here is the updated spec and srpms. http://finalzone.webmasterswebworkshop.com/Fedora/gdesklets.spec http://finalzone.webmasterswebworkshop.com/Fedora/gdesklets-0.35.2-20.src.rpm
Luya, please do not import packages until someone gives an explicit "APPROVED" message here. #%_install #rm -rf ${RPM_BUILD_ROOT} #make -e install DESTDIR=${RPM_BUILD_ROOT} Why is this in the spec when it does nothing? [ -n $RPM_BUILD_ROOT -a $RPM_BUILD_ROOT != / ] && rm -rf $RPM_BUILD_ROOT This can always be simplified to rm -rf $RPM_BUILD_ROOT. You may want to make it look just like the one in %clean. Keep things consistent. Most specs don't have an excessive use of {}'s around env var names, although it doesn't hurt I guess.
My bad, Warren. I was too impatient to test cvs command. I forgot to remove these mentionned lines being to excited to finally get gdesklets passing rpmlint. gdesklets spec was a bit challenging than I expected especially the symlink problem I faced. I have to start somewhere. Latest update with cleaned spec: http://finalzone.webmasterswebworkshop.com/Fedora/gdesklets.spec http://finalzone.webmasterswebworkshop.com/Fedora/gdesklets-0.35.2-21.src.rpm
- desktop-file-utils is missing from BuildRequires With that fixed gdesklets builds in mock and runs, although I have a few problems with it here and there that aren't related to the packaging. Once that issue is corrected the package is APPROVED.
Updated specs and rebuild srpm. http://finalzone.webmasterswebworkshop.com/Fedora/gdesklets-0.35.2-22.src.rpm
This spec file may need to be reworked to use the new modular X BuildRequires for the devel branch or somesuch tweaks. According to the build system it failed a build in the development branch: http://buildsys.fedoraproject.org/build-status/job.psp?uid=1947 http://buildsys.fedoraproject.org/logs/fedora-development-extras/1947-gdesklets-0.35.2-22.fc5/ppc/root.log The error: Error: Missing Dependency: libdrm.so.1 is needed by package mesa-libGL Indicates that there are some packages requirements that aren't being met by the BuildRequires in the devel branch on the ppc architecture. They either need to be added, or ppc needs to be excluded from the build. http://fedoraproject.org/wiki/Extras/NewPackageProcess is ambiguous on whether a Review Request can be closed NEXTRELEASE before a successful build in the devel branch.
I got that same issue when yum updating my rawhide system last night. libdrm (scary name, btw ;) has been updated and no longer provides libdrm.so.1 - but mesa-libGL has not yet been rebuilt against it. Requesting the build again after mesa-libGL has been rebuilt may be all that is needed. I agree though that it should probably not be closed until it does actually build.
Now fixed.
it does not start on fc4 x86_64 it says "connection to daemon" bu it never finish. here are the strace output: socket(PF_FILE, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_FILE, path="/home/dragoran/.gdesklets/sockets/:0.0"}, 40) = -1 ENOENT (No such file or directory) close(4) = 0 select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout) Verbinden mit Daemon [ ### ]) = 37 "..., 37 socket(PF_FILE, SOCK_STREAM, 0) = 4 connect(4, {sa_family=AF_FILE, path="/home/dragoran/.gdesklets/sockets/:0.0"}, 40) = -1 ENOENT (No such file or directory) close(3) = 0 select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout) Verbinden mit Daemon [### ]) = 37 "..., 37 socket(PF_FILE, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_FILE, path="/home/dragoran/.gdesklets/sockets/:0.0"}, 40) = -1 ENOENT (No such file or directory) close(4) = 0 select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout) Verbinden mit Daemon [ ### ]) = 37 "..., 37 socket(PF_FILE, SOCK_STREAM, 0) = 4 connect(4, {sa_family=AF_FILE, path="/home/dragoran/.gdesklets/sockets/:0.0"}, 40) = -1 ENOENT (No such file or directory) close(3) = 0 select(0, NULL, NULL, NULL, {0, 100000} <unfinished ...>
This bug entry is for the review of the package. Please put bug reports in their own independent entries.
Changed summary for tracking purposes.
unsetting cvs request, Please reset with an actual request