RPM packages for Fedora?

Asked by guidito73

Hi, is it possible to have RPM packages for Fedora?

Thanks!

Question information

Language:
English Edit question
Status:
Solved
For:
Pogo Edit question
Assignee:
No assignee Edit question
Solved by:
guidito73
Solved:
Last query:
Last reply:
Revision history for this message
Jendrik Seipp (jendrikseipp) said :
#1

I don't think anyone has built pogo packages for fedora yet. Please
inform me if anyone does, please. Unfortunately, I have no experience in
rpm packaging.

Revision history for this message
guidito73 (guidito73) said :
#2

No, the only packages I found are rpm for OpenSUSE and for version 0.4

If anyone can take a look at it, it should be great!

As for experience, I have none in packaging, and lately, very little free time to spare to learn, but if someone has a good tutorial or is willing to show me the way, I could try.

Thanks!

Revision history for this message
Mario Blättermann (mario.blaettermann) said :
#3

I will have a look at it soon. I'm a member of the Fedora packagers group. Just tested v0.5. It works (after installation in /usr/local), but album covers are not shown for the time being. Once this also works, I will provide it for review, which might take a while to include in in Fedora officially.

Revision history for this message
Jendrik Seipp (jendrikseipp) said :
#4

Nice, it's awesome that you're working on including it in fedora. Let me
know if you need any infos.

Revision history for this message
Mario Blättermann (mario.blaettermann) said :
#5

It builds on my system, but it fails within the chroot environment on koji.fedoraproject.org. The build process is unusual anyway for Python. What are the build requirements? Current state:

BuildRequires: python-devel
BuildRequires: python-4suite-XML
Requires: dbus-python pygtk2 python-mutagen

There's a scratch build on Koji:

http://koji.fedoraproject.org/koji/taskinfo?taskID=3882971

And here's the build log:

http://koji.fedoraproject.org/koji/getfile?taskID=3882971&name=build.log

Seems to be a po file is actually missing...

Revision history for this message
Mario Blättermann (mario.blaettermann) said :
#6

New build:

http://koji.fedoraproject.org/koji/taskinfo?taskID=3883008

I've added intltool and desktop-file-utils to BuildRequires. No it works. But the question remains: What do we really need? The Opensuse package lists Python-devel, but due to using "make" I think it's unneeded. And what about the Python XML stack?

Revision history for this message
Mario Blättermann (mario.blaettermann) said :
#7
Revision history for this message
Mario Blättermann (mario.blaettermann) said :
#8

After some finetuning, here are my newest packages:

http://mariobl.fedorapeople.org/Packages/Fedora_16/SRPMS/pogo-0.5-1.fc16.src.rpm

http://mariobl.fedorapeople.org/Packages/Fedora_16/RPMS/noarch/pogo-0.5-1.fc16.noarch.rpm
http://mariobl.fedorapeople.org/Packages/Fedora_16/RPMS/noarch/pogo-gnome-0.5-1.fc16.noarch.rpm

The "gnome" subpackage doesn't contain anything, it calls only gnome-settings-daemon as a dependency to get access to Pogo via your media keys on your keyboard. Don't know if it works, I'm no longer using GNOME as desktop environment.

Scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=3883198

Revision history for this message
Jendrik Seipp (jendrikseipp) said :
#9

 From what I can say just by looking at the spec file, the package seems
to cover all dependencies. I don't have a fedora system to test on
though, maybe someone else can?

Are the gstreamer codecs included? For debian we had to list them all:

Depends: ${python:Depends},
          ${misc:Depends},
          python-gtk2 (>=2.6.3-2),
          python-glade2 (>=2.6.3-2),
          python-mutagen (>= 1.10),
          python-gst0.10 (>=0.10),
          python-dbus,
          gstreamer0.10-plugins-base,
          gstreamer0.10-plugins-good,
          gstreamer0.10-alsa
Recommends: gstreamer0.10-plugins-ugly,
             python-notify (>=0.1),
             python-gnome2,
             python-gnomekeyring,
             python-cddb
Suggests: gstreamer0.10-plugins-bad

Why can't you add gnome-settings-daemon as a normal dependency as well?
A subpackage seems unnecessary to me (having no knowledge about
rpm/fedora). I don't think python-xml is needed. Maybe you can take some
packaging ideas from the orphaned decibel-audio-player package as well,
I don't know.

Revision history for this message
Mario Blättermann (mario.blaettermann) said :
#10

Newest packages have been uploaded to the known download links:

http://mariobl.fedorapeople.org/Packages/Fedora_16/SRPMS/pogo-0.5-1.fc16.src.rpm
http://mariobl.fedorapeople.org/Packages/Fedora_16/RPMS/noarch/pogo-0.5-1.fc16.noarch.rpm

Now I'm using the following settings:

BuildArch: noarch
BuildRequires: intltool
BuildRequires: desktop-file-utils

For other BuildRequires, Fedora provides a generic build environment:
http://fedoraproject.org/wiki/Packaging:Guidelines#Exceptions_2

Requires: dbus-python
Requires: pygtk2-libglade
Requires: python-mutagen
Requires: python-imaging
Requires: python-inotify
Requires: gstreamer-python
Requires: python-CDDB

There's no pogo-gnome subpackage anymore. It is senseless, because GNOME users who are able to use the media keys hav gnome-settings-daemon anyway. The other people (e.g. Xfce users) are configuring their keyboards with other tools. Including gnome-settings-damon in the package itself would force non-GNOME users to install a lot of other GNOME libraries, utilities and applications.

 When testing the package with the validator tool rpmlint, I get the following error:

pogo.noarch: E: non-executable-script /usr/share/pogo/src/__init__.py 0644L /usr/bin/env

Would it make sense to add the executable bit to make rpmlint happy again? Or would it break anything?

Revision history for this message
Mario Blättermann (mario.blaettermann) said :
#11

BTW, gstreamer plugins are optional. They will be installed at runtime via the codec installer, if needed.

Revision history for this message
Jendrik Seipp (jendrikseipp) said :
#12

> pogo.noarch: E: non-executable-script/usr/share/pogo/src/__init__.py
> 0644L /usr/bin/env
Thanks for the hint, I removed the line from the file since it only
should occur in executable scripts.
The dependencies look fine to me. I think you can propose it for inclusion.
Thanks again for your work on packaging pogo!

Revision history for this message
Mario Blättermann (mario.blaettermann) said :
#13

OK, I've patched the current sources and published the package for review:

https://bugzilla.redhat.com/show_bug.cgi?id=803082

Revision history for this message
guidito73 (guidito73) said :
#14

Thanks!

It worked on my Fedora LXDE Spin! :D

Many, many thanks to Mario and all who put the effort into this.

Let's hope to see Pogo in the repositories soon ;)

Best,
Guido

Revision history for this message
Mario Blättermann (mario.blaettermann) said :
#15

Pogo v0.6 is now available in Fedora 16 (updates) and 17, packages for RHEL/Centos and its derivatives are still pending.

Revision history for this message
Jendrik Seipp (jendrikseipp) said :
#16

Nice. Now we provide packages for debian (via the PPA), fedora and arch,
so I think most of the Linux users are catered for already.