Archive for Fedora

Discoveries, no. 577.

This past week I discovered the following awesome things:

  • Moving from a 10-year-old DOCSIS 2.0 modem to a DOCSIS 3.0 modem, assuming your cable ISP is remotely in tune with the times, will make your bandwidth better.
  • Moving from a 7-year-old (?) Linksys WRT54GL a/b/g wireless router to a new Netgear WNR3500L b/g/n wireless router, assuming you have a laptop with wireless-N, is well worth the investment (and the Netgear is equally hackable with open firmware).
  • If you had a stressful day, playing Rancor Rampage on Kinect Star Wars with your kids is a great way to take the edge off.

Finding old test packages in Koji.

After I answered a question on the devel list today about getting one’s hands on an old testing package for Fedora that had been obsoleted or removed, Josh Boyer one-upped me by providing some easy instructions. I figured I would tip my fedora to him by building a blog post on his work. Nice one, Josh!

When someone builds an official Fedora package, whether it ultimately gets moved to stable or not, there’s a record for it in Koji, the Fedora package build system. You can use the search bar on the Koji website to find the package or build you’re inerested in. In the resulting page, you’ll find the build is labeled with the git commit from which the build came — it’s the long checksum in the “Task” line.

The package may not be there anymore, but that git label is all you need. It represents the position in the repository history from which the packager built that package. You can find that point in history and re-execute the same steps. You can then clone the package’s git repository, reset the HEAD to the proper commit, and send a scratch build to the Koji builder. Once the build is done, you can download the results.

Caveat: It’s possible that other package changes in Fedora might make a build of that exact point in history difficult later. Be aware this solution isn’t perfect, and you may simply want to find an alternate build in Koji that still exists and suits your purpose, or use the latest updates-testing or stable package instead. But in the hopes people find it useful, here are the commands, assuming the package name is “foobar” on Fedora 16 and the git commit of interest in starts with “0123abcd” (and let’s hope I do better than in the last post in which I gave tips):

su -c 'yum install fedora-packager'
cd /tmp
fedpkg clone foobar
cd foobar
fedpkg switch-branch f16
git reset --hard 0123abcd
fedpkg scratch-build
The URL that comes back to your console is the task for that build, and you can use that to drill down into the individual package build tasks as needed later. Remember, scratch builds are not retained for very long, so if you want the package, try to download it relatively soon after you build it.

Here’s another hint: the git reset command above rewrites your index and your working tree, so essentially you “lose” the later history of the repository. However, git is so awesome that this is not a permanent condition. If you really need to reset the git repository back to its original path, you can use git reflog to find the reference to the checkout you did of the “f16″ branch, and reset to it (probably something like this):

git reset --hard HEAD@{1}
Once again, it’s important to point out that the above is not for the faint of heart. If you don’t understand the ramifications of trying withdrawn, obsolete, or deleted packages on your Fedora machine, or packages intended for testing, don’t use them. That being said, testing packages is a really helpful activity, and there are all sorts of easy ways to keep testing contained on your system, such as using virtual guest machines. So the intrepid needn’t be shy!

Autotitles in screen.

This comes in really handy in ~/.screenrc:

shelltitle '$ |bash'

Then add this in ~/.bashrc:

export PROMPT_COMMAND='[ "$TERM" == "screen" ] && echo -n -e "\033k\033\\"'

Restart screen in a fresh bash session and enjoy.

UPDATE: I stupidly screwed up the screenrc line because I did it from memory instead of copypasta. No cookie for me!

UPDATE #2: Aha, found that something in the innards of my blog software was removing an extra backslash that was needed in the export command above. Sorry for the mess.

Snake for great justice.

I took some time last night to make a couple additional fixes and changes to the irssi-libnotify project I posted about a few days ago.

Among other things, I changed the upstream VCS from Subversion to git, which ended up being pretty simple. I’m much happier keeping the code at Google when I know the entire history resides with me, too. That way, I can move the upstream elsewhere if it becomes necessary. Thankfully, git-svn makes it incredibly easy to migrate, and there’s a helpful wiki page to help with the migration.

I did find that the site docs left out an important part (to me) of the process, which is migrating the authorship information properly. This page was useful to find a quick recipe to use with the SVN log.

For some reason, though, I was still on a hacking (or more precisely, “flailing”) kick. I was happy to have made some fixes to my project, but I’m not a big fan of Perl, so I checked out the current state of irssi-python. This project, as you might expect, provides a Python scripting interface for irssi.

Unfortunately, the project hasn’t kept up with irssi, so it isn’t easy to build. I found a patch for 0.8.15, which applied cleanly and got most of the way there. However, I found for some reason that upstream irssi doesn’t install some of the development header files needed to build irssi-python. I created a patch and a new SRPM that will allow the project to build properly, and also put my work in a git repo with a README file that will help you build it if you’re interested.

Once you install the plugin, you can do the following to experiment so you can build your own scripts:

/load python /py exec import irssi

Have fun!

You can ring my bell.

I’ve been using xchat-gnome on Fedora for quite a while. It’s been my default chat client because the way it notifies about private or channel messages fits well with my workflow. However, recently I’ve wanted more often to encapsulate my chat in a screen session along with my other work. Of course, the obvious answer to this is Irssi, a popular text-based client.

I still tend to also have a web browser open often in a GNOME session, though, so notifications are very useful to me. For a while I used Irssi with a simple plugin script that calls notify-send to create popup notifications. However, I hadn’t used it since the GNOME 2.30-2.32 days, and I found this script had developed drawbacks as it aged against the new GNOME 3 environment.

For example, the notifications would fill up the notification tray over the course of the day. Clearing them required an action for each individual notification, which was tedious to say the least. Also, the --timeout argument to notify-send seemed to no longer work for me to make the notification leave the notice area after a specific length of time.

What I really wanted was a solution that would act more like many of the other native GNOME applications. Appointment notifications or email in Evolution, for instance, “stack” in the notification area into a single icon, with a number that tells you how many notices have been received. Thankfully a few GNOME folks — Marina, Matthias, and Ray — kindly gave me some advice on solutions.

First, there’s a hint called transient for notifications that lets them evaporate from the notification area after a specific time. (You can find the full notification spec here if you want to dig a little deeper; I found it really educational.) This was a step forward because it kept the notices from piling up in the notification area ad infinitum. For instance:

notify-send --hint transient:1 'subject' 'message'

Unfortunately, just using transient meant I’d likely miss some notices if I was away when they came in. I wouldn’t know someone was looking for me unless I switched to my Irssi window to look — which is precisely the thing that notifications should prevent. Nevertheless, it’s a really useful hint, so file that away for later reference.

Never fear though, because again the GNOME folks passed on some good advice. The stacking effect is handled automatically by GNOME Shell if the notifications are issued from the same PID. Aye, there’s the rub! The Irssi plugin I was using made this impossible, because it called the notify-send executable for each message, meaning a new process for each instance. What I really needed was a single process listening on the session D-Bus that could kick off a notification.

So what I came up with can be found here. If you want to just test the listener, maybe because you don’t use Irssi, try this command with the listener running:

dbus-send --session /org/irssi/Irssi org.irssi.Irssi.IrssiNotify string:'subject' string:'message'

The listener is just a dead-simple (or maybe I should say brain-dead, given the quality of code) Python script. I put it in ~/bin with the executable bit set on, added it to my list of applications that launch with my GNOME session using gnome-session-properties, and added the new notify Perl plugin for Irssi to my ~/.irssi/scripts/ folder, with a symlink from ~/.irssi/scripts/autorun/ so it starts whenever I run Irssi. The stacking of notifications makes them very easy to clear with one user action — aaah, much better!

Future thoughts:

  • One flaw with this method (I’m sure there are many!) is you’ll get notifications even if you’re actively looking at or talking in the IRC channel where a message comes in. It’s easy to add logic to alter the behavior based on that, but what complicates matters considerably would be trying to make this script understand when Irssi was in the active screen window — or when the screen was the foreground window in GNOME.
  • It might not be kosher for me to have used org.irssi.Irssi as a service name in D-Bus. After all, this isn’t official or part of the Irssi project at all. But as I understand it, you could use whatever name you liked, as long as you weren’t trying to claim a service name already in use.
  • You could make this work system-wide by packaging a real .service file for D-Bus along with the Irssi script.
  • When we were discussing the technical issues above, Ray told me he was actually looking for something similar. With any luck, he’ll find something annoying in my stupid solution he can’t live with, and he’ll add some magic GNOME-ishness to make it awesome. See what I did there? ;-)

Manners matters.

I was checking out this fabulous new book called Open Advice after seeing a link on a mailing list. The book is a collection of reflections by experienced (and often well-known) free and open source software contributors on things they wish they’d known when they started in FOSS.

I found a particularly wonderful section among a wealth of other wonderful text. In fact, I probably could have opened the book at random and found something just as quotable and insightful. But this piece struck a sympathetic nerve, probably because one of my pet issues is treating each other with kindness. This excerpt is from the chapter called “Good Manners Matter” by the amazing Rich Bowen, and I’ll reproduce it here, thanks to the author’s and editors’ enlightened use of the CC BY-SA 3.0 license:

I had been doing technical support, particularly on mailing lists, for about two years, when I first started attending technical conferences. Those first few years were a lot of fun. Idiots would come onto a mailing list, and ask a stupid question that a thousand other losers had asked before them. If they had taken even two minutes to just look, they would have found all the places the question had been answered before. But they were too lazy and dumb to do that.

Then I attended a conference, and discovered a few things.

First, I discovered that the people asking these questions were people. They were not merely a block of monospaced black text on a white background. They were individuals. They had kids. They had hobbies. They knew so much more than I did about a whole range of things. I met brilliant people for whom the technology was a tool to accomplish something non-technical. They wanted to share their recipes with other chefs. They wanted to help children in west Africa learn how to read. They were passionate about wine, and wanted to learn more. They were, in short, smarter than I am, and my arrogance was the only thing between them and further success.

When I returned from that first conference, I saw the users mailing list in an entirely different light. These were no longer idiots asking stupid questions. These were people who needed just a little bit of my help so that they could get a task done, but, for the most part, their passions were not technology. Technology was just a tool. So if they did not spend hours reading last year’s mailing list archives, and chose instead to ask the question afresh, that was understandable.

And, surely, if on any given day it is irritating to have to help them, the polite thing to do is to step back and let someone else handle the question, rather than telling them what an imbecile they are. And, too, to remember all of the times I have had to ask the stupid questions.

Well said, Rich. Any of us helping users or newcomers to any endeavor, whether it’s Fedora, some other FOSS project, or a volunteer organization in your town, can learn from Rich’s experience above, assuming that we haven’t already lived it ourselves. Any user can be the contributor of tomorrow. It pays real dividends to extend them a helping hand.

I do highly recommend you check out Open Advice at the website. It’s chock full of insight, anecdotes, and lessons about the powerful, transformational, and exciting journey of free and open source software. The book is a free download, but you can also purchase a copy from Lulu (and, according to the site, from Amazon soon).

FUDCon Blacksburg, days 2-3.

Saturday was the BarCamp session at FUDCon Blacksburg. This year there were workshops scheduled at the same time as BarCamp, which was different than usual. I wasn’t at any of the workshops so I’d be interested to know from those who held them whether they felt this was useful. I do know that most of the BarCamp sessions I attended had good attendance.  The sessions I attended:

  • Spot’s talk on making Fedora packaging easier — featured not just what could be a replacement for the current pkgdb, but also a cool new app called Tagger that makes improving package search part of an achievement/trophy oriented game, for maximum  fun
  • Katello — a next generation system environment management platform that helps manage content and deployment
  • Pam Chestek’s session on the new draft of Fedora trademark guidelines — with extra tweaks to make guidance clearer for publishers, hosting providers, cloud, and spins/remixes
  • Chris Tyler’s talk on Raspberry Pi — which was packed! A great update on this affordable ARM hardware for hacking, and what’s needed from the Fedora community to take it to the next level
  • OpenShift — Mike McGrath showed off the latest capabilities of OpenShift, a PaaS (platform as a service) offering by Red Hat that makes it dead-simple to for developers to get an entire OS and framework operational in the cloud in just a couple of minutes

Overall, this year’s BarCamp was one of the best in terms of depth of technical content. It also had an excellent spread in terms of technical complexity — meaning there was plenty for new hackers to sink their teeth into, as well as stuff that appealed to more experienced folks. We had the usual assortment of great speakers from all around the community and they all delivered impressive presentations. You should be seeing a lot of these on blogs through the Fedora Planet with downloadable content. (If you delivered a presentation, make sure you make it available widely!)

Saturday evening was the world-famous FUDPub. I was only around for a little while — since I was still trying to shake off the illness that had been dogging me since the middle of the week, I didn’t want to make things worse on my immune system by celebrating too much. Plus, it started to snow while we were enjoying the food, drink, bowling, and billiards, so I wanted to move my car back to the hotel before the roads got too dangerous. (Virginia is not known for its rapid and rational response to adverse weather conditions.) Later in the evening we gathered for poker at the “mezzanine” level of the hotel’s conference center. A few people played well into the wee hours but I headed to bed about 1:00am.

Unfortunately, the medication I took caused me to oversleep a bit, but I still managed to get over to day 3 of FUDCon by 9:00am. Once there, I got together with Peter Borsa, Pascal Calarco, and Maria ‘tatica’ Leandro to talk Insight, our Drupal installation, which the team is trying to branch out into new and useful functions. Jared Smith and Robyn Bergeron also stopped by to give some input on our calendar project. We took notes throughout the session on Gobby, and will post them on the wiki shortly along with some additional context and plans. I feel like the Insight project is starting to take on a little more life, with a designer involved and some solid ideas about functionality that will help the project.

For instance, we discussed the events calendar being able to automatically notify event owners or FAmSCo about milestones or other necessary activity, to promote better communication and awareness. A content management system makes it possible to build some fairly robust workflows around information — making the system not just another place to deposit information, but a facilitator in the process. The team has yet to figure out exactly how this should look but thankfully Maria is on the case and will help figure this out over the next few weeks. My day job is making it harder for me to lead this team, but the other members are committed to working on some exciting new features, and I’ll continue to find ways to contribute, and wherever possible remove roadblocks and continue to scale out access, privileges, and empowerment to the rest of the team.

By this time, it was close to noon. I started saying goodbyes to various people, and made sure I had picked up as many riders as I could to drop off at the airport on the way out. I ended up taking Máirín Duffy to the airport, as well as Jared’s son with me (since they live within a half hour of me). It was good to finally get home at about dinnertime. My daughter was hosting a sleepover with a friend so it was pretty boisterous at our house, but nice to see my family again.

All in all, it was a great FUDCon. I could have done without the illness the first few days, but I managed to pull through, doing a good portion of what I intended at the event. To everyone who was there, I hope you had a fantastic time and were able to really use the event as a jumpstart for collaborations of your own. Now, make sure you spread the word on what you’re doing, and carry some of that energy and ingenuity into our discussion lists and other venues! I hope everyone has or had safe travels home and we’ll see each other soon online.

FUDCon Blacksburg, Day 0.

I’ve been a little ill for the past few days, but not gravely so; there was no chance I was going to skip FUDCon when it’s in my own home state. So yesterday I had a great drive from home to Blacksburg — the roads were clear, the weather was mostly sunny and 60 F, and of course I was in the swanky new funmobile, so it was a totally enjoyable ride. I picked up Jon Stanley at the Roanoke airport, and since Justin O’Brien happened to be on the same flight, I grabbed him too for the ride to Blacksburg.

We checked in at the Inn, and saw a number of Fedora folks already there, including Spot, Robyn, Kevin Fenzi, and Peter Borsa who flew in from Hungary! I also ran into Red Hat genii Phil Knirsch and Karsten Hopp, in from Germany. I had dinner with Dan Walsh, Bill Nottingham and Eric Paris at a typical collegiate hole in the wall nearby called “Top o’ the Stairs.” It was very nostalgic, between the good barbecue, “unassuming” decor, and beer in plastic cups. Great company and a good time. My navigational skills proved barely adequate to get us back to the hotel but we did make it without disaster, fortunately.

I said hi to many other Fedorans at the hotel when we returned, and since I wanted to get some sleep to conserve health before FUDCon started today, I turned in a little early. (Well, early being relative; I stayed up until midnight catching up with work email and a couple other tasks.)

We’ve started the day on a great (albeit incredibly cold!) note, with temperatures around 25 F here in Blacksburg but a very warm and hospitable environment in McBryde Hall at Virginia Tech. I’m currently sitting in an early session regarding secondary arches with Phil, Karsten, some IBM guys, Garrett Holmstrom, and a smattering of other Red Hat and Fedora folks.

Later today, assuming my voice holds out, which is not a given, I’ll be blundering my way through a session on Drupal internals. Also, I’m going to drop by a “try my keyboard” session that Toshio Kuratomi put together. I brought my new Das Keyboard Model S Silent with me, so it will be one of the models available to try. Looking forward to a great FUDCon!

Comin’ round the mountain.

On Thursday, I’ll be driving to FUDCon in Blacksburg, VA. FUDCon in North America is an event I look forward to attending annually even though I’m not neck-deep in Fedora as often these days. I used to love going to the international FUDCons as well, and I’m thrilled to see those events being planned in advance on a regular basis.

I get to drive to this particular event, because it happened to end up only about 4.5 hours drive from where I live. That suits me fine, because I got a new car (warning: Flash) I can’t wait to take on its first long trip. Weather should be fair for this time of year, I hear. I also got some new vanity plates that will touch the hearts of Linux geeks, but probably elicit only head scratching from others. However, this post is about more than my car, as much as I like that topic!

I wanted to say a couple things about what I’m planning to do at FUDCon. First, I plan to spend some time with the Fedora Insight crew on Friday night and on Sunday morning. I want to see the feature sets the amazing Peter Borsa has been working on, and hopefully we can make some progress on streamlining deployment so other people can help. We’ll also be working on Sunday with a designer (cross fingers!) to design an interface for a project/events calendar. Unfortunately, I’m leaving Sunday afternoon to get home that night, but I will try to provide a ride out of town to the airport for anyone whose schedule matches up.

By the way, you may want to check out the travel planning page if you need to arrange rides.

The other thing I’m planning is an open workshop on Saturday on Drupal internals. I still haven’t decided whether this is best done as a workshop vs. BarCamp. I’m interested to know how many people really would show up — which means it might be good for me to pitch this at BarCamp. If there’s very little interest, I can spend the day learning instead of blowing hot air. But if it turns out people are interested, I have some books and materials I’m bringing with me that I can recommend too. As usual, I will be taking on the role of “person with meager skills who managed to scramble onto the first plateau with help, and wants to pass it on.” (It worked for PyGTK, maybe it will work here too!) Thankfully Peter will be on hand, and I trust he won’t let me get away with horrible errors.

There’s an enormous list of proposed hackfests and workshops on the wiki page. That’s fantastic, and it means we’re going to have a very content-rich conference as usual. I also see the General Schedule on the wiki is quite bare. I believe the organizers are encouraging talk owners to try to schedule in advance — at least when it comes to the hackfests and workshops. My understanding is that these form an outgrowth of the BarCamp — essentially widening the schedule for Saturday. That means there will be a lot to choose from, so I hope everyone brings not just their thinking caps but also their voices and appropriate input devices to participate. UPDATE: Robyn has a great FUDCon blog post on scheduling. Go read it. Now.

I’m looking forward to seeing a bunch of my Fedora friends there, and of course celebrate at the ever-entertaining FUDPub event. Remember, though, that Sunday starts early, so don’t go overboard! The statute of limitations has expired on my one FUDCon event that was a little too entertaining, so I’m allowed to revert to schoolmarm mode now. But seriously, there’s so much to do and see at FUDCon that I’m sure people will put the priority on content and collaboration as always.

Hope I see you there!

© 2002-2012 Paul W. Frields License: CC BY-SA 3.0. Some rights reserved.

Switch to our mobile site