Free software improvements

Two things that have been annoying me for a long time have been fixed recently, and I discovered those two new features the same day (rainy week-ends are good for you).

  • OpenSSH’s problem with networks with large bandwidth-delay product has been fixed in OpenSSH 5.1. The problem was that OpenSSH has its own windowing system over TCP’s, and that its buffer were two small to be able to maximise the bandwidth on, say, a 1 Gbps link with 10ms latency, so you would get a ridiculous bandwidth because of that, even if TCP was correctly tuned. A patch (hpn-ssh) has been existing for a long time, but strangely, people don’t like patching their SSH servers and clients.
    That means I can now get decent bandwidth using scp or rsync over long distance links.
  • The radeon driver now supports TV out for R600 cards (including my X1250). I can now stop using the proprietary fglrx driver, and make the computer under the TV completely free!

OK, both changes have been there for a long time, but I’m sure I’m not the only one who didn’t notice them at the time. Big Thank You to both groups of developers (especially to the ati/radeon developers, who have been very helpful on IRC to troubleshoot my setup).

Bootstrapping Centos or Fedora from Debian or Ubuntu

Here are some notes about bootstrapping a Centos or Fedora chroot from Debian. It should also work from Ubuntu with minor changes, but I haven’t checked. The following should really be done in a chroot, since some commands will install files in your /etc or elsewhere, ignoring the --installroot passed to yum. The following instructions are for Centos, but replacing all occurences of centos with fedora should work.

  • apt-get install yum rpm python-m2crypto. If at some point, you get error messages about rpmlib(BuiltinLuaScripts), you need to install a newer rpm package (from Debian unstable, for example).
  • mkdir -p /tmp/centos/var/lib/rpm
  • rpm --root /tmp/centos --initdb
  • Go to http://rpm.pbone.net or http://www.rpmfind.net, search for centos-release or fedora-release, and download the rpm for the version you want.
  • rpm -ivh --force-debian --nodeps --root /tmp/centos centos-release*rpm (that populates /tmp/centos/etc with information about the centos repositories)
  • yum --installroot /tmp/centos/ install yum . That fails because of missing GPG information in /etc/pki. Do ln -s /tmp/centos/etc/pki /etc/pki, then again yum --installroot /tmp/centos/ install yum.
  • mount -t proc foo /tmp/centos/proc
  • mount -t sysfs foo /tmp/centos/sys
  • chroot /tmp/centos /bin/bash --login

If you get errors about different DB versions between Debian’s RPM and CentOS’ RPM, you can try, in the CentOS chroot:

  • cd /var/lib/rpm && rm * (simplest way to avoid problems between db versions for Debian’s RPM and centos’ RPM)
  • rpm --initdb
  • yum install yum (again, to restore the rpm db)
  • yum install vim-minimal less
  • That’s all!

Update: Jaldhar Vyas pointed me to mach, and Paul Wise to mock. Both packages are available in Debian, but use config files for each release shipped in the package. Unfortunately, both packages are out of date, and don’t include Fedora 9 or newer. Also, mock doesn’t support Centos.
Anyway, both packages could use a new maintainer. Don’t hesitate to jump in!

Managing your PTS subscriptions

Subscribing to packages on the PTS is really useful to stay informed of everything happening with those packages. Unfortunately, managing your PTS subscriptions is really a challenge. Here is how I proceed to subscribe to packages I forgot to subscribe after uploading them:

  • To get the list of your subscriptions, connect to master.d.o, and run
    /org/packages.qa.debian.org/bin/get-summary-subscribers.pl | grep your@email
    That’s also a way to know who is interested in your packages. :-)
  • You can use UDD (from master) to know the list of packages you should probably be subscribed to, that is, packages you maintain or co-maintain in sid:
    psql -A -t service=udd -c "select source from sources
    where distribution='debian' and release='sid'
    and maintainer_email='your@email'
    union select source from uploaders
    where distribution='debian' and release='sid'
    and email='your@email';"
  • You can them use combine to find the packages you should subscribe to, and mass-subscribe using the email interface.
  • Then, you are done, or almost done: mass-confirming PTS subscriptions is a PITA because of #340863.

Some more info:

  • The PTS lives on master, in /org/packages.qa.debian.org.
  • The script that handles emails send to pts@ is bin/control.pl.
  • The spool dir for pending requests is spool/. The files are simple text files.
  • You can send multiple commands per email. Sending them in the subject might be broken. (at least it failed for me)
  • You don't need to take special care of the From for your emails. It's ignored (unless you subscribe without specifying an email address).