Category Archives: Fedora

Enjoy the sweet, sweet taste of Salt-0.9.4

If you haven’t heard, salt 0.9.4 has arrived. If you haven’t used salt before, I’d highly suggest reading about it here.

I have now RPMs built for Fedora and EPEL6 (EPEL5 requires some outside help). They are available from my personal repository on fedorapeople.org. If you are interested in trying them out, you can just grab the repo definition for your system.

A review request

Salt development moves very fast. In the past 2 weeks or so, I’ve posted 2 new releases for salt in my review request. I’d really like to get salt into the Fedora and EPEL repositories, but I need this review to be completed. I will happily do a review swap!!

Cheers,

Herlo

Skein 2.0 is here: Come get your GoOSe!

If you have ever wanted to help build your own Linux enterprise rebuild, come join the GoOSe Project and get involved!

Today and tomorrow we’re sprinting. We also have a sprint scheduled for next week!

Why you ask? Well, I finally have had enough time to finish coding skein and it’s ready for release to 2.0. There are most definitely some bugs and other things that need to be completed (read: documentation), but it’s functional and is ready to get us to the end of our first rebuild phase.

We have a ways to go, and a goal of EOY 2011 for our first Alpha!

Come join us at #gooseproject on irc.freenode.net and get started today! More information is available at http://gooseproject.org

Cheers,

Herlo

GoOSe and Skein: The road to 2.0

As some of you may already know, I’ve been a part of this enterprise rebuild project for a while now and things have been going pretty well.

As I have been working on getting the import functionality into skein pre2.0, there are a few features that have come to mind as I go along. It’s very interesting to see these features appear once the tool is out in the wild. Some of them have come from other users/contributors and some from my brain, but here’s a dump of what I have been considering adding to skein:

  • skein revoke – (this one is from imak, and quite a good idea) It’s possible to accidentally request a repo that you didn’t mean to request. skein revoke will allow you to specify that you erred and will allow you to close the request with a nice message you provide.
  • skein request from an SRPM – the above request brought forth something I’d been thinking about doing, but hadn’t really formalized. I suspect this feature will be a good bit of our automation in our second push to finish GoOSe 6.0 by year’s end.
  • skein update – providing this feature will probably happen after 2.0. The plan would be to allow an already existing repo to be updated to a new release or version of an SRPM. In addition, it’s possible the update will be to a new branch, which update should be able to handle.

As for the rest of the features, the code for export was just finished today. I expect to be able to finish push, upload and import by the end of this coming week. Then it will be on to importing the rest of the upstream tree and building GoOSe 6.0

Cheers,

Herlo

GoOSe Project: Progress toward Skein 2.0

As some of you may already know, I’ve been a part of this enterprise rebuild project for a while now and things have been going pretty well. Recently, though, I’ve made some good progress on our import and build tool, skein.

Skein’s goal is provide easy functionality for rebuilding SRPMS from upstream and import them into github, where they can be built using our koji instance. The process is actually easier than one might think:

  • skein request – Request a particular repository be setup on our github organization for the specified package. The package itself should be able to be requested from the SRPM, but that feature is not yet available.
  • skein query – To verify the request has been placed, this shows the open queries (by default).
  • skein show – For a particular request, show the detail of who requested and the purpose of such a request.
  • skein grant – Only an admin can grant the repository. Only members of the admin team on our github organization can grant the repository.
  • skein extract – Once granted, the SRPM can be extracted and placed into two basic directories:
    • /path/to/package/lookaside/ – contains the archive from the SRPM, usually a tar, tar.gz or zip file. The contents of this directory can then be pushed to the lookaside cache.
    • /path/to/package/git/ – contains the spec file, any patches and other sources that are not archives. A Makefile and sources file are also generated along with a .gitignore to provide useful functionality during the koji build

Other functionality is currently under development:

  • skein push – Once extracted and committed to the git repository, this pushes the git commits to github.
  • skein upload – Once extracted, this uploads the content of the lookaside directory to the lookaside cache at pkgs.gooselinux.org.
  • skein import – A combination of skein extract, push and upload, since that seems fairly logical.
  • skein build – Albeit mostly complete, it will need to be tested with an SRPM that has been run through this process.

I took a few minutes the other day and created a video of the completed process. I post this here for others to use for their benefit, but also so I can have it in another place besides my laptop.

Skein video

Cheers,

Herlo

Happening Today: The Very First GoOSe Sprint!

We’re starting to really ramp up on the GoOSe Project. If you haven’t heard about this project, check out my previous posts.

Well, I have been meaning to write this post every day this week, only to be bombarded with work or other projects getting in the way. However, I am currently sitting at the Beans & Brews at 45 East 11400 South in Sandy, Utah participating in the very first GoOSe Sprint.

My goal today is very simple, get skein 2.0 out the door for testing. Most of contributors will be using skein to build the upstream packages necessary to make the distribution work, so I need to finish this work.

There are other tasks being performed today, including documentation, package building, automating tasks and finishing up the new website.

If you have any interest in seeing how an enterprise quality distribution can be rebuilt using free software, we’d love to have you stop by #gooseproject on irc.freenode.net. The GoOSe mailing list is another great place to read about what we’re doing.

Or if you like physical space, come on by the Beans & Brews today from 10am until 2pm. There should be at least a few of us working on something all day long. Just look for the nerds in the corner getting all excited while discussing phrases like ‘build process’ and ‘skein grant’ :P

Update: We’re going to be moving down to the Beans and Brews at 155 East 13800 South at approximately 12:45pm

Cheers,

Herlo

Building RPMs and ‘This Week in Fedora’ interview

Many of you may have already heard from my good friend Derek Carter about the GoOSe Project. If you haven’t, I’d love to hear your comments on what we are doing. I’d also encourage many of you to come and join the project and help us to build a community of contributors dedicated to making the best enterprise Linux rebuild available.

Recently, Jonathan Nadaeu and I sat down and discussed Fedora, GoOSe and a few other fun things on This Week in Fedora. The majority of the interview was about the GoOSe project and it covers a good bit of why we’re doing what we’re doing, how it works and how to get involved. Have a listen, and come hang out and help out the project!

In addition, I was asked to do a presentation this week on how to build RPMs at the Ogden Area Linux User Group (OALUG). While I teach this in my day job as a Red Hat Trainer, I’ve never given my own presentation. I’m really excited to share some very useful tips and tricks on how to build an RPMs and set them up in a custom repository for your company or for others to consume. It’s very cool and very easy to do most of this work.

So come on up to OALUG tomorrow night if you can.  I’ll make sure to follow-up here with the useful links for those interested.

Cheers,

Herlo

Building an OS: The workflow!

Over the past few months, I’ve been working on a project which has inspired me to think about how a complete Operating System is built from the ground up. Luckily for me, this process is pretty well documented by the Fedora Project.

The project I’ve been working on does require a bit of thought around enterprise Linux versions run by a community. There is the ever amazing CentOS, Scientific Linux and a few others who have been around the block a time or two. The work that they have done has been immense and very helpful to many, including me.

For my project, the work was about building a fully binary compatible, enterprise-ready, community version of Linux, very similar to what CentOS and others have done. The question always comes ‘why?’ which will be addressed later on in future posts. Suffice it to say, the work we’ve been doing has paid off in both a individual and community sense.

In the beginning of this project, it was clear that we needed some tools to make things work the way we wanted. Luckily, there were tools out there to do a good portion of our work. Tools like koji, mock and of course Linux to bring it all together. But other tools seemed to be missing and I went on a quest…

The first tool that seemed to be missing was a way to import src.rpms from the most popular upstream vendor. These packages needed to be rebuilt by koji in some fashion, but just taking the srpms and rebuilding them had been done before, and seems to be the preferred way to date. In my mind however, it seemed that we were missing a step. Enter skein.

While skein is still very green and will need quite a bit more work, it accomplishes the goal of extracting the srpms into two parts. This tool basically sets up two things; a git repository on github.com (for now) along with a location and verifiable way to store the archive stored inside the srpm, called a lookaside cache. If one looks at the way the Fedora Project maintains their source, this process is very similar.

Once the srpm is imported with skein, it can be built with koji. At the moment, this process is fairly manual, but the plan is to improve skein to also allow building from the repositories. However, another bit more automatic way to build would be to use a git hook. Luckily, github provides several ways to accomplish this, including a custom URL to which an HTTP POST can be sent. At which time, koji would download the spec file and source from the appropriate locations and build a srpm.

Koji completes its task by building the binary RPM(s) and appropriately tagging the successful builds. Once complete, mash can be used to generate custom repositories to prepare for composing actual iso images. Mash is a command-line tool, again used by Fedora.

Once the repositories are generated by mash, pungi takes over. The process of building an iso is actually very simple, just a kickstart file, some repositories and pungi are used to create a fully installable DVD or multi-CD iso image.

Here’s a bit of my excellent artwork to better describe the process.

A couple things to note about this process is that while it is starting to become clear how to build an OS from an upstream vendor, there are parts that still haven’t been addressed. Currently, we can import with skein and rebuild the SRPM and build the binary RPMs with koji. We yet to have enough binary RPMs to actually construct a buildroot, but we are getting very close.

Automating the builds with git hooks and a skein build process is a nice big step toward making our own Operating System possible.

The other big piece of the puzzle is dependency resolution. Now this has been mostly resolved by tools and apis like Yum and RPM, but I still feel very much like a n00b when working with them. My hope is to figure out that process in the next week or so, and update skein to make building faster and easier overall.

Cheers,

herlo

What I did today at Ohio LinuxFest – Salt

Yes, I was at the Ohio LinuxFest this weekend!

Even though I did attend several presentations on Saturday. My day was mostly taken up with something else…

I built rpm packages for salt!

If you aren’t sure what salt is, check out their site and read the authors blog. Essentially, salt makes it easy to run a set of commands on multiple machines all at the same time, returning results quickly and asynchronously.

If you are interested in trying out salt on your system(s) and run Fedora, RHEL, CentOS, etc. feel free to try out the rpms. I’ve currently got a review request on bugzilla as well if anyone is interested in providing a review.

Cheers,

herlo

Fedora Infrastructure will soon have fpaste-server

Today, I deployed the latest fpaste-server package on a development box within Fedora Infrastructure.

Test fpaste-server

I’d like to get some folks to hit it and do some testing. If you have time, I would love it if you could take a moment, read below and help.

On the development server

To help, just point your browser to http://paste01.dev.fedoraproject.org/ and add some pastes. In fact, it should be pretty sturdy. If you do happen to find a bug, please file it on our fedorahosted.org Trac instance.

Roll your own

Another way to help is to install your own instance of fpaste-server. I’ve posted some simple installation instructions for anyone who is interested.

We are always looking for helpers to make fpaste-server better. Please contact me (herlo AT fedoraproject doT Org) if you are interested in helping improve or maintain this simple and fun project.

Cheers,

herlo

Packaging Update: pydf now in Fedora

Recently, my friend beandog introduced me to pydf. After playing with it for a couple of days, I decided I liked it enough that I packaged and included into Fedora. (If you are interested in other packages I maintain, you can check them out here.)

What is pydf?

$ yum info pydf

Name             : pydf
Arch               : noarch
Version          : 9
Release         : 3.fc15
Size                : 14 k
Repo              : updates
Summary       : Fully colorized df clone written in python
URL                : http://kassiopeia.juls.savba.sk/~garabik/software/pydf/
License          : Public Domain
Description   : pydf displays the amount of used and available space on your file systems,
: just like df, but in colors. The output format is completely customizable.

I was also able to send in a patch for the python 2.4 version to the upstream author. He was very happy to receive and apply the fix. The patch is also available in the source rpm.

A nice looking screenshot of the output from pydf is below:

Cheers,

herlo