On Tuesday 13 January 2009 17:30:27 Duncan Mac-Vicar Prett wrote:

>

> A solution worth to explore is to start using variables like $releasever

> in the .repo files.

>

> So repos with 11.1 would automaitcally be 11.2 afterwards. Of course

> still there is the need to check that those repos are valid.

You know, the time between 'before' and 'afterwards' is the tricky part.

Esp. upgrades in the running system will become more tricky, as the

$releasever actually changes within commit (at the time the *-release

package gets installed). But you need the new value before to get the new repos, and maybe you also want to keep the old repo for a while afterwards.

Also a little damage to the release package, or a misplaced baseproduct symlink, and the repo you'd need to fix it is also unusable, because the systems $releasever was lost.

I'd feel more comfortable if the variables played a less important role within the repo URL. If they'd serve as a placeholder, but can also define a fixed substitution value:

${releasever} - follow sytems releasever

${releasever:-11.1} - fixed 11.1

${releasever:-11.2} - fixed 11.2

The fixed form is to ease rewriting the URL from some old to a new version. So you don't have to guess the location of a version part. And it could even be used in bash:

$ echo ${releasever:-11.2}

11.2

And if we'd use ${releasever} in URL, then people will want to use it in alias and name as well:

[repo-update-${releasever}]

name=openSUSE-${releasever}-Update

enabled=1

autorefresh=1

baseurl=http://download.opensuse.org/update/${releasever}/

But I'm not sure whether I like this.

A classification of repositories which allows to make better decisions would IMO be the better approach.

All the repos we add more or less automatically together with a product should be disabled(deleted) together with the product. Not rewritten, because the next product will probably provide it's own new set.

--

cu,

Michael Andres

+------------------------------------------------------------------+

Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4

+------------------------------------------------------------------+

Michael Andres YaST Development ma@novell.com

SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg)

Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0

+------------------------------------------------------------------+