BlueBubble: What I learned

I had a lot of fun recompiling Gnome 2.32 for Fedora 15, and a lot of help too. Here’s a list of things I learned, in no particular order:

  • fedpkg is the best thing ever. It grabs the specs, it builds the rpms, it cooks bacon. (More on that later)
  • The Fedora Project Weightless Packager Cube is better than I thought. (It’s the one on the right, with no preview image)
  • You can’t install 32 bit and 64bit -devel packages of every library, therefore needing a Virtual Machine or a secondary computer
  • If you’re on 64bit Fedora, installing 32bit -devel packages will let you bypass the BuildRequires, but will fail because the 64bit package isn’t actually installed.
  • If you’re on 32bit Fedora, installing the 64bit -devel packages will let you bypass the BuildRequires but will fail because the 32bit package isn’t actually installed… (See what I did there? Yeah, took me a while to catch on too)
  • Building on a Virtual Machine is slooooooooooooooooooow.
  • I spent a couple of hours chowning and chmodding an RPM trying to get rpm –resign to work. (See below)
  • This bug needs love.This bug needs love.This bug needs love. (It’s worth saying three times just to get you to click it)
  • Building as root is a terrible, terrible idea.
  • There’s a huge difference between rm -rf %{_libdir}/* and rm -rf $RPM_BUILD_ROOT%{_libdir}/* (See above)
  • There are build orders for a reason. (And I wrote a song about that)
  • createrepo makes creating a repository an extremely easy task.
  • The comps.xml file isn’t built by fairies, but is powered by Dark Elf magic.
  • Fighting against artificial obsolescence is kinda hard.
  • If you Provide: %{title}, and you Conflicts: %{title}, yum will throw a warning. Use Conflicts: %{title} >= {your-version} instead.
  • The best way to avoid artificial obsolescence is to rename your package and skip the Provides clause.
  • Google returns about 2,190 results for “artificial obsolescence”.
  • If you listen to your heart, it goes “lub-dub” “lub-dub” “lub-dub”
  • rsync is like my bff now.
  • Adding alias ding=”play /usr/share/sounds/freedesktop/stereo/complete.oga” to your .bashrc is an absolute must.
  • Adding alias bake-on=”fedpkg local && ding” to your .bashrc makes building tastier.

As a closing note, I’ve got both 32bit and 64bit packages uploaded to the BlueBubble repository. If you’re having issues, clean your cache.

Tagged with: , , , ,
Posted in packaging, rpm
4 comments on “BlueBubble: What I learned
  1. Great article, when people share their insights that is great. I still can’t get GNOME 2.32 Fedora 14 iso built via livecd-creator :(

    I would like to ask you to join Fusion Linux development team if you are interested to join our project.


  2. J says:

    “If you’re having issues, clean your cache”
    That’s what she said :)

    Thanks for the hard work.

  3. Perberos says:

    Es increible que en GNU/Linux, uno no deja de aprender cosas.

    Como sabrás, en el proyecto Mate, yo he aprendido muchas cosas nuevas (Y sigo aprendiendo en cada momento que le dedico a revisar el codigo). Aprendido a crear mejores shell scripts. Modificar y crear archivos para automake y autoconf.
    Tambien a construir scripts para autogenerar paquetes Deb al estilo PKGBUILD. Y me gustaria tambien hacerlo para RPM.
    Todo está plasmado en todo el codigo que he escrito :D

    Y en cuanto a lo que mensionas de 32 bits y 64 bits. Existe una forma de construir paquetes de arquitectura cruzada. Usando fakeroot.
    Yo soy muy perezoso para llevarlo a la practica, pero se vé más conveniente que tratar con maquinas virtuales.

1 Pings/Trackbacks for "BlueBubble: What I learned"

Leave a Reply


June 2011
« May   Jul »