It contains three fields: <code><package name></code>, <code><version regex></code> and <code><url></code>.

It contains three fields: <code><package name></code>, <code><version regex></code> and <code><url></code>.

−

* <code><package name></code> - the name of your package

+

* <code><package name></code> - the name of your package in Fedora. You can use globbing/wildcards supported by the [http://docs.python.org/2/library/fnmatch.html python fnmatch] module. It matches againsg source RPMS in Fedora Rawhide.

−

* <code><version regex></code> - The regular expression used to find the upstream versions of a package. An example is <code>\b<package name>[-_]([^-/_\s]+?)(?i)(?:[-_](?:src|source))?\.(?:tar|t[bglx]z|tbz2|zip)\b</code>, which usually works for packages distributed by sourceforge. An alias for this regular expression is <code>DEFAULT</code>. An alternative value for the package name can be set using a colon: <code>DEFAULT:foo</code>, e.g. if the tarball is called <code>pam-mount-1.33.tar.bz2</code>, but the Fedora package is <code>pam_mount</code>.

+

* <code><version regex></code> - The regular expression used to find the upstream versions of a package. Examples can be found in the list. A default regex aliased DEFAULT usually works for packages distributed by sourceforge. An alternative value for the package name can be set using a colon: <code>DEFAULT:foo</code>, e.g. if the tarball is called <code>pam-mount-1.33.tar.bz2</code>, but the Fedora package is <code>pam_mount</code>.

* <code><url></code> - contains an URL, where the upstream publishes release tarballs or mentions the latest version. For packages from sourceforge, <code>https://sourceforge.net/projects/<package name>/files/</code> with the above example regular expression often works. An alias for this URL is <code>SF-DEFAULT</code>. This alias will be updated in case future changes to sourceforge require a change. The name override works here, too. An attempt to replace all occurrences of <code>/*/</code> in the URL with the newest subdirectory at that level is made as well, which is useful for versioned subdirectories.

* <code><url></code> - contains an URL, where the upstream publishes release tarballs or mentions the latest version. For packages from sourceforge, <code>https://sourceforge.net/projects/<package name>/files/</code> with the above example regular expression often works. An alias for this URL is <code>SF-DEFAULT</code>. This alias will be updated in case future changes to sourceforge require a change. The name override works here, too. An attempt to replace all occurrences of <code>/*/</code> in the URL with the newest subdirectory at that level is made as well, which is useful for versioned subdirectories.

Fedora Upstream Release Monitoring

General Information

This page is about a service for package maintainers to get notified in case rawhide does not contain the latest upstream release of their packages. In case upstream appears to be newer that the package currently in rawhide, a new bug like bug 733828 is filed.

Software

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 someone will eventually add your package to the list of packages.

What Is The Format Of The List?

It contains three fields: <package name>, <version regex> and <url>.

<package name> - the name of your package in Fedora. You can use globbing/wildcards supported by the python fnmatch module. It matches againsg source RPMS in Fedora Rawhide.

<version regex> - The regular expression used to find the upstream versions of a package. Examples can be found in the list. A default regex aliased DEFAULT usually works for packages distributed by sourceforge. An alternative value for the package name can be set using a colon: DEFAULT:foo, e.g. if the tarball is called pam-mount-1.33.tar.bz2, but the Fedora package is pam_mount.

<url> - contains an URL, where the upstream publishes release tarballs or mentions the latest version. For packages from sourceforge, https://sourceforge.net/projects/<package name>/files/ with the above example regular expression often works. An alias for this URL is SF-DEFAULT. This alias will be updated in case future changes to sourceforge require a change. The name override works here, too. An attempt to replace all occurrences of /*/ in the URL with the newest subdirectory at that level is made as well, which is useful for versioned subdirectories.

URL Aliases

There are some URL aliases supported, that you can use instead of the normal URL. The "%s" formatstring is replaced by the package name or by the value specified after a colon, e.g. for the package pam_mount SF-DEFAULT:pam-mount is used. This is called "name-override".

How can I develop a regex?

cnucnu shell can be used to interactively develop a regular expression. If your package is hosted at sourceforge, run it and try name <package-name>, then it will show you the results for the default sourceforge URL and regular expression. If this does not work for your package or if your package is not hosted at sourceforge, you will be prompted for a URL and a regular expression.

It looks pretty good, but as you can see there are records like 'submit-0.5' or 'STABLE', which are not good version strings. To improve it, you can make a simple change. Version always start with a number, so let's try to put it into the regex:

Don't forget to escape ( and ) chars! You need to escape ( and ) chars because they are used on the page. Unescaped parenthesis are used by regex parser as grouping chars. So if you don't escape parenthesis, they will be included in version string (and this is unwanted). Read Regular Expressions Syntax for more information.

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.

python

#!/usr/bin/python -tt
# vim: fileencoding=utf8
# {{{ License header: GPLv2+
# This file is part of cnucnu.
#
# Cnucnu is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Cnucnu is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cnucnu. If not, see <http://www.gnu.org/licenses/>.
# }}}
from collections import OrderedDict
import sys
import yum
from cnucnu.package_list import PackageList
if __name__ == "__main__":
sys.stderr.write("Getting package list...")
pl = PackageList()
sys.stderr.write("done\n")
yb = yum.YumBase()
installed_pkgs = yb.rpmdb.returnPackages()
srpms = OrderedDict()
missing = OrderedDict()
for package in sorted(installed_pkgs):
if package.vendor == "Fedora Project":
srpm = package.sourcerpm
srpm_name = srpm.split(".src.rpm")[0].rsplit("-", 2)[0]
if pl.get(srpm_name, None) is None:
missing[srpm_name] = package.url
print("Installed packages, that are not monitored")
for package, url in missing.iteritems():
print("{0} {1}".format(package, url))

Any package that is part of the coordinated KDE Software Compilation releases.
Those packages are handled as a whole and do not need individual bugs filed.
(Advance notification comes through the kde-packager mailing list.)