Smart has been added to the Arch User Repository (AUR)

Rehan Khan rehan.khan at dsl.pipex.com
Fri Oct 15 04:08:20 PDT 2010


> > Ah yes, I had forgotten that. It was a lot of work to work around the
> > fact that the installation does not help with this.
> 
> Not sure if a for loop qualifies as a lot of work, but it can be added.

I was talking about splitting smart up using a spec file for RPM
installations was a lot of work.

> 
> Here was a mock implementation I hacked up just now:
> 
> [smart]
> backends = rpm,deb,slack,arch
> channels = True
> interfaces = text,gtk,qt,qt4
> plugins = True
> 
> After parsing (where 'True' means *), this ends up as:
> 
> backends: ['rpm', 'deb', 'slack', 'arch']
> channels: ['red-carpet', 'arch-dir', 'apt-deb', 'arch-site', 'mirrors',
'rpm-dir',
> 'up2date-mirrors', 'urpmi', 'slack-site', 'rpm- hdl', 'yast2', 'deb-dir',
'rpm-md',
> 'apt-rpm', 'rpm-sys', 'deb-sys', 'slack-dir', 'arch-sys', 'slack-sys']
> interfaces: ['text', 'gtk', 'qt', 'qt4']
> plugins: ['aptchannelsync', 'channelsync', 'debdir', 'detectsys',
'landscape',
> 'rpmdir', 'urpmichannelsync', 'yumchannelsync', 'zyppchannelsync']
> 
> A slight problem with distutils is that including the packages for
> "smart.channels" and "smart.plugins" will also include the files...
> 
> So those would be need to be handled differently than the others, that are
> separated into subdirectories and easy to conditionalize:
> 
> ext_modules = [
>                 ...
>                 Extension("smart.backends.rpm.crpmver",
>                           ["smart/backends/rpm/crpmver.c"]),
>                 Extension("smart.backends.deb.cdebver",
>                           ["smart/backends/deb/cdebver.c"]),
>                 ...
>                ]
> 
> packages = [
>              ...
>              "smart.backends.rpm",
>              "smart.backends.deb",
>              "smart.backends.slack",
>              "smart.backends.arch",
>              ...
>              "smart.channels",
>              ...
>              "smart.interfaces.gtk",
>              "smart.interfaces.text",
>              "smart.interfaces.qt",
>              "smart.interfaces.qt4",
>              ...
>              "smart.plugins",
>              ...
>             ]
> 
> I'm not sure if there is a more sane manner to handle this...

Sounds good. Any reason why the channels and plugins need to be 'True' or
'*' and not specifically specified like the backends/interfaces? If not then
I guess this would work well. This should solve Xavion's issues, right? Just
specify what you need for your distro and install just what is needed.
 
> That is a totally separate issue, and handled by the patch attached there.
> 
> i.e. backends and channels can be filtered out, without being uninstalled

If your above suggestion is implemented then this patch won't be needed as
it would not be an issue any more as the files won't be installed so won't
show up in the interface (as long as the required channels are specifically
specified). Right? :)

Rehan





More information about the Smart mailing list