Spec Url: http://adslpipe.co.uk/fedora/extras/eiciel/eiciel.spec SRPM Url: http://adslpipe.co.uk/fedora/extras/eiciel/eiciel-0.9-4.src.rpm Description: Eiciel is a graphical editor for access control lists either as an extension within nautilus, or as a standalone utility. Notes: This is my first package, so I thoroughly expect you to easily be able to pull holes in it ;-) Comments gratefully received, hints even more gratefully received. One step which I don't know how to handle at the moment, after installing the RPM you need to "killall nautilus" so that it picks up the new extensions, obviously it wouldn't be particularly friendly to do that in a post script! I've only built and run it on rawhide x86_64 so far, can't install an i386 machine until rawhide is in a better mood. I've done an rpmlint on it, two errors, one warning E: eiciel standard-dir-owned-by-package /usr/share/man E: eiciel standard-dir-owned-by-package /usr/share/man/man1 I tried to fix the errors by changing the %files under %{_mandir} but it doesn't seem to have helped. W: eiciel devel-file-in-non-devel-package /usr/lib64/nautilus/extensions-1.0/libeiciel-nautilus.a I'm not sure if the warning is significant, I can't see having an eiciel-devel package being very likely, should the .a file stay or go, or the warning be ignored?
Created attachment 124065 [details] Screenshot of eiciel dialog in nautilus
To see the extra ACL properties tab within nautilus you need at least one of your filesystems to be mounted with "-o acl" A basic familiarity with getfacl/setfacl would be useful too http://acl.bestbits.at/
Just to note that I've now built and installed this on rawhide i386 too. In addition I've uploaded the x86_64 and i386 RPMS to http://adslpipe.co.uk/fedora/extras/eiciel The gcc4.1 patch has been accepted upstream, so will disappear for 0.9.1 Talking with the developer the .a library which causes the rpmlint warning is probably best removed from the RPM, is there a way to ignore it in the %files section, or just "rm" it after "make" and before "make install" I'm still getting the rpmlint errors about ownership of the man files, also when I tried an rpmbuild --rebuild of the SRPM file on i386 I got a warning about the man file being present twice.
(In reply to comment #3) > Talking with the developer the .a library which causes the rpmlint warning is > probably best removed from the RPM, is there a way to ignore it in the %files > section, or just "rm" it after "make" and before "make install" You can either remove it in %install, or use %exclude for the file in the %files list. > I tried an rpmbuild --rebuild of the SRPM file on i386 I got a warning about the > man file being present twice. %{_mandir}/man1/eiciel* is also included as part of %{_datadir}/* Be more specific in what you're including in the files list.
Thanks for that ... I've excluded the .a file, and been more specific about the %files now it builds and rebuilds clean on i386 and x86_64 plus rpmlint is silent. I presume that because %doc matches all the files under /usr/share/doc it's best to remove my (currently commented) %{_datadir}/doc/eiciel*/* Similarly I believe that RPM is clever enough to work out the Requires: for itself, so my commented Requires: should be removed too? Or if it's not so clever as I've assumed I should check more closely the actual Requires: I only get a -debuginfo package produced on x86_64, does that indicate a problem? All files refreshed to http://adslpipe.co.uk/fedora/extras/eiciel I think I should go through a typical review checklist in a "muttering to myself" fashion ...
(In reply to comment #5) > I presume that because %doc matches all the files under /usr/share/doc it's best > to remove my (currently commented) %{_datadir}/doc/eiciel*/* Yes. > Similarly I believe that RPM is clever enough to work out the Requires: for > itself, so my commented Requires: should be removed too? Or if it's not so > clever as I've assumed I should check more closely the actual Requires: Look at the dependencies of your built package: $ rpm -qp --requires /path/to/eiciel*.x86_64.rpm There should be dependencies for the required shared libraries, normally satisfied by the libacl, libattr, and gnome-vfs2 packages, so there should be no need to explictly require these packages. > I only get a -debuginfo package produced on x86_64, does that indicate a problem? Maybe you don't have redhat-rpm-config installed on your i386 system? > All files refreshed to http://adslpipe.co.uk/fedora/extras/eiciel > > I think I should go through a typical review checklist in a "muttering to > myself" fashion ... That's always a good idea. http://fedoraproject.org/wiki/Packaging/ReviewGuidelines
******* SELF REVIEW ****** - MUST: rpmlint must be run on every package. The output should be posted in the review. # rpmlint -v eiciel-0.9-5.x86_64.rpm I: eiciel checking seems nice # rpmlint -v eiciel-0.9-5.i386.rpm I: eiciel checking W: eiciel unstripped-binary-or-object /usr/lib/nautilus/extensions-1.0/libeiciel-nautilus.so.0.0.0 W: eiciel unstripped-binary-or-object /usr/bin/eiciel so why did this happen on i386 but not x86_64, I have a pretty mininal install on i386, some -devel tool missing perhaps? # rpmlint -v eiciel-0.9-5.src.rpm I: eiciel checking W: eiciel strange-permission eiciel-gcc41.patch 0646 ok, my original file, I did chmod it when passing it between root and another user, what is normal? 644? - MUST: The package must be named according to the Package Naming Guidelines. I beieve this is straighforward "eiciel" though I do keep mistyping it :-) I see that the template .spec file does use %{?dist} take, but I don't get .fc5 in make RPMs is that ok for me, will it be ok in buildsys? - MUST: The spec file name must match the base package %{name}, in the format %{name}.spec "eiciel.spec", tick - MUST: The package must meet the Packaging Guidelines. hmm, should I really treat the packaging guidelines as a checklist within a checklist? - 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. Copying file is GPL2, most cpp/hpp files have explicit GPL2 in them, necessary to check them all individually? - MUST: The License field in the package spec file must match the actual license. GPL, tick - 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. COPYING in %doc - MUST: The spec file must be written in American English. tick - MUST: The spec file for the package MUST be legible. If the reviewer is unable to read the spec file, it will be impossible to perform a review. Fedora Extras is not the place for entries into the Obfuscated Code Contest ([WWW] http://www.ioccc.org/). I hope it's clean, I'll remove my commented section(s) following advice - MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use md5sum for this task. hmm, kind of like marking my own essay, but a083609380ec8272b3693cbaee184f13 eiciel-0.9.tar.bz2 - MUST: The package must successfully compile and build into binary rpms on at least one supported architecture. i386 and x86_64 - MUST: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch. Each architecture listed in ExcludeArch needs to have a bug filed in bugzilla, describing the reason that the package does not compile/build/work on that architecture. The bug number should then be placed in a comment, next to the corresponding ExcludeArch line. New packages will not have bugzilla entries during the review process, so they should put this description in the comment until the package is approved, then file the bugzilla entry, and replace the long explanation with the bug number. The bug should be marked as blocking one (or more) of the following bugs to simplify tracking such issues: [WWW] FE-ExcludeArch-x86, [WWW] FE-ExcludeArch-x64, [WWW] FE-ExcludeArch-ppc status unknown on other arches so far - MUST: A package must not contain any BuildRequires that are listed in the exceptions section of Packaging Guidelines. tick - MUST: All other Build dependencies must be listed in BuildRequires. hmm, fedora-rmdevelrpms wanted to remove packages that would cause broken dependencies, I guess I need to setup mock to test this? - MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden. got me bang to rights there, I'll look at how it's done - MUST: If the package contains shared library files located in the dynamic linker's default paths, that package must call ldconfig in %post and %postun. my .so files stay well clear of /bin and /usr/bin is that enough? - 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. tick - MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. The exception to this are directories listed explicitly in the Filesystem Hierarchy Standard ([WWW] http://www.pathname.com/fhs/pub/fhs-2.3.html), as it is safe to assume that those directories exist. is this talking about directories it creates at runtime, or install time, what about my dirs e.g /usr/share/eiceil ? - MUST: A package must not contain any duplicate files in the %files listing. tick, thanks paul - MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line. hmmm, I din't make any change from the defattr the template gave me, presume I've got some work to do here? - MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). tick - MUST: Each package must consistently use macros, as described in the macros section of Packaging Guidelines. I hope the mix of $XXX and %{xxx} that the template started with is allowed? - MUST: The package must contain code, or permissable content. This is described in detail in the code vs. content section of Packaging Guidelines. no pr0n, tick - MUST: Large documentation files should go in a -docs subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity) not needed - MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present. tick - MUST: Header files or static libraries must be in a -devel package. removed - MUST: Files used by pkgconfig (.pc files) must be in a -devel package. n/a - 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. but softlinks without suffix, pointing to the files with suffix are ok, right? - MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency. n/a - MUST: Packages must NOT contain any .la libtool archives, these should be removed in the spec. guilty, I'll exclude it then - 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. This is described in detail in the desktop files section of Packaging Guidelines. If you feel that your packaged GUI application does not need a .desktop file, you must put a comment in the spec file with your explanation. Ok, need to add this, it can be run standalone as well as from properties in nautilus - MUST: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora Extras should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time. think i'm clear here - SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. n/a - SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available. none provided - SHOULD: The reviewer should test that the package builds in mock. not done so yet - SHOULD: The package should compile and build into binary rpms on all supported architectures. i386 and x86_64 so far - SHOULD: The reviewer should test that the package functions as described. A package should not segfault instead of running, for example. works for me, provided you have a filesystem mounted "-o acl" but doesn't crash even if you don't - SHOULD: If scriptlets are used, those scriptlets must be sane. This is vague, and left up to the reviewers judgement to determine sanity. none - SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency. n/a OK, so I've found a few things to change :-) better to eat my time first!
Just made some changes and uploaded to the usual place installing redhat-rpm-config fixed a thing or two on the i386 box Last time around I didn't rpmlint the -debuginfo RPM, I did this time and I get # rpmlint -v eiciel-debuginfo-0.9-6.x86_64.rpm I: eiciel-debuginfo checking W: eiciel-debuginfo objdump-failed is that another worry? http://www.google.com/search?&q=rpmlint%20objdump-failed returns a googlewhack :-(
Ok, final update for tonight, all files updated on website 64bit machine ============= # rpmlint -v RPMS/x86_64/eiciel-0.9-7.x86_64.rpm I: eiciel checking # rpmlint -v RPMS/x86_64/eiciel-debuginfo-0.9-7.x86_64.rpm I: eiciel-debuginfo checking W: eiciel-debuginfo objdump-failed # rpmlint -v SRPMS/eiciel-0.9-7.src.rpm I: eiciel checking I notice a error to do with extraxting debug information /usr/lib/rpm/find-debuginfo.sh /usr/src/redhat/BUILD/eiciel-0.9 extracting debug info from /var/tmp/eiciel-0.9-7-root-root/usr/bin/eiciel extracting debug info from /var/tmp/eiciel-0.9-7-root-root/usr/lib64/nautilus/extensions-1.0/libeiciel-nautilus.so.0.0.0 cpio: eiciel-0.9/src/<built-in>: No such file or directory 227 blocks I though this was due to not havinf 755 permissions on the .so* file but I can't seem to get rid of it. 32bit machine ============= # rpmlint -v RPMS/i386/eiciel-0.9-7.i386.rpm I: eiciel checking W: eiciel unstripped-binary-or-object /usr/lib/debug/usr/lib/nautilus/extensions-1.0/libeiciel-nautilus.so.0.0.0.debug W: eiciel objdump-failed W: eiciel unstripped-binary-or-object /usr/lib/debug/usr/bin/eiciel.debug E: eiciel statically-linked-binary /usr/lib/debug/usr/bin/eiciel.debug # rpmlint -v RPMS/i386/eiciel-debuginfo-0.9-7.i386.rpm I: eiciel-debuginfo checking W: eiciel-debuginfo objdump-failed # rpmlint -v SRPMS/eiciel-0.9-7.src.rpm I: eiciel checking Desktop Icon ============ Is the way I use "install" to copy the .png icon clean enough? The eiciel icon appears under "Other" on the Applications menu, presumble I need to change the way I use "desktop-file-install"? Mock ==== Still not tried building in mock Other ===== Any answers/hints/comments on my questions in my "self review" welcome
You might want to add the GNOME and System categories.
The strange objdump stuff is because your %files section includes %{_libdir}/* -- this then picks up the stuff under /usr/lib/debug which should only be in the -debuginfo package. Changing your files section to list things more explicitly should help there.
Created attachment 124962 [details] Patch fixing a few spec issues * Don't include debuginfo in main package * Make files list more specific * Fix directory ownership * Add missing buildreq nautilus Package now builds in mock and has only one rpmlint warning (from the debuginfo package), which I don't really understand.
(In reply to comment #7) > # rpmlint -v eiciel-0.9-5.src.rpm > I: eiciel checking > W: eiciel strange-permission eiciel-gcc41.patch 0646 > > ok, my original file, I did chmod it when passing it between root and another > user, what is normal? 644? Yes. > I see that the template .spec file does use %{?dist} take, but I don't get .fc5 > in make RPMs is that ok for me, will it be ok in buildsys? You'll get them if you build it in mock, which includes the buildsys macros. So it'll be alright in the buildsys. > - MUST: The package must meet the Packaging Guidelines. > > hmm, should I really treat the packaging guidelines as a checklist within a > checklist? Memorise the guidelines and bear them in mind when writing specs ;-) > - 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. > > Copying file is GPL2, most cpp/hpp files have explicit GPL2 in them, necessary > to check them all individually? Up to you. If the package has a README or equivalent that says what the license for the package as a whole is, that will usually do. > - MUST: The spec file for the package MUST be legible. If the reviewer is > unable to read the spec file, it will be impossible to perform a review. Fedora > Extras is not the place for entries into the Obfuscated Code Contest ([WWW] > http://www.ioccc.org/). > > I hope it's clean, I'll remove my commented section(s) following advice Comments are OK, particularly if you do something "unusual" in a spec. > - MUST: All other Build dependencies must be listed in BuildRequires. > > hmm, fedora-rmdevelrpms wanted to remove packages that would cause broken > dependencies, I guess I need to setup mock to test this? Yes. A test build in mock revealed that a buildreq of nautilus was needed. > - MUST: If the package contains shared library files located in the > dynamic linker's default paths, that package must call ldconfig in %post and > %postun. > > my .so files stay well clear of /bin and /usr/bin is that enough? The "dynamic linker's default path" are the directories listed in /etc/ld.so.conf, not /bin, /usr/bin etc. > - MUST: A package must own all directories that it creates. If it does not > create a directory that it uses, then it should require a package which does > create that directory. The exception to this are directories listed explicitly > in the Filesystem Hierarchy Standard ([WWW] > http://www.pathname.com/fhs/pub/fhs-2.3.html), as it is safe to assume that > those directories exist. > > is this talking about directories it creates at runtime, or install time, what > about my dirs e.g /usr/share/eiceil ? It's talking about either. You need to own /usr/share/eiceil for instance so that the directory will be removed if the package is removed. > - MUST: Permissions on files must be set properly. Executables should be > set with executable permissions, for example. Every %files section must include > a %defattr(...) line. > > hmmm, I din't make any change from the defattr the template gave me, presume > I've got some work to do here? I don't think so. There don't appear to be any permissions issues that I can see. > - MUST: Each package must consistently use macros, as described in the > macros section of Packaging Guidelines. > > I hope the mix of $XXX and %{xxx} that the template started with is allowed? Yes. Just don't mix variables and macros that do the same thing, e.g. $RPM_BUILD_ROOT and %{buildroot} or $RPM_OPT_FLAGS and %{optflags}. > - 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. > > but softlinks without suffix, pointing to the files with suffix are ok, right? I don't know if /usr/lib/nautilus/extensions-1.0/libeiciel-nautilus.so should be in a -devel package or not; I don't know enough about shared objects to say. > - MUST: Packages must not own files or directories already owned by other > packages. The rule of thumb here is that the first package to be installed > should own the files or directories that other packages may rely upon. This > means, for example, that no package in Fedora Extras should ever share ownership > with any of the files or directories owned by the filesystem or man package. If > you feel that you have a good reason to own a file or directory that another > package owns, then please present that at package review time. > > think i'm clear here I don't think so. You package currently claims everything under %{_libdir}, which includes /usr/lib/nautilus, owned by nautilus.
Is this still your first package? If so, you should add the bug FE-NEEDSPONSOR to the list of bugs this one blocks. Otherwise, it looks ready (IMHO, and after updating to 0.9.2) for a review. I didn't install and try it out -- though I would have liked to -- due to this bit on the app's site: "June 24th 2006 Eiciel 0.9.2 is out! This is just a small bugfix release for GNOME 2.14 users. Nautilus will not hang now when the user opens properties of Computer, Home or Trash locations in Nautilus (including the Desktop)."
(In reply to comment #14) > Is this still your first package? yes it is > If so, you should add the bug FE-NEEDSPONSOR > to the list of bugs this one blocks. Ok, thanks for the prod, I'll update to latest source, push new versions, and then add the blocker
I've updated the package to 0.9.2 and taken on board remaining comments received so far, I've uploaded the SRPM and FC5 i386 RPMs to http://adslpipe.co.uk/fedora/extras/eiciel/eiciel-0.9.2-3.src.rpm http://adslpipe.co.uk/fedora/extras/eiciel/eiciel-0.9.2-3.i386.fc5.rpm http://adslpipe.co.uk/fedora/extras/eiciel/eiciel-debuginfo-0.9.2-3.i386.fc5.rpm I will build RPMs for FC5 x86_64 and FC6T1 i386 tomorrow
It took an extra version bump to build it for x86_64 0.9.2-4 SRPM and i386/x86_64 RPMs available at http://adslpipe.co.uk/fedora/extras/eiciel
OK, I've taken on-board comments made by Michael Schwendt, spec file tidied up, rebuilt and checked on FC5/i386, FC6-rawhide/i386 and FC5/x86_64 rpmlint is now silent, also I've done rpm2cpio xxx.rpm | cpio -itv to check the files and directories inside the rpm make sense to me. SPEC: http://adslpipe.co.uk/fedora/extras/eiciel/eiciel.spec SRPM: http://adslpipe.co.uk/fedora/extras/eiciel/eiciel-0.9.2-5.src.rpm I'd really appreciate any informal review(s), prior to seeking a formal review and sponsor for this package :-)
My $0.02. Note this is not a "you will be asked to change" but just a stylistic suggestion: split the BuildRequires line into multiple BReq lines < 80 chars in length. Makes things easier to read. For that matter, having standard-width lines wherever practical makes things a touch easier... That being said, I have eiciel built and installed from your package. Tho I'm only using it casually right now, it does appear to be working quite nicely :)
== Not an official review as I'm not yet sponsored == Mock build for development i386 is sucessfull * MUST Items: - MUST: rpmlint shows no error. - MUST: dist tag is present. - MUST: The package is named according to the Package Naming Guidelines. - MUST: The spec file name matching the base package eiciel, in the format eiciel.spec. - MUST: This package meets the Packaging Guidelines. - MUST: The package is licensed with an open-source compatible license GPL. - MUST: This package includes License file COPYING. - MUST: The sources used to build the package matches the upstream source, as provided in the spec URL. md5sum is correct (72576cce092ff36a4fef0311bdc0dede) - MUST: This package owns all directories that it creates. - MUST: This package did not contain any duplicate files in the %files listing. - MUST: This package have a %clean section, which contains rm -rf $RPM_BUILD_ROOT. - MUST: This package used macros. - MUST: Document files are included like README. - MUST: Package did NOT contained any .la libtool archives. * Source URL is present and working. * BuildRoot is correct BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) * BuildRequires is correct What you need to do:- I am not able to see Desktop file installed and can be executed from Application->Accessories You need to add following lines Requires(post): desktop-file-utils Requires(postun): desktop-file-utils ... %post update-desktop-database &> /dev/null ||: %postun update-desktop-database &> /dev/null ||: see http://fedoraproject.org/wiki/ScriptletSnippets
Doesn't sound right, because update-desktop-database is for MIME types. It does not make a hidden or non-existant menu entry become visible. FYI: http://fedoraproject.org/wiki/ScriptletSnippets
(In reply to comment #20) > What you need to do:- > I am not able to see Desktop file installed and can be executed from > Application->Accessories It's under Applications->System Tools :) And, FWIW, works here.
Review: - rpmlint clean - package and spec file naming OK - package meets guidelines - license is GPL, matches spec, text included - spec file written in English and is quite legible - sources match upstream - package builds OK on FC5(i386) and in mock for rawhide(i386) - buildreqs OK, but could be trimmed - locales handled properly - no shared libraries in default paths - not relocatable - no directory ownership or permissions issues - %clean section present and correct - macro usage is consistent, apart from a couple of commented-out lines, which should probably be dropped from the spec - code, not content - docs OK - no devel files to consider - no subpackages to consider - no libtool archives - desktop file installed properly - no scriptlets Needswork: - The full contents of the NEWS file is "Refer to ChangeLog" There is no point packaging this file. - Duplicate files: there are a number of images present in both %{_datadir}/%{name}/doc/C/figures and %{_datadir}/%{name}/img; could these be replaced with links? Suggestions: I agree with Comment #19 that you should try to avoid lines longer than 80 characters if possible. This helps make the spec file more legible. You could drop the buildreqs on gnome-vfs2-devel and libattr-devel as they are pulled in by libgnomeui-devel and libacl-devel respectively, which would help with the line length. I'm also seeing the issue from Comment #20 where the application is not appearing in my menus. Running update-desktop-database doesn't fix it (no surprise there) and I expect I'll have to log out and back in before I see it. Running the application manually, I'm not able to open anything, possibly due to lack of acl support in the filesystems I'm using?
This review appears to be stalled, with no response from the submitter for over a month. Please provide an update soon.
Ticket closed due to lack of submitter response as per the stalled review policy (http://fedoraproject.org/wiki/Extras/Policy/StalledReviews). If someone would like to submit a new version of this package for review, please mark this ticket as a duplicate of the new one so that reviewers of the new ticket can easily find the work that was done on this one.
Why isn`t this package in the Fedora Extras repo? it seems to work fine for me..
The submitter made no response to the questions brought up during review of the package (Comment #23) and so the submission was eventually abandoned. This enables any other interested party to make their own submission if they would like to maintain the package in Extras.
*** This bug has been marked as a duplicate of 214746 ***