Definite's Extractor

My findings on Life, Linux, Open Source, and so on.

Tag Archives: rpm.

zsh: sequence of options matter.

I have been suggested that zsh is the ultimate shell that is ever needed. So I gave it a shot for months. At first, I was quite impressed of it’s completion on make targets, until I encountered two commands: rpm and yum, which were painfully slow.

I was looking for the script/hack/template that can speed up the rpm completion, but no prevail. I also wonder why nobody bother to fix it.

Today, I was going to give up zsh and turn to bash+ bash-completion, as that combination actually fit surprising good to my working style (but I still miss tcsh-like completion). Suddenly, I realize that sequence of options might be the key. So I try to use

rpm -ivh

instead of

rpm -hiv

which I always use.

And ta-da, it works.


Unpacking of archive failed on file xxx; cpio: md5 sum mismatch

Today I tried to build libsvm with koji for EPEL-5, but failed with following message:

error: unpacking of archive failed on file /builddir/build/SOURCES/LibSVM-svm-toy-48.png;4af11a25: cpio: MD5 sum mismatch

I think I did include it. So after I see this post, I recalled there is a command, namely rpmbuild-md5 to pack md5 info in Fedora11-built rpm.

I tried it, and koji completed building. 🙂

Project Denture: package manager for Fedora Long term support (LTS)

Recently, there is a thread about Fedora Extended Life Cycle (ELC) again. Old topic as it is, I am still interested in it.

The discussion mainly focuses on:

  • How are security patches being delivered?
  • ABI/API compatibility.
  • How long exactly are we going to extend?
  • Which legacy version are we going to support?
  • What resource (people who do the maintenance, disk space, etc.) does it require?

Instead to specify which release to be the LTS or ELC version,
I hereby suggest another approach, namely, project denture, it helps old releases
to chew on the new packages. 🙂

What does it do? For example, you want libwnck>=2.18 in Fedora 6, so you can switch the viewport in Beryl by clicking on the windows’ pull down menu. However, CentOS5 only offer libwnck-2.16 which doesn’t offer the viewport support.

Denture can help by DIY the libwnck rpm for you.
Firstly, it analyses the dependencies of libwnck from the current release,
at this time, F-11).
If the dependencies conflicts with black-listed packages (more on that later), it will fall back to the previous releases (at this time, F-10, F-9 and so on..) and try again, until:

  1. libwnck of newer releases (Fedora > 6) are all conflicts with black-listed packages.
  2. One of newer releases (say F-7) does not conflict with black-listed packages.

In former case, the Denture returns “Failed to upgrade” and list the conflicting black-listed packages. Otherwise the Denture builds all the middle rpms and installs them for you.

Black-listed packages

Usually, people sticks with older releases because they have some packages they don’t want to be changed. These packages, along with significant system packages, e.g. glibc, glib, python, should be black-listed and they won’t be changed.


How are security fixes being delivered?

Denture can build it for you as long as the fix does not require higher version of black-listed packages.

ABI/API compatibility

Denture should have no problem if the dependency information of
the target packages and middle packages are correct and precise.
If not, then the incorrect packages need to be black-listed.

How long exactly are we going to extend?

Denture can build it for you, as long as the newer fixes or updates do not require higher version of black-listed packages.

Which legacy version are we going to support?

Denture can build it for you, as long as

  1. Denture can build on top of it;
  2. and the black-listed packages does not get in the way to build newer packages.

What resources does it require?

Any computers with sufficient computation power and storage space to build and store rpms. Of course you can establish a repository that stores the dentured rpm for other users.

What if the packages change names (e.g. qt->qt3, qt4->qt).

Simple answer: put those in black-list.

Slightly longer answer: I accept any suggestions that solve that problem.

Denture might break the system!

Sadly, it might be true. So Denture will show big, scary warning such as:
“Denture might break your system, burn your monitor, make your harddisk scream like banshee….

When will denture be released?

No idea, maybe after I finished WritRecogn.