Bug 241279
Summary: | Review Request: avr-libc - C library for use with GCC on Atmel AVR microcontrollers | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Hans de Goede <hdegoede> | ||||
Component: | Package Review | Assignee: | Michael E Brown <mebrown> | ||||
Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Package Reviews List <fedora-package-review> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | rawhide | CC: | thibault.north, trond.danielsen | ||||
Target Milestone: | --- | Flags: | mebrown:
fedora-review+
tcallawa: fedora-cvs+ |
||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2007-07-26 13:23:32 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: | |||||||
Attachments: |
|
Description
Hans de Goede
2007-05-24 19:21:19 UTC
Created attachment 155394 [details]
Fixes wrong encoding in documentation.
The problem with the PDF and the PS output is related to some non-unicode chars
in several parts of the code. The attached patch fixes these issues. I also had
to remove %{_smpflags} to make the package build.
(In reply to comment #1) > Created an attachment (id=155394) [edit] > Fixes wrong encoding in documentation. > > The problem with the PDF and the PS output is related to some non-unicode chars > in several parts of the code. The attached patch fixes these issues. Ah thanks, we do need to add a BR: tetex-latex then, but thats ok I guess. I do have the feeling that having both ps and pdf is a bit overkill though, what do you think? Maybe put the html, ps and pdf in a -docs sub package and only keep the man pages in the main package? > I also had > to remove %{_smpflags} to make the package build. My bad, I put %_smp_mflags -j1 in my ~/.rpmmacros to compile some heavy c++ code (using lots of memory) and never changed it back. (In reply to comment #1) > Created an attachment (id=155394) [edit] > Fixes wrong encoding in documentation. > > The problem with the PDF and the PS output is related to some non-unicode chars > in several parts of the code. The attached patch fixes these issues. I also had > to remove %{_smpflags} to make the package build. Thanks! Here is a new version with pdf docs and smpflags removed: Spec URL: http://people.atrpms.net/~hdegoede/avr-libc.spec SRPM URL: http://people.atrpms.net/~hdegoede/avr-libc-1.4.6-2.fc8.src.rpm Some remarks: * I'd recommend to let the *-docs package put its doc files into /usr/share/doc/avr-libc-%version * I don't think shipping the man pages in /usr/share/doc/avr-libc-%version/man is a good idea. It will break avr-man when installing the rpm w/ --exclude-docs I'd put them somewhere else, e.g. /usr/share/avr-libc, /usr/avr/share/man or even /usr/avr/sys-root/usr/share/man. I'd use /usr/avr/share/man. Other issues: Shouldn't avr-gcc "Require avr-libc"? (In reply to comment #4) > Some remarks: > Thanks! I won't have time to work on this the coming week though, as I'm out of town. > * I'd recommend to let the *-docs package put its doc files into > /usr/share/doc/avr-libc-%version > Erm, I'm always fighting with %doc, I think %doc needs some docs :) So how do I do this? Install them there in %install and then use %doc with a full path, should do the trick, correct? > * I don't think shipping the man pages in /usr/share/doc/avr-libc-%version/man > is a good idea. It will break avr-man when installing the rpm w/ --exclude-docs > > I'd put them somewhere else, e.g. /usr/share/avr-libc, /usr/avr/share/man or > even /usr/avr/sys-root/usr/share/man. I'd use /usr/avr/share/man. > Ok /usr/avr/share/man sounds good. > Other issues: Shouldn't avr-gcc "Require avr-libc"? > It will, once avr-libc is in the repo, I had to get a not requiring version in the repo first because of the chicken and the egg. (In reply to comment #4) > Some remarks: > > * I'd recommend to let the *-docs package put its doc files into > /usr/share/doc/avr-libc-%version > I'm afraid thats impossible, as rpmbuild erases that dir before checking %files: Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.46262 + umask 022 + cd /home/hans/projects/fedora-extras/wip/avr-libc + cd avr-libc-1.4.6 + DOCDIR=/var/tmp/avr-libc-1.4.6-3.fc8-hans/usr/share/doc/avr-libc-1.4.6 + export DOCDIR + rm -rf /var/tmp/avr-libc-1.4.6-3.fc8-hans/usr/share/doc/avr-libc-1.4.6 + /bin/mkdir -p /var/tmp/avr-libc-1.4.6-3.fc8-hans/usr/share/doc/avr-libc-1.4.6 So writing "%doc /usr/share/doc/avr-libc-docs-1.4.6/foo" won't work because if foo was installed there it will be erased. And using %doc foo, will make it end up as /usr/share/doc/avr-libc-docs-1.4.6/foo > * I don't think shipping the man pages in /usr/share/doc/avr-libc-%version/man > is a good idea. It will break avr-man when installing the rpm w/ --exclude-docs > > I'd put them somewhere else, e.g. /usr/share/avr-libc, /usr/avr/share/man or > even /usr/avr/sys-root/usr/share/man. I'd use /usr/avr/share/man. > Here is a new version which moves the manpages to /usr/avr/share/man, Trond any chance you could review this? Spec URL: http://people.atrpms.net/~hdegoede/avr-libc.spec SRPM URL: http://people.atrpms.net/~hdegoede/avr-libc-1.4.6-3.fc8.src.rpm (In reply to comment #6) > So writing "%doc /usr/share/doc/avr-libc-docs-1.4.6/foo" won't work because if > foo was installed there it will be erased. FWIW, I think rpmbuild does the remove only if the specfile contains any "special %doc" directives, ie. "%doc foo" without an absolute path. See build/files.c in rpm sources. http://fedoraproject.org/wiki/Packaging/ReviewGuidelines MUST ITEMS: * rpmlint results: -> should fix manpages to be zipped, (see below) $ rpmlint avr-libc-1.4.6-3.fc8.src.rpm E: avr-libc configure-without-libdir-spec $ rpmlint RPMS/noarch/avr-libc-1.4.6-3.fc7.noarch.rpm W: avr-libc devel-file-in-non-devel-package /usr/avr/include/avr/iomxxhva.h --> repated for all .h files --> This looks OK to me, I dont see that it makes sense to split into avr-libc-devel W: avr-libc manpage-not-gzipped /usr/avr/share/man/man3/strsep.3 --> repeated for all manpages --> This looks like it should be fixed. E: avr-libc arch-independent-package-contains-binary-or-object /usr/avr/lib/avr3/crt43355.o --> repeated for all .o/.a files --> This look OK, as this is truly arch-indep and used for cross-compiling. W: avr-libc non-standard-dir-in-usr avr --> Not sure about this, looks ok (probably needs to be added to packaging guidelines) $ rpmlint RPMS/noarch/avr-libc-docs-1.4.6-3.fc7.noarch.rpm (no output) http://fedoraproject.org/wiki/Packaging/ReviewGuidelines Here are all the MUST items that have problems - MUST: The License field in the package spec file must match the actual license. --> NOT OK: project: modified BSD, package spec: GPL - MUST: Header files must be in a -devel package. --> hmm... discuss? (see rpmlint output) - MUST: Static libraries must be in a -static package. --> hmm... discuss? (see rpmlint output) Possible solution: split out -devel package and have avr-libc require: avr-libc-devel? Or possibly just rename the package. - MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} --> GOOD (no -devel package, but maybe need one considering other review items) - MUST: Packages must not own files or directories already owned by other packages. --> BAD $ rpm -qf /usr/avr avr-binutils- 2.17-3.fc7.x86_64 avr-libc- 1.4.6-1.x86_64 Here is the entire list of MUST items for completeness (including items above which have already been pointed out) http://fedoraproject.org/wiki/Packaging/ReviewGuidelines - MUST: The spec file name must match the base package %{name}, in the format %{name}.spec --> GOOD - 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. --> GOOD - MUST: The License field in the package spec file must match the actual license. --> NOT OK: project: modified BSD, package spec: GPL- 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. --> GOOD - MUST: The spec file must be written in American English. --> GOOD - MUST: The spec file for the package MUST be legible. --> GOOD - MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. --> GOOD (md5sum match) - MUST: The package must successfully compile and build into binary rpms on at least one supported architecture. --> GOOD - MUST: If the package does not successfully compile, build or work on an architecture --> no exclude-arch, GOOD - MUST: All build dependencies must be listed in BuildRequires --> GOOD - MUST: The spec file MUST handle locales properly. --> GOOD (no locales) - MUST: Every binary RPM package which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. --> GOOD (no shared libs) - MUST: If the package is designed to be relocatable, --> GOOD (not relocatable) - MUST: A package must own all directories that it creates. --> GOOD (everything under /usr/avr) - MUST: A package must not contain any duplicate files in the %files listing. --> GOOD - MUST: Permissions on files must be set properly. --> GOOD - MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). --> GOOD - MUST: Each package must consistently use macros, as described in the macros section of Packaging Guidelines. --> GOOD - MUST: The package must contain code, or permissable content. --> GOOD - MUST: Large documentation files should go in a -doc subpackage. --> GOOD (-doc subpackage) - MUST: If a package includes something as %doc, it must not affect the runtime of the application. --> GOOD - MUST: Header files must be in a -devel package. --> hmm... discuss? - MUST: Static libraries must be in a -static package. --> hmm... discuss? - MUST: Packages containing pkgconfig(.pc) files --> GOOD (no pc files) - 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. --> GOOD - MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} --> GOOD (no -devel package, but maybe need one considering other review items) - MUST: Packages must NOT contain any .la libtool archives, these should be removed in the spec. --> GOOD - MUST: Packages containing GUI applications must include a %{name}.desktop file, --> GOOD (no GUI) - MUST: Packages must not own files or directories already owned by other packages. --> BAD $ rpm -qf /usr/avr avr-binutils- 2.17-3.fc7.x86_64 avr-libc- 1.4.6-1.x86_64 - MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} --> GOOD - MUST: All filenames in rpm packages must be valid UTF-8. --> GOOD. http://fedoraproject.org/wiki/Packaging/ReviewGuidelines SHOULD items (no problems 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. --> GOOD - SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available. --> Ok (no translations) - SHOULD: The reviewer should test that the package builds in mock. --> builds - SHOULD: The package should compile and build into binary rpms on all supported architectures. --> cant check this myself. - SHOULD: The reviewer should test that the package functions as described. A package should not segfault instead of running, for example. --> works ok for me. - SHOULD: If scriptlets are used, those scriptlets must be sane. --> no scriptlets - SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency. --> no subpackages - SHOULD: The placement of pkgconfig(.pc) files depends on their usecase, --> no pc files - SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, --> no additional deps. file ownership issue possibly not an issue: http://fedoraproject.org/wiki/Packaging/Guidelines#head-a5931a7372c4a00065713430984fa5875513e6d4 ============================================== Another exception for directory ownership in packages is when there is no clear dependency hierarchy. An example: Foo-Animal-Emu puts files into /usr/share/Foo/Animal/Emu Foo-Animal-Llama puts files into /usr/share/Foo/Animal/Llama Neither package depends on the other one. Neither package depends on any other package which owns the /usr/share/Foo/Animal/ directory. In this case, each package must own the /usr/share/Foo/Animal/ directory. ============================================== (In reply to comment #9) > http://fedoraproject.org/wiki/Packaging/ReviewGuidelines > > Here are all the MUST items that have problems > > - MUST: The License field in the package spec file must match the actual license. > --> NOT OK: project: modified BSD, package spec: GPL > Oops, good catch, will fix > - MUST: Header files must be in a -devel package. > --> hmm... discuss? (see rpmlint output) > > - MUST: Static libraries must be in a -static package. > --> hmm... discuss? (see rpmlint output) > > Possible solution: split out -devel package and have avr-libc require: > avr-libc-devel? Or possibly just rename the package. > As already explained in the mailinglist discussion, the guidelines or just plain bogus in this (exceptional) case, just ignore them. > - MUST: Packages must not own files or directories already owned by other packages. > --> BAD > $ rpm -qf /usr/avr > avr-binutils- 2.17-3.fc7.x86_64 > avr-libc- 1.4.6-1.x86_64 > Unfortunately the review checklist is a bit to short / simple when describing this. see: http://fedoraproject.org/wiki/Packaging/Guidelines#head-a5931a7372c4a00065713430984fa5875513e6d4 For the full story, to quote it: "Another exception for directory ownership in packages is when there is no clear dependency hierarchy. An example: Foo-Animal-Emu puts files into /usr/share/Foo/Animal/Emu Foo-Animal-Llama puts files into /usr/share/Foo/Animal/Llama Neither package depends on the other one. Neither package depends on any other package which owns the /usr/share/Foo/Animal/ directory. In this case, each package must own the /usr/share/Foo/Animal/ directory." Since binutils doesn't need libc and libc doesn't need binutils there is no clear dependency hierarchy, thus they should both own /usr/avr Ah, I just saw your comment you find this ourselves, yes its no an issue. Before I forget many thanks! And once your satisfied with the discussion around the exceptional parts of this package, can you please post a final Must Fix list, I would like to avoud a gazillion iterations :) Sofar I have as Must Fix: -gzip manpages -fix License field in specfile (oops) (In reply to comment #13) > (In reply to comment #9) > > http://fedoraproject.org/wiki/Packaging/ReviewGuidelines > > - MUST: Header files must be in a -devel package. > > --> hmm... discuss? (see rpmlint output) > > > > - MUST: Static libraries must be in a -static package. > > --> hmm... discuss? (see rpmlint output) > > > > Possible solution: split out -devel package and have avr-libc require: > > avr-libc-devel? Or possibly just rename the package. > > > > As already explained in the mailinglist discussion, the guidelines or just plain > bogus in this (exceptional) case, just ignore them. The guidelines are not bogus on this subject. avr-libc's *.a's and *.h's are not host files, they are target files. The rpmlint warning is bogus. Also consider all packages of the avr-toolchain are devel packages. > > - MUST: Packages must not own files or directories already owned by other > packages. > > --> BAD > > $ rpm -qf /usr/avr > > avr-binutils- 2.17-3.fc7.x86_64 > > avr-libc- 1.4.6-1.x86_64 > > > > Unfortunately the review checklist is a bit to short / simple when describing > this. see: >http://fedoraproject.org/wiki/Packaging/Guidelines#head-a5931a7372c4a00065713430984fa5875513e6d4 > > For the full story, to quote it: "Another exception for directory ownership in > packages is when there is no clear dependency hierarchy. These dirs must be owned by all packages using them. Anything else is technically wrong. > Neither package depends on the other one. Exactly this is the point. (In reply to comment #14) > Sofar I have as Must Fix: > -gzip manpages > -fix License field in specfile (oops) + %doc the man-pages Your concise Must Fix list is accurate. I'll get to the rest of the review stuff tomorrow most likely (naming/packaging guidelines). I dont anticipate more issues as the spec looks very clean. http://fedoraproject.org/wiki/Packaging/SourceURL Meets all source URL guidelines http://fedoraproject.org/wiki/Packaging/NamingGuidelines -- pkg name: ok -- multiple packages: no (ok) -- spec file name: ok -- package version: numeric only (ok) -- package release: ok -- renaming existing package: no (ok) -- doc subpackage: yes (ok) -- addon package: no (ok) http://fedoraproject.org/wiki/Packaging/Guidelines -- license ok -- patents: no (ok) -- emulator: no (ok) -- binary firmware: no (ok) -- prebuilt binaries: no (ok) -- FHS: ok -- rpmlint errors: already posted. -- changelog: ok -- tags: ok -- buildroot: ok -- file dependencies: no (ok) -- buildrequires: ok -- summary and description: ok -- encoding: ok -- documentation: ok -- compiler flags: doesnt apply (cross toolchain) -- static libs: doesnt apply (cross toolchain) -- system lib dups: no (ok) -- rpath: ok -- config files: none (ok) -- init scripts: none (ok) -- desktop files: none (ok) -- macros: ok -- locales: none (ok) -- parallel make: no (documented, breaks build -- ok) -- scriptlets: none (ok) -- conditional deps: none (ok) -- user accounts: none (ok) -- relocatable: no (ok) -- code vs content: code (ok) -- file ownership: ok -- web application: no (ok) -- conflicts: none (ok) -- timestamps: preserved (ok) No additional must fix items found. APPROVED pending fixes to above-listed must-fix items. Michael, Thanks for the approval, before even seeing the fixed version. I appreciate the trust! For reference here is the version I'll be importing once there is a CVS dir for this: Spec URL: http://people.atrpms.net/~hdegoede/avr-libc.spec SRPM URL: http://people.atrpms.net/~hdegoede/avr-libc-1.4.6-4.fc8.src.rpm Changes: * Tue Jul 17 2007 Hans de Goede <j.w.r.degoede> 1.4.6-4 - Gzip manpages - Make manpages %%doc - Install -docs documentation in same dir as the main package docs - Change License field from GPL to BSD (oops) Note that I also fulfilled Ralf's request to put the -docs docs in the same subdir of %docdir as the main package docs. Thanks Ville, for explaining me how to do this. New Package CVS Request ======================= Package Name: avr-libc Short Description: C library for use with GCC on Atmel AVR microcontrollers Owners: j.w.r.degoede Branches: FC-6 F-7 devel InitialCC: <empty> Imported and build long ago, forgot to close, closing now. Package Change Request ====================== Package Name: avr-libc New Branches: EL-6 Owners: tnorth trondd We would like to have FEL-related packages available for EL-6. Thanks ! CVS done (by process-cvs-requests.py). |