
-----BEGIN PGP SIGNED MESSAGE----- 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://......../guru.channel smart channel --add http://......../packman.channel etc... 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<----------------------------------------------------------------- [packman] name = Packman 3rd Party Package Repository baseurl = http://packman.inode.at/suse/10.1 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 = http://packman.inode.at/suse/${distversion} Setting the values for those predefined placeholders is very easy, that can be done in /usr/lib/smart/distro.py (which is meant to include distribution specific code and comes with the smart package). Something like (in distro.py): - ---8<------------------------------------------- placeholders['distversion'] = '10.1' placeholders['distarch'] = 'i586' placeholders['distcanonicalarch'] = 'i386' placeholders['distoptarch'] = 'i686' - ---8<------------------------------------------- or - ---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<----------------------------------------------------------------- [packman] name = Packman 3rd Party Package Repository baseurl = http://packman.inode.at/suse/10.1 type = yast2 mirror = http://packman.mirrors.skynet.be/pub/packman/suse/10.1 mirror = http://packman.rsync.zmi.at/suse/10.1 mirror = http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/10.1 - ---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. cheers - -- -o) Pascal Bleser http://linux01.gwdg.de/~pbleser/ /\\ <pascal.bleser@skynet.be> <guru@unixtech.be> _\_v The more things change, the more they stay insane. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) iD8DBQFEgZJcr3NMWliFcXcRAsyoAKC92L5r38fUTqiXgPThwnR/bIq7yQCgibA3 cuYUWec5HnIrdE4P/ytQA7s= =Dxt7 -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-help@opensuse.org