Bug 736674 - Review Request: libgee06 - GObject collection library
Summary: Review Request: libgee06 - GObject collection library
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Michel Alexandre Salim
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2011-09-08 11:59 UTC by Michel Alexandre Salim
Modified: 2011-09-10 18:34 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2011-09-10 18:34:37 UTC
kalevlember: fedora-review+
gwync: fedora-cvs+

Attachments (Terms of Use)

Description Michel Alexandre Salim 2011-09-08 11:59:44 UTC
Spec URL: http://salimma.fedorapeople.org/specs/gnome/compat-libgee06.spec
SRPM URL: http://salimma.fedorapeople.org/specs/gnome/compat-libgee06-0.6.1-4.fc16.src.rpm
libgee 0.6.x, parallel-installable with the 0.7.x series now in Rawhide. Many dependent packages have not been updated for the new API, so this package would allow the Rawhide branch to be kept up-to-date while upstream transitions to the new API.


libgee is a collection library providing GObject-based interfaces and
classes for commonly used data structures.

libgee provides the following interfaces:

* Iterable
  * Collection
    * List
    * Set
    * MultiSet
    * Queue
      * Deque
* Iterator
* Map
* MultiMap

The ArrayList, HashSet, HashMap, HashMultiSet, HashMultiMap,
LinkedList, PriorityQueue, TreeSet, TreeMap, TreeMultiSet, and
TreeMultiMap classes provide a reasonable sample implementation of
those interfaces. In addition, a set of abstract classes are provided
to ease the implementation of new collections.

Around that, the API provide means to retrieve read-only views,
efficient sort algorithms, simple, bi-directional or index-based
mutable iterators depending on the collection type.

libgee is written in Vala and can be used like any GObject-based C library.
It's planned to provide bindings for further languages.

Comment 1 Michel Alexandre Salim 2011-09-08 12:12:37 UTC
Koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=3335214

(for Rawhide; so that parallel installation can be tested on the Rawhide test machine)

Comment 2 Michel Alexandre Salim 2011-09-08 12:19:17 UTC
On Rawhide, pino, rygel etc. can now be installed, and compat-libgee06-devel and libgee-devel can be parallel-installed:

$ rpm -q pino rygel compat-libgee06-devel libgee-devel

Comment 3 Michel Alexandre Salim 2011-09-08 18:43:05 UTC
accidentally set the review flag; removing

Comment 4 Kalev Lember 2011-09-08 18:53:12 UTC
Taking for review.

Are there any guidelines which say how to name compat packages? Most of the parallel-installable libraries appear to just follow the libgee06 naming scheme (without the compat- prefix).

Comment 5 Michel Alexandre Salim 2011-09-09 09:22:26 UTC
I'm not sure, and I'm fine with both naming schemes. I have the impression (I could be mistaken, though) that "compat-" indicates that an older version of the software is being packaged, while the lack of it indicates that it's a newer version?

Version suffix only:
python3  (newer than the default python 2.x)
python26 (for RHEL; newer than stock Python)

compat- + version suffix:
compat-*gcc* -- older versions of the GCC compiler suite
compat-db* -- older Berkeley DB versions

but then again, as per

older openssl versions are packaged without the compat- prefix. So I'll probably rename this to just libgee06 -- could you review the package as is, with the rename coming later, or should I rename now?

Comment 7 Kalev Lember 2011-09-09 12:54:07 UTC
Fedora review libgee06-0.6.1-4.fc15.src.rpm  2011-09-09

+ OK
! needs attention

$ rpmlint libgee06-0.6.1-4.fc16.src.rpm \
          libgee06-0.6.1-4.fc16.x86_64.rpm \
          libgee06-devel-0.6.1-4.fc16.x86_64.rpm \
libgee06.src: W: spelling-error Summary(en_US) GObject -> G Object, Object
libgee06.src: W: spelling-error %description -l en_US libgee -> lib gee, lib-gee, libel
libgee06.src:9: W: mixed-use-of-spaces-and-tabs (spaces: line 1, tab: line 9)
libgee06.x86_64: W: spelling-error Summary(en_US) GObject -> G Object, Object
libgee06.x86_64: W: spelling-error %description -l en_US libgee -> lib gee, lib-gee, libel
libgee06.x86_64: W: file-not-utf8 /usr/share/doc/libgee06-0.6.1/ChangeLog
libgee06-devel.x86_64: W: no-documentation
4 packages and 0 specfiles checked; 0 errors, 7 warnings.

! Not strictly necessary, but would be nice to silence the
  mixed-use-of-spaces-and-tabs rpmlint warning and ask upstream to 
  ship the ChangeLog file as UTF-8. Other warnings are just noise.
+ The package is named according to Fedora packaging guidelines
+ The spec file name matches the package base name
+ The package meets the Packaging Guidelines
+ The package is licensed with a Fedora approved license and meets the
  Licensing Guidelines.
+ The license field in the spec file matches the actual license
+ The package contains the license file (COPYING)
+ Spec file is written in American English
+ Spec file is legible
+ Upstream sources match sources in the srpm. md5sum:
  9cf60f41f3aa10ac7f1f7e1d094e05a1  libgee-0.6.1.tar.bz2
  9cf60f41f3aa10ac7f1f7e1d094e05a1  Download/libgee-0.6.1.tar.bz2
+ The package builds in koji
n/a ExcludeArch bugs filed
+ BuildRequires look sane
n/a The spec file MUST handle locales properly
+ ldconfig in %post and %postun
+ Package does not bundle copies of system libraries
n/a Package isn't relocatable
+ No duplicated files in %files section
+ Permissions are properly set
+ Consistent use of macros
+ The package must contain code or permissible content
n/a Large documentation files should go in -doc subpackage
+ Files marked %doc should not affect package
+ Header files should be in -devel
n/a Static libraries should be in -static
+ Library files that end in .so must go in a -devel package
+ -devel must require the fully versioned base
+ Packages should not contain libtool .la files
n/a Packages containing GUI apps must include %{name}.desktop file
+ Directory ownership sane
+ Filenames are valid UTF-8

In addition to the rpmlint comment above, some small nits about the spec file,
none of which would be review blockers:
 - Requires: pkgconfig in the -devel package is redundant because rpmbuild
   automatically generates a dep on /usr/bin/pkg-config
 - the 'rm -rf $RPM_BUILD_ROOT' at the beginning of %install and the
   %defattr(-,root,root,-) lines are no longer needed with recent rpmbuild
 - The comment "It's planned to provide bindings for further languages." in
   description is misleading because the package now includes
   gobject-introspection based bindings.

Comment 8 Michel Alexandre Salim 2011-09-09 16:19:50 UTC
Thanks! Here's the latest spec and SRPM, with the requested changes:


- tabs converted to spaces
- dropped manual Requires: pkgconfig for -devel
- remove unnecessary buildroot and defattr lines
- remove language bindings reference from description

Comment 9 Kalev Lember 2011-09-09 16:29:26 UTC
Thanks, looks good. There's still one more unnecessary defattr() in -devel file list, which you could just remove before importing to git.


Comment 10 Michel Alexandre Salim 2011-09-09 18:25:48 UTC
Good point; will do. Thanks!

New Package SCM Request
Package Name: libgee06
Short Description: GObject collection library
Owners: salimma

Comment 11 Gwyn Ciesla 2011-09-09 18:29:34 UTC
Summary and SCM request package names don't match.  Please correct.

Comment 12 Michel Alexandre Salim 2011-09-09 22:17:10 UTC
(In reply to comment #11)
> Summary and SCM request package names don't match.  Please correct.

Jon, the SCM request name is correct; summary is outdated. I've fixed it now.

New Package SCM Request
Package Name: libgee06
Short Description: GObject collection library
Owners: salimma

Comment 13 Gwyn Ciesla 2011-09-10 15:07:04 UTC
Git done (by process-git-requests).

Comment 14 Michel Alexandre Salim 2011-09-10 18:34:37 UTC
Thanks; Rawhide build done

Note You need to log in before you can comment on or make changes to this bug.