Overview

repopatch is a tool that downloads updates for various OS distribution. It is capable of downloading updated packages from the Internet. repopatch will only retrieve updates for the distribution that repoman supports.

OS distribution

Every OS distribution maintains some degree of updates. These updates are published on a well defined location that a package manager is able to retrieve from. For example,
Fedora Core 6 stores them at http://example.com/Linux/packages/fedora/core/updates/6/i386.
Fedora 7 updates are at http://example.com/Linux/packages/fedora/updates/7/i386.
Given the base url such as http://example.com/Linux/packages/fedora in updates.conf, repopatch is able to determine automatically the update directory for a particular distribution.

Redhat Network

Redhat Enterprise Linux updates are provided by RHN. It is subscription based. With the introduction of Redhat Enterprise Linux 5, up2date is no longer in use. Redhat has installed a rhn plugin for yum. With the plugin, yum is able to authenticate with RHN and obtain the updates.

Every system that is registered on RHN (register_rhn) has an associated primary channel and child channels. The channels are determined automatically with the Redhat Installation Number. The Installation Number is used to automatically subscribe the system to the right child channels. Without the installation number, you can still subscribe to the child channels as long as you have the correct entitlements.

One a system has been registered, it has a system id. Each xmlrpc call made by the yum plugin contains this system id.

repopatch with RHN

RHN has a set of apis that can be used to query a list of updated packages for a channel. repopatch uses this to determine the latest packages to download. repopatch will then set the appropriate http headers and download the rpm from https://xmlrpc.rhn.redhat.com/XMLRPC/$RHN/<channelname>/getPackage/<packagename> directly. Packages will be downloaded to /depot/updates/.

repopatch does not use up2date/yum to download packages.

Update Kit

An update kit is created whenever repoopatch runs. An update kit contains all the latest packages for the OS distribution. It also contains a kitinfo file that provide necessary information about kernels.

The update kit is then added to the repository and repoman is used to refresh the repository.

Updated kernels

If the user chooses to include the updated kernels, the newer kernels will be added to the update kit. After the repository has been refreshed, associated nodegroups' initrds and vmlinuz will be updated in tftpboot.