Mailinglist Archive: opensuse (3605 mails)

< Previous Next >
Re: [opensuse] SuSE-watcher/ksmarttray
  • From: Pascal Bleser <pascal.bleser@xxxxxxxxx>
  • Date: Sat, 03 Jun 2006 15:45:00 +0200
  • Message-id: <4481925C.3010806@xxxxxxxxx>
Hash: SHA1

Richard Bos wrote:
> Op zaterdag 3 juni 2006 13:51, schreef Harry ten Berge:
>> What I would like to see that the SUSE specific channels you added to
>> the package (thank you for that!) will be done
>> in a separate package. So the distribution comes with a default package
>> with the Smart tooling, and a separate
>> package with all known additional distribution specific repositories.
> Perhaps, a new a channel can be created that provides seperate rpms for each
> possible channel. For now let's call this channel 'channels'. So this
> channel provides e.g. the rpms:
> - channel-kde
> - channel-suser-guru
> - channel-packman
> etc
> The idea behind this is to be able to add a channel using the command:
> smart --install channel-<whatever name>

It's even easier to provide .channel files somewhere (like the .repo
files in the Build Service), and just do

smart channel --add http://......../
smart channel --add http://......../


I prefer the idea of a single-click installation of channels, with
.channel MIME handlers for firefox and konqueror/KDE that run a simple
script that runs "smart channel --add" on the file or URL.

Those .channel files are very simple and easy to create.
Here's an example for Packman:
- ---8<-----------------------------------------------------------------
name = Packman 3rd Party Package Repository
baseurl =
type = yast2
- ---8<-----------------------------------------------------------------
- - [packman] is the channel's alias (unique identifier)
- - name is just a description
- - baseurl is self-explanatory ;)
- - type is the type of repository (rpm-md, yast2, apt-rpm, ...)

Note that it always holds the SUSE Linux version in the baseurl.

Maybe it would be worth adding a feature to smart to have it replace a
few predefined placeholders in .channel files before processing them, e.g.:
baseurl =${distversion}

Setting the values for those predefined placeholders is very easy, that
can be done in /usr/lib/smart/ (which is meant to include
distribution specific code and comes with the smart package).
Something like (in
- ---8<-------------------------------------------
placeholders['distversion'] = '10.1'
placeholders['distarch'] = 'i586'
placeholders['distcanonicalarch'] = 'i386'
placeholders['distoptarch'] = 'i686'
- ---8<-------------------------------------------
- ---8<-------------------------------------------
placeholders['distversion'] = '10.0'
placeholders['distarch'] = 'x86_64'
placeholders['distcanonicalarch'] = 'x86_64'
placeholders['distoptarch'] = 'x86_64'
- ---8<-------------------------------------------

and add a patch to smart to parse and process ${...} placeholders in
.channel files.

That way you'd have the same .channel file and the same URL, no matter
what SUSE Linux version you're using.
(we'd need a ${distarch} as well)

I'll have a look if I find some time.

Note that from smart-0.41-24 on, I've written and applied a patch that
adds embedded mirror definition support in .channel files:
- ---8<-----------------------------------------------------------------
name = Packman 3rd Party Package Repository
baseurl =
type = yast2
mirror =
mirror =
mirror =
- ---8<-----------------------------------------------------------------

If you decide to include that channel in your list of channels, smart
will also add the mirrors to smart's mirror configuration (smart mirror
- --show).

I've sent that patch upstream but as of now, only my smart RPM (>=
0.41-24) includes that feature. Note that the smart package that comes
with SL 10.1 does _not_ have support for such "mirror =" directives in
.channel files, but as smart ignores tags it doesn't understand, the
.channel file would still work, just not add the mirrors.

After a few download/install/upgrade runs, smart will recognize
automatically what mirror works best for you, and primarily use that one
from then on.

> Although, I'm not sure that this will actually add the channel, it would be
> nice if this was possible.

It's just a matter of adding a .channel file into /etc/smart/channels/

The next time you run smart (e.g. smart update, or smart install, or
smart whatever), it will detect that new .channel file and prompt you
whether you want to include it or not.

> By creating a new project 'channels' on the build server, it would be
> possible for build server users to maintain the channel rpm.

I'm afraid that's not feasible.
We're getting into the very annoying potential legal issues of Novell
referencing (even indirectly) 3rd party repositories like mine or
Packman that include packages that.. well... you know: mad, lame,
mplayer, etc... ;)

So it must be hosted elsewhere, on a 3rd party website.

- --
-o) Pascal Bleser
/\\ <pascal.bleser@xxxxxxxxx> <guru@xxxxxxxxxxx>
_\_v The more things change, the more they stay insane.
Version: GnuPG v1.4.2 (GNU/Linux)


To unsubscribe, e-mail: opensuse-unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-help@xxxxxxxxxxxx

< Previous Next >
Follow Ups