YasT vs compiling applications - best practices?

Hi there,
I learned the hard way about kernel updates and I want to learn what the best practices are when it comes to software management.

My scenario:

  1. I installed openSUSE 11 from DVD with auto config.
  2. I compiled and installed application, let say, ‘fooapp’
  3. I added Nvidia repos, and installed new drivers for my card via YasT. My kernel got bumped from 2.6.25.5-1.1 to 2.6.25.18-0.2, which is fine, however it a.) broke my ‘fooapp’ and b.) did NOT install kernel sources so I could recompile ‘fooapp’.

I ended up reinstalling openSUSE, and difference was I found ‘fooapp’ in YasT, and installed it that way instead of manually. YasT then took care of the rest.

Questions:

  1. Why didn’t the kernel-sources get downloaded with …18-0.2 ?
  2. What if I can’t find the app I want to install in YasT and I have no choice but to comp./install myself? Is there a way I can force upgrades to download kernel sources as well? and Will I have to recompile the app every kernel bump up, even minor ?

Thanks for your help.

No, this only affects modules and drivers that are linked against the kernel. Pretty much everything else is not affected by kernel updates.

Nonetheless it’s good practice to use a package from a repo if available and suitable, you also get automatic update in case of a security bug.

Not that I like quoting myself, but let me plz simplify questions for better resposne.

  1. Why doesn’t kernel-source get downloaded when some module upgrades kernel ? Thus, I am stuck with just binaries.
  2. If you’ve installed/compiled on your own for a given app., do you then have to recompile, if tied to kernel, every time the system kernel is upgraded? If so, what’s best practices, if any?

Thanks again.

  1. Because the module is outside of the dependency system, unless it is tied to OpenSUSE’s kernel versions by the package builder.

  2. I’ve never had to recompile a normal user application (as opposed to a module or a driver) due to kernel updates within a particular distro release. So I wouldn’t worry about apps. If that’s not what you mean by app, then your terminology is wrong.

  1. You might consider it a packaging bug that kernel-source is not version-tied to the binary kernel package. But the answer is that it is OK, because you only need kernel-source if you need to recompile the kernel itself. Except…
  2. Normal apps do not need that. Yours is depending on the kernel more than usual, which may be a necessity or a design flaw. Which app is it? Anyway, compiling from source is just the first step. The next one should be putting the app to the Build Service. That way you will have a recompiled package ready when the kernel is updated.

BTW, YaST is much more than package management (see YaST/Modules - openSUSE) the correct subject would be RPMs vs compiling…

Yes apparently I am hitting up against the exception more than the norm, and that is becoming apparent with all the good feedback from this board.

I should’ve just named the app to begin with, but I was trying to keep it general. NDISWrapper was the app in question, however, when I found it in YasT, I installed from there vs. compiling/installing myself.

I will try to continue my learning about YasT vs. RPMs vs. compiling. I’ve only been on SUSE for less than a week.

Thanks.

Ndiswrapper isn’t considered an application. It’s a module that goes between the Linux kernel and proprietary drivers. But it’s blurred by the fact that the package also contains at least one program for the user to run, confusingly also called ndiswrapper.

An application would be something like OpenOffice, Amarok, Firefox, or even some neat KDE application that you might have found. These are hardly ever affected by updates of the kernel.