Michael Felt wrote: > Or, not having looked at it yet - should I be focusing on a replacement > for rpmbuild (assuming it is a script)?
rpmbuild is a full-on application, which has some pretty involved features for building a package. What this means is that armed with just a spec file, you can build an RPM (or an SRPM, which is the source code, spec file and patches rolled together into a bundle for easy rebuild). A lot of the packaging systems for other platforms are a lot more basic. They assume you've done the legwork doing the actual build, the packaging system kicks in at the last step and turns your tree-of-binaries into a package, not much more sophisticated than humble tar. I think as an example, you should rather be looking at the scripts that do the Solaris packaging. In the Solaris case, the build/pkg/buildpkg.sh script does the actual build (you'll recognise the ./configure;make;make install in there), and once the binaries are built and staged in a temp directory, the various package making commands unique to Solaris are kicked off (pkgproto, pkgtrans) that combine the binaries and the pkginfo template into the package itself. The key most interesting bits from your perspective are probably: - You want to stage the binaries at some temp location, like /var/tmp/foo.12345/, which in turn becomes the "root" of the install. You achieve this by adding the DESTDIR variable to make install. This causes the whole install procedure to pretend you're installing in /usr (for example), but instead it places the binaries into /var/tmp/foo.12345/usr/. When you package the files, httpd's paths are all set up correctly for the final system, you won't find /var/tmp/foo.12345 lurking in any files. - You'll probably need a template file of some kind. In the rpm case the template file is the spec file. In the Solaris case, the template file is called "pkginfo", and this file is populated by filling in the template called "pkginfo.in". Unlike the RPM spec file, which must be correctly built and populated before httpd is tarred up and released as a tarball for rpmbuild to work properly (and which is why the spec template is filled in by the buildconf script), the pkginfo.in file is processed at build time by autoconf as an ordinary part of the httpd ./configure;make;make install process. Once ./configure;make;make install is done, the pkginfo file has been processed and is ready to be used by the Solaris packaging commands. I would imagine your packaging would probably follow a similar pattern. Regards, Graham --
smime.p7s
Description: S/MIME Cryptographic Signature