From Fedora Project Wiki

Revision as of 17:48, 29 May 2008 by Ecik (talk | contribs) (fix what migration spoilt)

FEver - FEdora version

General Information

FEver (FEdora versions) aims to be a simple and easy way to track upstream changes in Fedora's repository. Some packages don't provide any possibility to check their changes. FEver is written to check upstream version changes if possible. At (ir)regular intervals it checks for a new version and if it's found, FEver will put a new ticket on bugzilla (an example you may see here: #211783 or #220742 ).

The Basics

How To Enable Version Checking for My Packages?

It is fairly simple. All you need to do is to add your package to the list at the end of this page, in the List Of Packages section. Also you can add your package name to Check My Package Section and I will make everything that's needed to make your package be checked by FEver.

What Is The Format Of The List?

It should be easy to guess by looking at the List Of Packages . It contains three fields: <package name>, <file name> and <url>.

  • <package name> - must be the name of SRPM, CVS branch and spec file name. If your package spec creates a few packages you needn't specify them - only the main one.
  • <file name> - in fact, it doesn't have to be a file name but in most cases it is. <file name> is the regex used to check the version of a package. Usually, it should look like this: <package name>-(.*?).tar.bz2, but obviously it doesn't have to. I suggest to use a file name, because it is probably the easiest way to check what the newest application version is. You can find examples on how to make the regex in the How To Make Regex section.
  • <url> - contains an URL, where FEver will try to find the newest version. If your package is hosted at SourceForge, you should use http://prdownloads.sourceforge.net/<package name> format.

How To Make Regex?

This is the most important thing in adding your package to FEver. I've made a simple application to make checking regexes easier. It is called [#fever-check FEver-check] (check the [#fever-check FEver-check] section to find out how to get it). The first thing we should do is to find a proper URL, where FEver will try to find the newest version. Let's take bugzilla as an example. Its official site is http://www.bugzilla.org. You need to get to Download section and you'll find something like Stable Release (2.22.1) and few lines below there is a url to download bugzilla. Let's replace a version string by (.*?) and try to give that URL to [#fever-check FEver-check] .

$ python ./fever-check.py
URL: http://ftp.mozilla.org/pub/mozilla.org/webtools/
Filename: (regex): bugzilla-(.*?).tar.gz
['2.23.3', '2.23.3', '2.23.2', '2.23.2', '2.23.1', '2.23.1', '2.22.1', '2.22.1', '2.22rc1', '2.22rc1', '2.22', '2.22', '2.21.1', '2.21.1', '2.20.3', '2.20.3', '2.20.2', '2.20.2', '2.20.1', '2.20.1', '2.20rc2', '2.20rc2', '2.20rc1', '2.20rc1', '2.20', '2.20', '2.19.3', '2.19.3', '2.19.2', '2.19.2', '2.19.1', '2.19.1', '2.18.6', '2.18.6', '2.18.5', '2.18.5', '2.18.4', '2.18.4', '2.18.3', '2.18.3', '2.18.2', '2.18.2', '2.18.1', '2.18.1', '2.18rc3', '2.18rc3', '2.18rc2', '2.18rc2', '2.18rc1', '2.18rc1', '2.18', '2.18', '2.16.11', '2.16.11', '2.16.10', '2.16.10', '2.16.9', '2.16.9', '2.16.8', '2.16.8', '2.16.7', '2.16.7', '2.16.6', '2.16.6', 'submit-0.6', 'submit-0.6', 'submit-0.5', 'submit-0.5', 'STABLE', 'STABLE', 'LATEST', 'LATEST'] 
Filename: (regex):

It looks pretty good, but as you can see there are records like 'submit-0.5' or 'STABLE'. There is a possibility (a small one) that these unwanted records may confuse FEver check. To improve it, you can make a simple change. Program version always starts with a number, so let's try to put it into the regex:

Filename: (regex): bugzilla-([0-9] .*?).tar.gz
['2.23.3', '2.23.3', '2.23.2', '2.23.2', '2.23.1', '2.23.1', '2.22.1', '2.22.1', '2.22rc1', '2.22rc1', '2.22', '2.22', '2.21.1', '2.21.1', '2.20.3', '2.20.3', '2.20.2', '2.20.2', '2.20.1', '2.20.1', '2.20rc2', '2.20rc2', '2.20rc1', '2.20rc1', '2.20', '2.20', '2.19.3', '2.19.3', '2.19.2', '2.19.2', '2.19.1', '2.19.1', '2.18.6', '2.18.6', '2.18.5', '2.18.5', '2.18.4', '2.18.4', '2.18.3', '2.18.3', '2.18.2', '2.18.2', '2.18.1', '2.18.1', '2.18rc3', '2.18rc3', '2.18rc2', '2.18rc2', '2.18rc1', '2.18rc1', '2.18', '2.18', '2.16.11', '2.16.11', '2.16.10', '2.16.10', '2.16.9', '2.16.9', '2.16.8', '2.16.8', '2.16.7', '2.16.7', '2.16.6', '2.16.6'] 

Now it looks much better. Another way to check bugzilla version is to use the download site. You can use a heading: Stable Release (2.22.1). Example:

$ python ./fever-check.py
URL: http://www.bugzilla.org/download/
Filename: (regex): Stable Release \((.*?)\)
['2.22.1'] 
Don't forget to escape ( and ) chars!
You need to escape ( and ) chars because they are used on the page. Unescaped brackets are used by regex parser as grouping chars. So if you don't escape brackets in that case, they will be included in version string (and this is unwanted). Read Regular Expressions Syntax for more information.

FEver-check

FEver-check is a simple python script that makes creating regexes much easier. You can download it here . This archive contains two files, unpack them wherever you want to and run fever-check.py. Script will ask you for URL and regex. You can quit an application at any time by pressing [CTRL] +C keys. If you want to enter another URL than you did before, just press [CTRL] +D and you'll get back to typying URL.

Feedback

If you have any questions, suggestions, you found a bug etc. feel free to mail me [[MailTo(mr DOT ecik AT gmail DOT com)] .

Check My Package, please!

If you have no time to create your regex or you simple don't understand how to create it, you can add your package's name below and I will add your package to List Of Packages section. It would be nice, if you added URL aside of your package name.


* libedit http://www.thrysoee.dk/editline/

List Of Packages

 * a2ps Current.Version.is.([0-9a-z.]+) http://www.inf.enst.fr/~demaille/a2ps/
 * abcde abcde[_-](.*?)(?:\.orig)\.tar\. http://ftp.debian.org/debian/pool/main/a/abcde/
 * abook abook-(0.*?).tar.gz http://abook.sourceforge.net/devel/
 * aircrack-ng aircrack-ng-([0-9][0-9.]*?).tar.gz http://download.aircrack-ng.org/
 * archimedes archimedes-(.*?).tar.gz ftp://ftp.gnu.org/gnu/archimedes/
 * aria2 aria2-(.*?).tar.bz2 http://prdownloads.sourceforge.net/aria2
 * atlascpp Atlas-C\+\+-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/worldforge
 * blender blender-(.[^-]*?)\.tar\.gz http://download.blender.org/source/
 * blktrace blktrace-([0-9\.].*?).tar.bz2 http://brick.kernel.dk/snaps/
 * bmpx bmpx-(\d*\.\d*\.\d*(?:\.\d*)?)\.tar\.bz2 http://files.backtrace.info/releases/0.40/
 * bodr bodr-(.*?).tar.bz2 http://prdownloads.sourceforge.net/bodr
 * bouml bouml_(.*?).tar.gz http://bouml.free.fr/download.html
 * bouml-doc doc(.*?).tar.gz http://bouml.free.fr/documentation.html
 * bygfoot bygfoot-(.[^-]*?).tar.bz2 http://prdownloads.sourceforge.net/bygfoot
 * ccache ccache-(.+?)\.tar http://samba.org/ftp/ccache/
 * CCfits CCfits-([0-9].*?).tar.gz http://heasarc.gsfc.nasa.gov/fitsio/CCfits/
 * cd-discid cd-discid[_-](.*?)(?:\.orig)\.tar\. http://ftp.debian.org/debian/pool/main/c/cd-discid/
 * cdlabelgen cdlabelgen-(.*?).tgz http://www.aczoom.com/tools/cdinsert/
 * chemical-mime-data chemical-mime-data-(.*?).tar.gz http://prdownloads.sourceforge.net/chemical-mime
 * chemtool chemtool-([.0-9]*?).tar.gz http://ruby.chemie.uni-freiburg.de/~martin/chemtool/chemtool.html
 * clamav clamav-(.*?).tar.gz http://prdownloads.sourceforge.net/clamav
 * corkscrew corkscrew-(.*?).tar.gz http://www.agroman.net/corkscrew/
 * cowsay cowsay-(.*?).tar.gz http://www.nog.net/~tony/warez/cowsay.shtml
 * cpl cpl-(.*?).tar.gz http://www.eso.org/sci/data-processing/software/cpl/download.html
 * crm114 crm114-(.*?)-Blame.*?.tar.gz http://crm114.sourceforge.net/tarballs/
 * crossvc crossvc-(.*?)\-generic-src\.tgz http://crossvc.com/index.php?option=com_content&task=view&id=21&Itemid=34
 * cssed cssed-([0-9].*?)\.tar.gz http://prdownloads.sourceforge.net/cssed
 * cstream cstream-([0-9\.]+)\.tar\.gz http://www.cons.org/cracauer/download/
 * ctorrent ctorrent-(.*?).tar.gz http://www.rahul.net/dholmes/ctorrent/
 * cups cups-(\d\.\d\.\d)-source\.tar\.bz2 http://www.cups.org/software.php
 * cupsddk cupsddk-(\d\.\d\.\d)-source\.tar\.bz2 http://www.cups.org/ddk/software.php
 * cyphesis cyphesis-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/worldforge
 * dblatex dblatex-(.*?).tar.bz2 http://prdownloads.sourceforge.net/dblatex
 * doodle doodle-(.*?).tar.gz http://gnunet.org/doodle/
 * dx The latest released version is (.*?)\. Check http://www.opendx.org/download.html
 * e2fsprogs e2fsprogs-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/e2fsprogs
 * e2tools e2tools-([0-9\.]+)\.tar\.gz http://home.earthlink.net/~k_sheff/sw/e2tools/
 * ed2k_hash ed2k_hash-(.*?).tar.gz http://prdownloads.sourceforge.net/ed2k-tools
 * ekg ekg-(.{3,5}?).tar.gz http://ekg.chmurka.net/download.php
 * ekg2 ekg2-(0.*?).tar.gz http://ekg2.org/download.php
 * emacs-auctex auctex-(.*?).zip ftp://ftp.gnu.org/pub/gnu/auctex/
 * emacs-common-muse muse-(.*?).tar.gz http://download.gna.org/muse-el/
 * emacs-vm vm-([^v]*?).tgz http://download.savannah.nongnu.org/releases/viewmail/
 * eris eris-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/worldforge
 * fdupes fdupes-(.*?).tar.gz http://netdial.caribe.net/~adrian2/programs/
 * fetchlog fetchlog-(.*?).tar.gz http://prdownloads.sourceforge.net/fetchlog
 * ffsb ffsb-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/ffsb
 * fio fio-([0-9\.]*?).tar.bz2 http://brick.kernel.dk/snaps/
 * freedroidrpg freedroidrpg-(.*?).tar.bz2 http://prdownloads.sourceforge.net/freedroid
 * funtools funtools-(.*?).tar.gz http://hea-www.harvard.edu/saord/funtools/
 * gajim gajim-(.*?).tar.gz http://gajim.org/downloads/
 * gengetopt gengetopt-(.*?).tar.gz ftp://ftp.gnu.org/gnu/gengetopt/
 * gg2 gg2-(.*?).tar.bz2 http://prdownloads.sourceforge.net/ggadu
 * giggle giggle-(.*?).tar.gz http://ftp.imendio.com/pub/imendio/giggle/src/
 * glade3 Glade (.*?) </b><b> released! http://glade.gnome.org/
 * gmediaserver gmediaserver-(.*?).tar.gz http://download.savannah.gnu.org/releases/gmediaserver/
 * gnome-applet-netspeed netspeed_applet-(.*?).tar.gz http://www.wh-hms.uni-ulm.de/~mfcn/netspeed/packages/
 * gnome-build gnome-build-(.*?).tar.gz http://ftp.acc.umu.se/pub/GNOME/sources/gnome-build/0.2/
 * gnome-password-generator gnome-password-generator-(.*?).tar.gz http://downloads.sourceforge.net/gnome-password/
 * gnomeradio gnomeradio-(.*?).tar.gz http://www.wh-hms.uni-ulm.de/~mfcn/gnomeradio/packages/
 * gnu-smalltalk smalltalk-(.*?)\.tar\.gz ftp://ftp.gnu.org/gnu/smalltalk
 * goffice04 goffice-(.*?).tar.bz2 http://ftp.gnome.org/pub/GNOME/sources/goffice/0.4/
 * guilt guilt-([0-9\.]*?).tar.bz2 http://www.kernel.org/pub/linux/kernel/people/jsipek/guilt/
 * gxine gxine-(.*?).tar.bz2 http://prdownloads.sourceforge.net/xine/
 * httrack httrack-(.*?).tar.gz http://www.httrack.com/page/2/en/index.html
 * hping3 hping3-(.*?).tar.gz http://www.hping.org/download.php
 * hplip hplip-([^ ]*).tar.gz http://prdownloads.sourceforge.net/hplip
 * inadyn inadyn.v(.*?).zip http://inadyn.ina-tech.net/readme.html
 * ipython ipython-(.*?).tar.gz http://ipython.scipy.org/dist/
 * kdesvn kdesvn-(.*)\.tar http://kdesvn.alwins-world.de/trac.fcgi/downloads/
 * kdiff3 kdiff3-(.*?).tar.gz http://sourceforge.net/project/showfiles.php?group_id=58666
 * kile Latest available stable version: <a href="download.php">(.*?)</a>. http://kile.sourceforge.net/
 * komparator komparator-(.*?).tar.bz2 http://prdownloads.sourceforge.net/komparator/
 * krename the last stable release is: <.*?> (.*?) </a> http://www.krename.net/
 * ksudoku ksudoku-(.*?)\.tar.gz http://prdownloads.sourceforge.net/ksudoku
 * kyum kyum-(.*?)\.tar\.gz http://downloads.sourceforge.net/kyum
 * libextractor libextractor-(.*?).tar.gz http://gnunet.org/libextractor/download
 * libEMF libEMF-(.*?).tar.gz http://prdownloads.sourceforge.net/pstoedit
 * libgadu w wersji ([0-9\.]*) http://toxygen.net/libgadu/
 * libgdl gdl-(.*?).tar.gz http://ftp.acc.umu.se/pub/GNOME/sources/gdl/0.7/
 * libmodelfile libmodelfile-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/worldforge
 * libtasn1 libtasn1-(.*?).tar.gz ftp://ftp.gnutls.org/pub/gnutls/libtasn1/
 * libtlen libtlen-(.*?).tar.gz http://prdownloads.sourceforge.net/tleenx
 * lightning lightning-(.*?)\.tar\.gz ftp://alpha.gnu.org/pub/gnu/lightning
 * logserial logserial-(.*?).tar.gz http://www.ibiblio.org/pub/Linux/system/serial/
 * luma luma-(.*?)\.tar\.bz2 http://downloads.sourceforge.net/luma
 * manaworld tmw-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/themanaworld
 * mercator mercator-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/worldforge
 * mercurial mercurial-(.*?).tar.gz http://www.selenic.com/mercurial/release
 * milter-greylist milter-greylist-(2\..*).tgz ftp://ftp.espci.fr/pub/milter-greylist/
 * mimetic mimetic-(.*?).tar.gz http://codesink.org/download
 * mkvtoolnix mkvtoolnix-([.0-9]*?).tar.bz2 http://www.bunkus.org/videotools/mkvtoolnix/sources/
 * monotone (0\.[0-9]+) http://monotone.ca/downloads/
 * museek+ museek\+-(.*?).tar.bz2 http://prdownloads.sourceforge.net/museek-plus
 * netmask netmask[_-](.*?).tar.gz http://ftp.debian.org/debian/pool/main/n/netmask/
 * newsx newsx-(.*?).tar.gz ftp://ftp.kvaleberg.com/pub/
 * nget nget-([^+%&]*?).tar.gz http://downloads.sourceforge.net/nget/
 * obexftp obexftp-(.*?).tar.bz2 http://triq.net/obexftp/
 * openbabel openbabel-([0-9].*?).tar.gz http://downloads.sourceforge.net/openbabel/
 * opencdk opencdk-(.*?).tar.gz ftp://ftp.gnutls.org/pub/gnutls/opencdk/
 * openswan-2.4.(.*?).tar.gz ftp://ftp.openswan.org/openswan/
 * perl-Ace AcePerl-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Ace/
 * perl-Algorithm-FastPermute Algorithm-FastPermute-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Algorithm/
 * perl-Config-General Config-General-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Config/
 * perl-Crypt-OpenSSL-AES Crypt-OpenSSL-AES-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Crypt/
 * perl-Crypt-OpenSSL-Bignum Crypt-OpenSSL-Bignum-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Crypt/
 * perl-Crypt-OpenSSL-DSA Crypt-OpenSSL-DSA-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Crypt/
 * perl-Crypt-OpenSSL-PKCS10 Crypt-OpenSSL-PKCS10-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Crypt/
 * perl-Crypt-OpenSSL-Random Crypt-OpenSSL-Random-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Crypt/
 * perl-Crypt-OpenSSL-RSA Crypt-OpenSSL-RSA-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Crypt/
 * perl-Crypt-OpenSSL-X509 Crypt-OpenSSL-X509-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Crypt/
 * perl-Digest-SHA Digest-SHA-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Digest/
 * perl-HTML-Encoding HTML-Encoding-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/HTML/
 * perl-Module-Signature Module-Signature-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Module/
 * perl-Set-IntSpan Set-IntSpan-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Set/
 * perl-Text-Iconv Text-Iconv-(.*?)\.tar\.gz http://www.cpan.org/modules/by-module/Text/
 * pida PIDA-(.*?).tar.gz http://pida.co.uk/files/releases/
 * proxyknife proxyknife-(.*?).tar.gz ftp://ftp.gnu.org/gnu/proxyknife/
 * pwgen pwgen-(.*?).tar.gz http://prdownloads.sourceforge.net/pwgen
 * pyicq-t pyicq-t-(.*?).tar.gz http://code.google.com/p/pyicqt/downloads/list
 * python-dns <a href="kits/(.*)/">Stable</a> http://www.dnspython.org/
 * python-elixir Elixir-(.*?).tar.gz http://cheeseshop.python.org/pypi/Elixir/
 * python-lxml latest version is <a class="reference" href="lxml-([0-9.]+)\.tgz http://codespeak.net/lxml/
 * python-mutagen mutagen-(.*?).tar.gz http://www.sacredchao.net/~piman/software/
 * python-smbpasswd py-smbpasswd-(.*?)\.tar\.gz http://barryp.org/software/py-smbpasswd/files
 * python-vobject >vobject (.*?)</a http://vobject.skyhouseconsulting.com/history.html
 * redet redet-(.*?).tar.gz http://billposer.org/Software/redet.html
 * redet-doc redet_manual(.*?).tar.gz http://billposer.org/Software/redet.html
 * qfits Latest version: (.*?) rel http://www.eso.org/projects/aot/qfits/index.html
 * qof qof-(.*?).tar.gz http://prdownloads.sourceforge.net/qof
 * qt-qsa qsa-x11-free-(.*?\..*?).tar.gz ftp://ftp.trolltech.com/qsa/source/
 * rapidsvn <a href="([0-9].+?)"> http://www.rapidsvn.org/download/release/
 * regionset regionset-([.0-9]*?).tar.gz http://linvdr.org/download/regionset/
 * sage sage-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/worldforge
 * sextractor sextractor-([0-9].*?).tar.gz ftp://ftp.iap.fr/pub/from_users/bertin/sextractor/
 * steghide steghide-(.*?)\.tar\.gz http://downloads.sourceforge.net/steghide
 * stellarium stellarium-(.*?)\.tar\.gz http://downloads.sourceforge.net/stellarium
 * stgit stgit-(.*?).tar.gz http://homepage.ntlworld.com/cmarinas/stgit/
 * six six-(.*?)\.tar.gz http://six.retes.hu/download/
 * skstream skstream-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/worldforge
 * sonata sonata-(.*?).tar.gz http://sonata.berlios.de/download.html
 * sparse sparse-(.*?).tar.bz2 http://www.kernel.org/pub/software/devel/sparse/dist/
http://www.kernel.org/pub/software/devel/sparse/
 * sshfp sshfp-(.*?).tar.gz ftp://ftp.xelerance.com/sshfp/
 * starplot starplot-(.*?).tar.gz http://www.starplot.org/download.html
 * sublib sublib-(.*?).zip http://prdownloads.sourceforge.net/sublib
 * sundials sundials-([0-9.]+)\.tar\.[gzb2]+ http://www.llnl.gov/CASC/sundials/download/download.html
 * sunifdef sunifdef-(.*?).tar.gz http://www.sunifdef.strudl.org/download.html
 * sysconftool sysconftool-(.*?).tar.bz2 http://prdownloads.sourceforge.net/courier
 * tango-icon-theme tango-icon-theme-([0-9].*?).tar.gz http://tango.freedesktop.org/Tango_Icon_Library
 * tango-icon-theme-extras tango-icon-theme-extras-([0-9].*?).tar.gz http://tango.freedesktop.org/Tango_Icon_Library
 * terminus-font terminus-font-([0-9.]+)\.tar\.gz http://www.is-vn.bg/hamster/jimmy-en.html
 * tesseract tesseract.([0-9\.]*).tar.gz http://code.google.com/p/tesseract-ocr/downloads/list
 * tig tig-(.*?).tar.gz http://jonas.nitro.dk/tig/releases/
 * tinyca2 tinyca2-([^<>"]*).tar.bz2 http://tinyca.sm-zone.net/
 * tla tla-(.*?).tar.gz http://ftp.gnu.org/gnu/gnu-arch/
 * tor tor-(0\.1\.1\..*).tar.gz" http://tor.eff.org/dist/
 * tre tre-(.*?).tar.bz2 http://laurikari.net/tre/download.html
 * tree tree-([0-9a-z.]+).tgz http://mama.indstate.edu/users/ice/tree/
 * uncrustify uncrustify-(.*?).tgz http://prdownloads.sourceforge.net/uncrustify
 * varconf varconf-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/worldforge
 * vdr-wapd vdr-wapd-(.+?)\.t http://www.heiligenmann.de/vdr/download/
 * warzone2100 warzone2100-(.*?).tar.bz2 http://wz2100.net/downloads
 * wfmath wfmath-([0-9\.]*?).tar.gz http://prdownloads.sourceforge.net/worldforge
 * wormux wormux-([0-9\.]*?).tar.gz http://download.gna.org/wormux
 * xchat Source: (.*?)</a> http://www.xchat.org/
 * xdrawchem xdrawchem-(.*?).tar.gz http://prdownloads.sourceforge.net/xdrawchem
 * xfsdump xfsdump_(.*?).1.tar.gz ftp://oss.sgi.com/projects/xfs/download/cmd_tars
 * xfsprogs xfsprogs_(.*?).1.tar.gz ftp://oss.sgi.com/projects/xfs/download/cmd_tars
 * xl2tpd xl2tpd-1.(.*?).tar.gz ftp://ftp.xelerance.com/xl2tpd/
 * xmlrpc-c xmlrpc-c-(1\.06\.[^?&]*).tgz http://prdownloads.sourceforge.net/xmlrpc-c
 * xorg-x11-drv-radeonhd xf86-video-radeonhd-([0-9\.]+)\.tar\.bz2 ftp://ftp.freedesktop.org/pub/individual/driver/
 * xpa xpa-(.*?).tar.gz http://hea-www.harvard.edu/saord/xpa/
 * z88dk z88dk-src-(.*?).tgz http://prdownloads.sourceforge.net/z88dk
 * zidrav zidrav4unix-(.*?).tar.gz http://prdownloads.sourceforge.net/zidrav