Re: gnome build tool



atmczen@ibm.net wrote:

> I hope this answers your question.

Yes, most of them. Thank you. However, I have a few comments.

> Here are some sample scenarios:
> 
> 1. To configure everything from the source in /usr/src/gnome:
> gnome-build -mode=configure -source=/usr/src/gnome/*.tar.gz

What about a condition where you cannot use a particular optimization
flag with one of the packages, but it would work with everything
else? For example, on Solaris with Sun's C compiler, imlib crashes
in 24bpp code if compiled with anything above -O2. Everything else
which can be compiled works fine, although I didn't try every bit of
optimization the compiler is capable for.

In a situation like this I want to use another set of CFLAGS (or even
another compiler) for imlib. There should be a way to do this in a sane way.

And, of course, for packages which can only be compiled with gcc or egcs,
I'd want to use that compiler.

> 4. To create rpm's from what you have just compiled:
> gnome-build -mode=rpm -spec=/usr/src/gnome/specs/*.spec

What about Debian packages? There is no spec file in that environment.

> There is a nice tool called rpmbuild, which, if I recall, is written
> by the author of gnorpm.  With that tool, you do not have to rebuild
> the whole thing again. So I would include that tool in the package.

Is it portable?


There is one related thing I want to address. Suppose I made a binary
packages for Gnome programs and libraries with prefix=/usr/local.
Somebody else might want to install it elsewhere, because he doesn't
have enough space on /usr/local partition (or for any other reason).
I know that AIX can change the partition sizes without problems (any
others?), but many systems are inferior in this respect.

Currently it's impossible to install binary packages in the different
directory tree. There are two reasons, I think. One is the location
of shared libraries and the other is the location of config files.
I'm not sure what ltconfig on Linux actually does, but I have a
feeling that it can handle the location of libraries. On Solaris
one would have to use -R$ORIGIN/../lib when linking executables.
(Any other methods?) The current configure scripts don't provide
a way to define one set of LDFLAGS for libraries and another for
executables, which should be implemented. I suppose it could be
used to solve bug reports concerning __register_frame_info thing,
as well.

As for config files, I suppose there should be a function in one
of the main libraries, something like:

char *gnome_conffile_get(char *path)

If Gnome was installed in /opt/gnome and some program needs $prefix/etc/myrc
file, it would call gnome_conffile_get("etc/myrc") and the function would
return "/opt/gnome/etc/myrc". This requires a change in all programs,
but it's minor, so I suppose it can be done over some period of time.

There could be other issues involved here, but XEmacs is idependent
of installation directory and any real implementation code could
be taken from it without a problem. The code has been improved over
the years and it probably works on a large nuber of systems.

-- 
 .-.   .-.    Life is a sexually transmitted disease.
(_  \ /  _)
     |        dave@srce.hr
     |        dave@fly.cc.fer.hr



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]