> 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.
