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-buildThe 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!
|
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:
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:
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 1.Yesterday was a hackfest/workshop day at FUDCon Blacksburg. I spent a little time listening in on secondary arch work going on around Fedora. It sounds like there is a lot of effort going into keeping secondary arches rolling really smoothly through Fedora 17 and beyond. There were some folks from IBM and Red Hat in attendance as well as other interested community members. This workshop went most of the day, but I wasn’t able to attend the whole thing. I had to prep a short deck for my workshop on Drupal internals, which I managed after lunch. The idea behind this session was to start walking through internals of Drupal modules and the Drupal API. The goal was to convince the attendees that not only is Drupal fairly easy to customize, but you don’t have to be too skilled to start writing a Drupal module. To reach that goal, we walked through a fairly simple module I wrote that allows Fedora Insight to authenticate users and map roles via the Fedora Account System (FAS). he great thing about the workshop was there were a couple of Drupal professionals in attendance! So as a bonus I got some excellent suggestions about my module as we went through it. Isn’t that what open source is supposed to be about? Yes, Dear Readers, it is — more eyes on my code, live in a session, meant a bunch of shallower bugs for me to fix. So, needless to say, the workshop went quite well. I visited the “Try My Keyboard” workshop that Toshio set up, along with the Das Keyboard Silent Professional that I use at home. I tried several there, and one of them was a model based on Cherry MX Blues (like the non-silent Das Keyboard I considered) I really liked. It was fun to try out each unit in a really discriminating way and compare feel in terms of stroke, feedback, and effort. I then attended the Board session which was a review of 2011 and how to move from the level of very high-level strategic goals to actually fixing some problems in Fedora and improving life for contributors. The consensus seemed to be that the Board members will champion specific fixes themselves — by contributing directly to the solutions. In other words, they’ll roll up their sleeves and get involved, which is always an approach that works well in a community like Fedora. The only suggestion I offered, which I hope the Board will take to heart, is that as they think about what they want to accomplish for 2012, they should consider how they will know their fix works (measure it in some way). The Board is made up of fantastic individuals and I’m sure they will come up with worthwhile initiatives and bring their formidable skills to bear on helping the community work through them as a team. We’ll be hearing more about this at the beginning of February from what I understand. Finally, I got together with Red Hat trademark attorney (and my buddy) Pam Chestek, Spot, Jared, and Ian Weller to go through the Fedora trademark guidelines with a fine toothed comb in advance of the session to cover those revisions on Saturday. We were able to tease out a lot of additional bug fixes and extra clarity and it was time well spent. Unfortunately, by the time we finished, around 7:45pm, I was starting to feel pretty low. I’d been teetering on the edge of a cold (or some sort of bug) for a few days, but I actually became a bit feverish in the evening — feeling cold in rooms that were clearly not, even when I dressed too warmly, and so forth. But there was more to do; no rest for the wicked as they say. I caught a quick but tasty dinner with Pam, and we enjoyed discussing the adventure of buying a car. I’m sure I was not as chipper as usual and hopefully wasn’t bad company — sorry if I flagged a little, Pam! After that I met briefly with Spot and Robyn to go over logistics for the next morning’s BarCamp and keynote activities. Robyn, being the saint she is, brought me a couple doses of NyQuil. So immediately after that, I headed to my room to burrow under covers and try and sleep off the fever. Unfortunately, that meant I missed the Fedora Insight hacking I’d suggested for Friday night with Peter Borsa and Pascal Calarco. It was awful to feel so sick I couldn’t take advantage of having a wonderful team of collaborators in one place — especially since Peter was here from overseas. (Fortunately they generously forgave me!) Thankfully, though, I got a full night’s sleep and in the morning I felt better than I had in a couple days, so I could be up early and help get ready for BarCamp. I’ll post more about the BarCamp and Day 2 tonight or tomorrow! |
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! |
Enrichment day 4.This week was the last enrichment class for my group of fifth graders. As I reported in the last installment, the syllabus ended up changing a bit to adapt for the unexpected difficulty of some of the concepts. Variables in particular were difficult, but eventually the students started to understand them pretty well. This week built on variables to teach the concepts of conditionals and loops, using the if and while statements in Python. It was at this point that I could tell that most of the students had really grasped the concept. One of our exercises was to follow the logic of a simple counting/printing loop. The kids seemed to like putting themselves in the role of the computer. It was also at this point that the kids started to understand the power of booleans (True and False). We tried a number of additional comparisons to understand cases where conditions evaluated to each. The emphasis on True and False paid off in the section where we discussed conditionals and loops because we could pay more attention to the actual branching operation, as opposed to getting stuck on figuring out why the branch happened. This week I also discovered what I think was a good way to increase the idea of collaboration in the class. Obviously there wasn’t time to check every child’s work at every step of the way. But I could make things easier and less pressured on the kids by rotating a “look and see” duty around the class. Since the class was relatively small (only six kids), I could have all of them gather around one person’s console to see the results of a program or exercise. We could even figure out what went wrong together in some cases. Hopefully this removed a little of the pressure of having the instructor point out something that was wrong — a friend could point it out and even help fix it. Of course, it wouldn’t be a last class without some bonus for the kids! Thanks to the fine people at the Fedora Project, I had stickers, temporary tattoos, and buttons for the kids, which they loved. They also got to take their Fedora Live USB keys home, which several of them had been waiting for since the first class. Speaking of keys, I sent home an information sheet for the parents to go with the keys, so they’d understand what was on it, how to use it, and where to find more information and help. The keys also had two complete electronic books (both CC BY-SA licensed, check them out here and here) included that are specifically aimed at teaching Python to kids, so if the kids want to go further they can. A couple of the students demonstrated really serious aptitude, so I think chances were good the class ignited the imagination of a future computer genius! I’ve posted the last lesson (and miscellaneous resources) in my fedorapeople space, and as with previous lessons, it’s all licensed as CC BY-SA 3.0 so it can be reused by others. I hope you got something out of reading about the class. I had a great time teaching it and I think the kids enjoyed it too. Thanks again to my employer, Red Hat, for lending me a few hours this month to give back to some kids in my community. |
Enrichment days 2 and 3.I’m sorry I got behind in posting about the enrichment class last week. After week 1 went so well, I thought I’d easily be able to post updates weekly, but alas, it was not to be. However, this wasn’t just because of other workload. The week 2 class actually didn’t go as quickly as the week 1 class. The lesson plan I thought would be light enough to cover in one session has actually taken up the hours for both weeks 2 and 3. I’ve posted the lesson in my Fedora People space. It turns out that one of the most difficult things for the kids to grasp has been return values. That is, understanding that when you run a function in Python, a value is often generated as a result. Python can either do something with it, or not. This is deeply tied to understanding the usefulness (if not the concept) of variables as a way of holding on to those results for later use. This concept is inherently difficult for fifth graders who haven’t yet been exposed to concepts of algebra or the unknown. Math and science up to this point in their education are decidedly concrete, and focus strictly on known quantities. I underestimated the difficulty of introducing the concept of an unknown, indeterminate object like a variable. Fortunately, Python has made it simple for the kids to try smaller steps on their way to understanding this concept. Python’s particular style of input/output at the interpreter allows them to see how return values are generated. Then it becomes a matter of understanding the concept of variables, and assigning that return value to a variable. This is not as easy as it sounds for fifth-graders, but by the middle of week 3′s class light bulbs were switching on! Regardless of the difficulty of the class, the students in general have loved the class, and are excited when they show up each day. I wish I had more time with them, but alas, the class only lasts for four weeks. We have one more class coming up on the Monday afternoon after Thanksgiving. Based on the experience thus far, I expect we’ll spend the majority of the last class on conditionals, and understanding the if statement. Courtesy of the Fedora Project, I have some wonderful swag items to give out which I think the kids will love, like buttons, stickers, and temporary tattoos. Also I plan to give them their Live USB keys, as well as a note for their parents on what the keys contain and information on how to use them. I will try like mad to have a blog post up sooner after next week’s class! |
Enrichment day 1.Yesterday was day 1 of the enrichment class I’m teaching at my daughter’s elementary school. The class is elementary computer programming using Python, and has a total of six students, all fifth-graders. Actually, the first class only had five, because one went home on the bus by accident instead of staying at school for the extra class. The first day is never the best day, because there are a lot of introductory things to get out of the way. In our case, I needed to show the kids some essentials for how to open programs, write and save files, find them again, and start up the Python program. This might sound really easy to you and me, but for fifth graders one needs to adjust the expectations. Not every child is comfortable with a keyboard, for example, and I couldn’t assume that every child had ever typed a document before just because my child had. As it turns out, we really needed every minute of class to cover our material, which made me glad I didn’t overschedule the tasks in the class. We started with some basic information about what software is and why it’s important — that without software computers are basically as dumb as a box of hair. The kids enjoyed this explanation; I demonstrated the difference between instructions for computers and humans by having one of the students walk down to the end of the room and back. I didn’t explain to him, of course, how to get up from his chair step by step, push his chair in, turn to the left, put one foot in front of the other, etc., etc. So that made a great example for how computers have to be told everything explicitly. This made it easier, later in the class, to have the kids understand why the computer gave them an error in certain examples I set up. I was impressed with how quickly the kids picked up the GNOME 3 interface, even though it’s somewhat different than the computers they’re probably used to. Most of them figured out the overview and how to find applications very quickly — so I had to get them back on track once they found the games! They also had no problem moving, resizing, and closing windows. The computers in the school lab need to be powered off at night according to school policy. It was a little tricky to show the kids how to shut down the systems, but other than that the transition was pretty smooth for most of them. One child was uncomfortable enough at the computer that I suspect she hadn’t much experience at all. She seemed worried about doing things wrong or breaking the computer, so I tried to go a little out of my way to give her some positive feedback and tell her she was doing a good job! We got all the way through the ending exercise, which was to let the kids fire up Python 3 and have the computer do some math problems for them. I even managed to tie into one of the kids’ current math lessons, which is on order of operations. They were really impressed the computer knew how to do their homework for them! I’ve put the day 1 labs in my Fedora People space in case you’re interested in seeing what we covered. I would also be remiss if I failed to thank my employer, Red Hat, for giving me the flexibility to take on this extramural project. |
Note for Fedora 16 early testers.If you’re like me and you couldn’t wait to see Fedora 16 in its pre-release state, you take on the risk of any pre-release. Sometimes things are broken, or break during the fixing process, with the goal of making everything more awesome in its final form. Today I ran into such a problem, and I wanted to share it. Hopefully this problem should be fixed in the final release; I’ve already filed a bug for this issue and it’s been resolved in a later package. Currently the Fedora 16 updates-testing version of selinux-policy* packages is 3.10.0-43.fc16. This policy doesn’t adequately cover some file locations used by systemd to handle passphrases on LUKS encrypted file systems. If you use encrypted file systems (at least as provided by the Fedora installer) and usually type your passphrase during the boot process, you’ll probably be affected. The plymouth loader won’t get the request to display the passphrase, and you won’t be able to enter it. So systemd will timeout waiting for the ability to mount those file systems, and your boot will fail with a maintenance prompt. If you want to get past this problem, provide your root password and then enter the following commands:
This will present the necessary prompt at the console (once per file system), and then try to boot to the default target again. To fix the problem, once you’ve booted successfully, downgrade the affected packages:
That should get you back the 3.10.0-40.fc16 packages, which don’t encompass checks on the affected systemd files and therefore don’t produce the errors. As I mentioned, this has already been fixed and new testing updates should be out shortly. I wanted to make this particular problem visible since it does actually prevent booting an installable configuration right now, since I know many intrepid testers may run across this blog on our Planet. |








