Bug 544630 - pyatspi - Python bindings for at-spi
Summary: pyatspi - Python bindings for at-spi
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review   
(Show other bugs)
Version: rawhide
Hardware: All Linux
low
medium
Target Milestone: ---
Assignee: Joshua Roys
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Keywords:
Depends On: 544628
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-12-05 19:42 UTC by Matthias Clasen
Modified: 2010-01-09 06:19 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-01-09 06:19:04 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
roysjosh: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Matthias Clasen 2009-12-05 19:42:26 UTC
The accessibility framework is being rewritten on top of D-Bus to get rid of
ORBit/CORBA. This package is an early release of the core of the new framework.

I'm packaging it now to allow people to start testing and reporting problems. 
For now, the at-spi2 packages will have Conflicts with the at-spi packages.
This
will be replaced by Provides/Obsoletes, once at-spi2 is feature-complete and
ready for prime time.

This package contains Python bindings for D-Bus at-spi.

The other parts of the at-spi2 stack are under review in bug 544628 and bug 544629.

SRPM: http://mclasen.fedorapeople.org/at-spi2/pyatspi-0.1.3-1.fc12.src.rpm
Spec: http://mclasen.fedorapeople.org/at-spi2/pyatspi.spec

Comment 1 Matthias Clasen 2009-12-23 02:55:30 UTC
New release:

SRPM: http://mclasen.fedorapeople.org/at-spi2/pyatspi-0.1.4-1.fc12.src.rpm
Spec: http://mclasen.fedorapeople.org/at-spi2/pyatspi.spec  

I have now turned on the relocation feature (via a .pth module) which allows this package to coexist peacefully with at-spi-python, so the Conflicts: is no longer necessary.

Comment 2 Joshua Roys 2010-01-07 14:29:37 UTC
? rpmlint (see comments at bottom)
  $ rpmlint -v 2/pyatspi.spec 
  0 packages and 1 specfiles checked; 0 errors, 0 warnings.
+ package name is fine
+ spec is %{name}.spec
+ meets packaging guidelines
? meets licensing guidelines
X license matches (appears to be only Library GPL v2, and there is no "later version" clause in any of the source files - LGPLv2 without the +?)
+ COPYING is in %doc
+ spec is in American English
+ spec is legible
+ sources match
+ builds under mock
+ no ExcludeArch
+ build deps listed
+ no locales
+ no shared libraries in default paths
+ doesn't bundle a copy of a system library
+ not relocatable
+ directories appear sane
+ %files doesn't contain duplicates
+ %files has %defattr
+ %clean is correct
+ spec macros used consistently
+ package contains code
+ no large docs
+ %doc files are not required to run
+ no header files
+ no static libraries
+ no pkgconfig files
+ no libraries listed
+ no -devel package
+ no .la files
+ no gui applications
+ no duplicate file/dir ownership
+ %install clears buildroot
+ filenames are valid utf-8

If I build the package as-is and then run rpmlint on the resulting RPMs, I get:
  $ rpmlint -v /var/lib/mock/fedora-rawhide-x86_64/result/*.rpm
  pyatspi.src: I: checking
  pyatspi.x86_64: I: checking
  pyatspi.x86_64: E: no-binary
  pyatspi-debuginfo.x86_64: I: checking
  pyatspi-debuginfo.x86_64: E: empty-debuginfo-package
  3 packages and 0 specfiles checked; 2 errors, 0 warnings.

... which made me wonder, could we compile this as a noarch rpm?  But then I get:
  $ rpmlint -v /var/lib/mock/fedora-rawhide-x86_64/result/*.rpm
  pyatspi.noarch: I: checking
  pyatspi.noarch: E: noarch-python-in-64bit-path /usr/lib64/python2.6/site-packages/pyatspi-dbus.pth

I don't know very much about python, or packaging python, but can we do without that pth somehow?  Looking at it, perhaps not... although the contents appear to be incorrect:
  $ cat usr/lib64/python2.6/site-packages/pyatspi-dbus.pth 
  import commands, sys; a = commands.getoutput('gconftool-2 --get /desktop/gnome/interface/at-spi-dbus'); (a == 'true') and sys.path.insert(0, '/usr/lib/python2.6/site-packages/pyatspi2')

The python bits aren't in that last dir, /usr/lib/python2.6/site-packages/pyatspi2 but in /usr/lib/python2.6/site-packages/pyatspi-dbus/pyatspi

Any ideas?

Comment 3 Matthias Clasen 2010-01-07 15:12:18 UTC
The dbus/corba switching mechanism is getting reworked a bit upstream, anyway, see https://bugzilla.gnome.org/show_bug.cgi?id=606251

I'll fix up the license and include the patch from that bug in the next srpm

Comment 4 Tomáš Bžatek 2010-01-07 17:10:40 UTC
Uh oh, somebody else did the review meanwhile I was working on it... here are my findings anyway, kinda same as Joshua's :-)


source files match upstream: ok
package meets naming and versioning guidelines: ok
specfile is properly named, is cleanly written and uses macros consistently: ok
dist tag is present: ok
build root is correct: ok
license field matches the actual license: the spec file says LGPLv2+ while most
of the files are LGPLv2-only
license is open source-compatible: ok
license text included in package: yes
latest version is being packaged: ok
BuildRequires are proper: yes
compiler flags are appropriate: none, ok
%clean is present: ok
package builds in mock (Rawhide/x86_64): ok
debuginfo package looks complete: no, please see below
rpmlint is silent: no, please see below
final provides and requires look sane: ok
no shared libraries are added to the regular linker search paths: ok, none
owns the directories it creates: ok
doesn't own any directories it shouldn't: ok
no duplicates in %files: ok
file permissions are appropriate: ok
no scriptlets present: ok
documentation is small, so no -docs subpackage is necessary: ok
%docs are not necessary for the proper functioning of the package: ok
libtool archives: none, ok
pc files: ok
header files: ok
static libs: none, ok


Notes:
 - several source files in the 'pyatspi' directory contain portions of code
under BSD license
 - builds fine in koji

rpmlint output:
pyatspi.x86_64: W: spelling-error-in-summary en_US spi
pyatspi.x86_64: W: spelling-error-in-description en_US spi
pyatspi.x86_64: W: spelling-error-in-description en_US assistive
pyatspi.x86_64: E: no-binary
pyatspi-debuginfo.x86_64: E: empty-debuginfo-package
2 packages and 0 specfiles checked; 2 errors, 3 warnings.

ignore the spelling errors, but there's another catch: looks like the .pth file
is arch dependant (installed in /usr/lib64), we can't use noarch here. The
no-binary error is justified, so is the empty-debuginfo-package error. 

I suggest to add "%global debug_package %{nil}" per
https://fedoraproject.org/wiki/Packaging/Debuginfo#Useless_or_incomplete_debuginfo_packages_due_to_other_reasons

Comment 5 Matthias Clasen 2010-01-07 20:01:05 UTC
New package:

SRPM: http://mclasen.fedorapeople.org/at-spi2/pyatspi-0.1.4-2.fc12.src.rpm
Spec: http://mclasen.fedorapeople.org/at-spi2/pyatspi.spec  

Fixed the license, and got rid off the .pth thing with the new upstream
switching approach, which means it can now be noarch.
 
This doesn't yet include Tomas' comments. I'll tackle those in another update.

Comment 6 Joshua Roys 2010-01-07 20:22:21 UTC
Some minor nitpicks:

You used tabs in the Patch0 line and BuildArch line, but spaces were used everywhere else.  Actually, there are both tabs and spaces on the Patch0 line:
  $ rpmlint pyatspi.spec
  pyatspi.spec: W: mixed-use-of-spaces-and-tabs (spaces: line 6, tab: line 23)
  0 packages and 1 specfiles checked; 0 errors, 1 warnings.

And the two commented-out lines at the top can be deleted, probably.

rpmlint is clean on the built package:
  $ rpmlint /var/lib/mock/fedora-rawhide-x86_64/result/pyatspi-0.1.4-2.fc13.noarch.rpm 
  1 packages and 0 specfiles checked; 0 errors, 0 warnings.

Almost there!

Comment 8 Joshua Roys 2010-01-08 19:46:04 UTC
$ rpmlint pyatspi-0.1.4-3.fc12.src.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
$ rpmlint -v /var/lib/mock/fedora-rawhide-x86_64/result/*.rpm
pyatspi.noarch: I: checking
pyatspi.src: I: checking
2 packages and 0 specfiles checked; 0 errors, 0 warnings.

APPROVED

Comment 9 Matthias Clasen 2010-01-09 01:33:34 UTC
New Package CVS Request
=======================
Package Name: pyatspi
Short Description: Python bindings for at-spi
Owners: mclasen
Branches: 
InitialCC:

Comment 10 Kevin Fenzi 2010-01-09 04:38:23 UTC
cvs done.

Comment 11 Matthias Clasen 2010-01-09 06:19:04 UTC
built


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