I would like, please, to read a simple explanation of what fedmsg is, what it does, why it is useful, and if it's not just something that runs quietly in the background, an introduction to how to start with it.

I am asking this question because, although there is an enormous amount of information available, it is couched in such technical terms and so full of jargon, that I find it impenetrable.

A confession; I have fedmsg installed on my Fedora 20 machine, but I can't remember why, or how.

up vote 4 down vote accepted

Any time you have a question about a command on a Red Hat distro such as Fedora, CentOS, or RHEL it's best to utilize the package manager tools rpm or yum.

If the package isn't installed then use yum to see what it's about.

$ yum info <package name>

If it's already installed then you can also use rpm.

$ rpm -qi <package name>

Example

$ yum info fedmsg
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
Available Packages
Name        : fedmsg
Arch        : noarch
Version     : 0.7.7
Release     : 1.fc19
Size        : 465 k
Repo        : updates/19/x86_64
Summary     : Tools for Fedora Infrastructure real-time messaging
URL         : http://github.com/ralphbean/fedmsg
License     : LGPLv2+
Description : Python API used around Fedora Infrastructure to send and receive messages with
            : zeromq.  Includes some CLI tools.

If you have the name of an executable and aren't sure what package it's a part of you can use the command repoquery:

$ repoquery -qf </path/to/file>

Example

$ repoquery -qf */fedmsg
fedmsg-0:0.7.7-1.fc19.noarch
fedmsg-0:0.6.8-4.fc19.noarch

So what does it do?

The link that was posted in the comments to the project's website says it best:

fedmsg (Fedora-Messaging) is a python package and API used around Fedora Infrastructure to send and receive messages to and from applications. See Overview for a thorough introduction.

So what does it really do?

If the technical jargon is too much to stomach then the bottom line is this.

fedmsg is a project to provide a messaging bus that the various tools in the packaging toolchain can use to relay information to each other as to their states for various build/packaging related tasks.

Take Koji for example. Koji is Fedora's automated build system for compiling RPMs. Here's a screenshot:

   ss #1

So as tasks are scheduled and built via Koji the state of where they are in the process is not easily exposed. The idea of fedmsg is to provide a messaging bus so that services like Koji can share the state of these activities with other systems within the packaging toolchain. Right now a maintainer of a package has to sit there and periodically check the web UI to see if a build has completed successfully.

The overview page has a more detailed description of fedmsg if you want more info.

  • Thank you @sim, but I am afraid that the Overview you refer to is what I meant by "couched in such technical terms and so full of jargon, that I find it impenetrable". There are two kinds of answer to a question like this: those that allow the experts to nod wisely to one another, and those that make things clear to the naive enquirer. I was after the second one. – Harry Weston May 31 '14 at 12:30
  • @HarryWeston - is that better? – slm May 31 '14 at 21:31
  • Thank you @sim, yes that helps. I have followed up all the references I can,and get the feeling that fedmsg is something that runs in the background, easing package installation, but otherwise as a general user, I can just forget about it. – Harry Weston Jun 1 '14 at 9:52
  • 1
    @HarryWeston It doesn't ease package installation. It's used in the Fedora Project infrastructure so our different services can communicate to each other. For, every time a package is built, a message goes out saying who was responsible. One consumer of those messages is the Fedora Badges system, where they are used to award the If you build it... or What goes up... (must come down) badges to deserving users. – mattdm Jun 11 '14 at 0:04
  • 2
    If you want to create something that listens to this activity, because you want to make a service that reacts to it in some way, or if you want to display statistics, you might want it installed, but otherwise, you really don't need it. – mattdm Jun 11 '14 at 0:05

It is just a central place for services to send and read messages about their events. Look at human-friendly interface at https://apps.fedoraproject.org/datagrepper/raw to get the idea.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.