Bug 544630

Summary: pyatspi - Python bindings for at-spi
Product: [Fedora] Fedora Reporter: Matthias Clasen <mclasen>
Component: Package ReviewAssignee: Joshua Roys <roysjosh>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: ben, fedora-package-review, notting, roysjosh, tbzatek, zcerza
Target Milestone: ---Flags: roysjosh: fedora‑review+
kevin: 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: 2010-01-09 01:19:04 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Bug Depends On: 544628    
Bug Blocks:    

Description Matthias Clasen 2009-12-05 14:42:26 EST
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-22 21:55:30 EST
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 09:29:37 EST
? 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 10:12:18 EST
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 12:10:40 EST
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 15:01:05 EST
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 15:22:21 EST
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 14:46:04 EST
$ 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-08 20:33:34 EST
New Package CVS Request
=======================
Package Name: pyatspi
Short Description: Python bindings for at-spi
Owners: mclasen
Branches: 
InitialCC:
Comment 10 Kevin Fenzi 2010-01-08 23:38:23 EST
cvs done.
Comment 11 Matthias Clasen 2010-01-09 01:19:04 EST
built