[PlanetCCRMA] dependancies

Fernando Pablo Lopez-Lezcano nando@ccrma.Stanford.EDU
Sun Oct 5 17:52:02 2003


> Hi all, I recently decided to break the habit of compiling my own music 
> software and use Planet CCRMA instead. I always like to compile my own 
> kernel and it is this that is confusing me right now. If I want to 
> install the Planet packages such as jack/ALSA etc, they complain about 
> needing a certain kernel. What is the best solution here? Can I get away 
> with just using the source kernel from Planet or must I install the 
> kernel that is metioned in the dependancy warning. If I do have to 
> install this kernel, I'll never actually use it which seems a bit of a 
> waste of time/disk space to me.

There are several ways of dealing with the problem. First of all, the
rpm dependencies have to be met or you won't be able to use apt to
managed the installed packages (the whole point of Planet CCRMA is ease
of installation, including alsa and the kernel). This is why you need a
certain kernel when you try to install a Planet CCRMA package:
  most Planet CCRMA alsa related packages need:
    alsa-lib-xxx --> which depends on
    alsa-driver-xxx --> which depends on
    alsa-kernel-KERNEL_VERSION-xxx --> which needs
    kernel-KERNEL_VERSION
You can satisfy the dependencies at several levels, depending on what it
is you are installing yourself and how. 

The best option would be for you to build proper kernel and/or alsa
packages with the options you want. 

The next best would be to build alsa rpms that match the kernel you
installed (but you would have to tweak the spec file of the alsa-driver
packages to _not_ require all the kernel dependencies - they are not
there because the kernel you installed is probably not an rpm package).

The next level down would be to _really_ cheat and make the system
believe you have alsa installed through an rpm (which you probably do,
but not in a way that the rpm database can see)...

For example:
- you install the kernel and alsa subsystem (this assumes you don't use
  rpm packages for the kernel and alsa):
  Somehow you have to provide the alsa-lib requirements so that you can
  install Planet CCRMA packages that depend on alsa-lib. So what is it
  that is provided by alsa-lib?

> rpm -q --provides alsa-lib
libasound.so.1
libasound.so.2
libasound.so.2(ALSA_0.9)
libasound.so.2(ALSA_0.9.0)
libasound.so.2(ALSA_0.9.0rc4)
libasound.so.2(ALSA_0.9.0rc8)
libasound.so.2(ALSA_0.9.3)
libasound.so.2(ALSA_0.9.5)
libasound.so.2(ALSA_0.9.6)
libasound.so.2(ALSA_0.9.7)
alsa-lib = 0.9.7-1.cvs.rh90

You can see what needs those "provides" by doing:
# rpm -q --whatrequires libasound.so.2\(ALSA_0.9\)|wc
     38      38     799
# rpm -q --whatrequires libasound.so.2|wc
     46      46     987
And the rest get 0 hits. 
So, to keep the packages happy you would have to create an alsa-lib
package (or whatever name you prefer) that "provides" those
requirements. 

This is obviously cheating :-) because the package does not reflect what
you have installed (you installed stuff with the normal configure; make;
make install commands, not with a properly built rpm). As long as you
_really_ have everything installed then things will work. 

I'm appending a sinple spec file you could use to generate a fake
alsa-lib-dummy package that meets the current dependencies of the alsa
related Planet CCRMA packages... (I tested it in the sense that I could
erase all the alsa-* packages and still get "apt-get check" to be
happy).

Again, this is "cheating"... you _have_ to have a properly installed
kernel and alsa subsystem (alsa-driver, alsa-lib, alsa-utils and
alsa-tools) for all this to really work. 

-- Fernando

==== CUT HERE ====
Summary: Dummy alsa library package
Name: alsa-lib-dummy
Version: 0.0
Release: 1
License: None
Group: System Environment/Libraries
# cheat the dependency system
Provides: libasound.so.2 libasound.so.2(ALSA_0.9)

%description
Empty package that provides the correct dependencies for all
ALSA related Planet CCRMA packages. This is a gross hack. All bets
are off. You are on your own...

%files
%defattr(-,root,root,-)

%changelog
* Sun Oct  5 2003 Fernando Lopez-Lezcano <nando@ccrma.stanford.edu>
0.0-1
- Initial build.
==== CUT HERE ====