On Fri, Oct 9, 2009 at 1:21 AM, Graham Leggett <minf...@sharp.fm> wrote:

> 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
> --
>
> ran the build/binbuild.sh script again - after building and installing the
expat2.01 package.
It all seemed to build well - getthe the right .guess file has worked
wonders.

However, AIX is still not really a favorite of the configure or libtool
world.

I suppose every system has it way of inserting a default search order for
libraries. For a distribution I would want a more neutral one than the
configure/libtool process is building - also because it is not working.

I know that I could use CFLAGS='-blibpath:/some/path:/another/path' to
create a default path that would work - but I am hoping someone might have
some ideas about what could be done to make integrated to the process,
rather than force fed.

Current Status:
==============
mich...@x054:[/data/prj/httpd-2.2.14]bindist/bin/httpd -?
exec(): 0509-036 Cannot load program bindist/bin/httpd because of the
following errors:
rtld: 0712-001 Symbol XML_StopParser was referenced
      from module /data/prj/httpd-2.2.14/bindist/lib/libaprutil-1.so(), but
a runtime definition
      of the symbol was not found.
mich...@x054:[/data/prj/httpd-2.2.14]dump -H bindist/bin/httpd -?

bindist/bin/httpd:

                        ***Loader Section***
                      Loader Header Information
VERSION#         #SYMtableENT     #RELOCent        LENidSTR
0x00000001       0x000002fa       0x00000957       0x000000ae

#IMPfilID        OFFidSTR         LENstrTBL        OFFstrTBL
0x00000006       0x0000b7a4       0x000039eb       0x0000b852


                        ***Import File Strings***
INDEX  PATH                          BASE                MEMBER

0
/data/prj/httpd-2.2.14/bindist/lib:/usr/local/apache2/lib:/usr/vac/lib:/usr/lib:/lib

1                                    libaprutil-1.so

2                                    libapr-1.so

3                                    libpthread.a        shr_xpg5.o

4                                    libc.a              shr.o

5                                    librtl.a            shr.o

dump: -?: dump: 0654-106 Cannot open the specified file.
mich...@x054:[/data/prj/httpd-2.2.14]

Reply via email to