Putting the mugshot client in fedora-extras

Josh Boyer jwboyer at jdub.homelinux.org
Sat Oct 21 20:08:40 UTC 2006


On Sat, 2006-10-21 at 13:27 -0400, Owen Taylor wrote:
> So, for a while we've been thinking about adding the client software
> for Mugshot (http://mugshot.org) to fedora-extras. Both the client
> and server are GPL software, so the client is definitely within the
> scope of fedora-extras. We see various advantages to us and our users
> from having it there:
> 
>  - Building our Fedora Core packages within a real build system, rather
>    than on an ad-hoc basis.
> 
>  - Providing packages for multiple architectures.
> 
>  - Providing packages for multiple distributions (the client requires
>    firefox-devel or hacks to build, so right now FC6 is the only target,
>    but FC7 will be along soon enough.)
>    
> *however* - updates are more of a challenge, because we're still
> changing things rapidly and the client software is tightly coupled to
> the server software; when we add new features, there is often both a
> client part and a server part. 
> 
> The way handle this currently is that when the client connects to the
> server, it queries the server for the current client version, and 
> when appropriate, offers the user a chance to download a new RPM and
> install it via system-install-packages.
> 
> If we put the client software into the FE build system before the
> corresponding server version is pushed to the production servers, then
> some users would get upgraded via yum to the new client software before
> the push of the server software. Since the server backend for new
> client features isn't there yet, the client will likely misbehave
> in weird ways.
> 
> On the other hand, if we wait until after the server push to put the
> software into the build system, there will a considerable lag before
> the new client versions are available; we won't be able to offer our
> users an immediate upgrade to the new version. This is a bit better
> than the previous situation ... we try to make old clients work with
> new servers, but still the user experience isn't what we want.
> 
> Some ideas that occur to me for handling the situation:
> 
>  - We could try to time the server push to coincide with when the
>    packages appear in the fedora-extras - that is, we get the
>    client ready, we get the server ready, we put the client version
>    into the build system, and we sit on our browsers reload button,
>    and when the software appears on download.fedora.redhat.com,
>    we do the server upgrade.
> 
>    (There is an obvious conceptual problem here that this only works
>    when there is one such build system - we couldn't do it for both
>    Fedora Extras and Ubuntu Universe, say!)
>   
>    Does the daily update of the repository occur at a predictable
>    time?
> 
>  - If we could simply get the mugshot client excluded from the 
>    creation of the fedora-extras yum repository metadata, then we 
>    could build packages ahead of time, and later offer them through our
>    current upgrade process. (or through our own yum repository.)
> 
>    Would it be completely ridiculous to ask that createrepo be run 
>    for the FE repository with --exclude=mugshot* ?
> 
> Do people have other ideas about how it could work?

Add a handshake to both the server and the client for features.  The
client says "do you support <foo>?", the server says "wtf is <foo>?",
the client then disables it at runtime.

That way you don't have to worry about newer clients acting in weird
ways.  Or maybe I'm missing where that would be very hard to do...

josh




More information about the fedora-extras-list mailing list