PaulHowarth/Blog/2006-09-28

Thursday 28th September 2006

Local Packages

Nothing needed updating today so did some infrastructure changes that I'd been planning for a while. I now build the repo (metadata and repoview) offline on my build system and use rsync to mirror it to the webserver. Whilst this may seem the obvious way to do it, the repo had evolved in such a way that the metadata was being created on the webserver directly.

This is a big improvment performance-wise, as the build system is much faster than the webserver. It also means that I am able to run a dependency closure check on the repository before it goes live, and hence pick up problems before they affect anyone.

I also tweaked my mock configuration on the build system to include Vendor: and Packager: tags in the built packages, by adding the following to /etc/mock/defaults.cfg:

config_opts['macros'] = """
%%_topdir %s/build
%%_rpmfilename   %%%%{NAME}-%%%%{VERSION}-%%%%{RELEASE}.%%%%{ARCH}.rpm
%%packager       Paul Howarth <paul@city-fan.org>
%%vendor         city-fan.org repo http://www.city-fan.org/ftp/contrib/
"""  % config_opts['chroothome']

I had to rebuild the mock root caches for each target before it took effect though.

I tested the changes by bringing my oldest perl package (perl-Convert-TNEF) up to my current packaging style and pushing a new release of it.


Recent