> There are two "dependency" issues here:
> 
> 1. getting the appropriate toolchain needed to compile the (or any
> normally packaged c or c++) program (gcc, make, binutils etc etc); and
> 
> 2. the dependencies required by the particular package you want to
> compile.
> 
> I guess suse doesn't even have an easy method of getting (1) or Volker
> would have told us in reply to my question about it earlier in
> the thread.

Sorry I meant to answer that. If you're expecting SuSE to work out which
programs and packages are required to compile xyz.tar.gz, you're asking
too much. I'm unaware that any distro or program can do that.

Typically it's a process of some iterations: run ./configure, get told
"I want libbla" or whatever, locate the package which supplies libbla,
start over.

The packages containing the programs Roger asked about were already
mentioned (autoconf, automake).

Libbla often is in a package libbla-devel or bla-devel. Use the pin
program on SuSE to do a full text search over all the packages and files
of the distro media (hints: run this as root for the first time as it'll
copy a file from media to disk, run this first time from DVD not CD, to
see what you're missing out on). Alternatively, install my scriptutils
and susegrep-data*** packages.

  susegrep -f aclocal\$

Will tell you straight off that program aclocal is in package automake.

Once you know the name of the package you need to install, dependencies
are a non-issue. Use yast.

Of course, you could also go into yast and select the group of packages
called "development" or some such, this installs a good selection of
compiler, tools, and header files.

SuSE supplied rpms carry at the top of the spec file a list of packages
which must be installed to compile this particular package. Interesting
and very useful when recompiling a package, but only useful for general
enlightenment when starting from scratch.

> running ./configure should tell you what is needed - and generally ONLY
> an error that actually stops ./configure will matter.

Typical exception: additional optional functionality which ./configure
will remove from the software because it can't find the header files for
some library.

> There is a final point. This tarball (devilspie) has a .spec file for
> building rpm's. I thoroughly recommend that you use rpm's build features
> instead of the ./configure/make/make install. It will make removing,
> upgrading and generally managing your package much much much easier.

Oh heck yes. Whenever you can, make packages for your distro. Don't just
run make install, that'll have a good potential for wrecking your
system. However be warned that making packages is hard donkey work - the
trickiest being to come up with a shell script which, when run without
arguments, will successfully compile and install the software. The
additional overhead for making an rpm isn't so big, unless you keep on
messing up the packaging step (there's a test shortcut now).

If some xyz.tar.gz file contains a .spec file it's an excellent place to
start, but I have yet to see one of those .specs which is properly done.
Things being installed in the wrong place is the most common, but there
are many more potential pitfalls, esp when service init scripts are
involved.

> The instructions are in the Maximum RPM online book which is just a
> google away.

The output of rpm --help and man rpm has never been matching. That rpm
book is hopelessly out of date, but still has a lot of useful info in
it. I don't know of an easy-to-use accurate and complete free (or
nonfree) tutorial/reference for making rpm packages. It's been annoying
me for years - I made a spec template for myself and knock that into
shape for any package I make. Feel free to use the packages in
http://volker.dnsalias.net/soft/rpm/ as examples.

With openSuSE I expect some tutorial for making rpms to come up in due
course. I will be making a very strong push for it.

Volker

-- 
Volker Kuhlmann                 is possibly list0570 with the domain in header
http://volker.dnsalias.net/             Please do not CC list postings to me.

Reply via email to