Inclusion of Ingres RDBMS in Fedora

Iain Arnell iarnell at gmail.com
Tue Feb 23 05:33:11 UTC 2010


On Tue, Feb 23, 2010 at 4:09 AM, Jay Hankinson
<jeremy.hankinson at ingres.com> wrote:
> Hello Fedora Devs,

Hello Ingres Dev,

> Over the last few weeks, I spent a lot of time review and amending the
> Ingres (a highly scalable, full-featured open source RDBMS) building and
> packaging process with the intention of submitting it for inclusion in
> the Fedora distribution. We've had binary RPM support for a while but
> was far from being LSB compliant and violated other packaging standards.
>
> The focus of the work has largely been based on information found at:
>
> https://fedoraproject.org/wiki/Packaging/Guidelines
> https://fedoraproject.org/wiki/Packaging:ReviewGuidelines
> &
> http://proton.pathname.com/fhs/

You'll also want to check http://fedoraproject.org/wiki/Packaging_tricks

> and I am now at a point where I can build 3 binary RPMs (ingres-client,
> ingres-server, ingres-devel) which comply with the above guidelines and
> which cause rpmlint to return very few errors.

Ugh! They're a necessary evil at times (I've done a few of my own),
but since you have the source and intend to build source-based RPMs
anyway, it's almost always better to dive straight in and simply start
building RPMs from source. On the positive side, though, it's still a
learning experience: you know it's possible, what files need to go
where, etc.

> However, one major thing
> that is still missing is the ability to build an SRPM for the source
> tree and crafting an SPEC file for this is the next thing on my task
> list. As I think this will be a fairly substantial undertaking and
> something I'm not very familiar with, I'm keen to get some advice and
> guidance with the project in the hopes of getting things done right (or
> at least more right) the first time.

It's not really that hard. In fact, if you can change the build
process, it may be easier than making the binary RPMs. In an ideal
world, the existing configure/compile/install process should handle
all the hard work; if it doesn't, hopefully you can change it so that
it does. Otherwise, you should be able to configure/compile/install
using the existing process and move the installed files around as you
do for your existing binary RPMs.

> Also, there are a few issues that
> have arisen from building the binary RPMs that I would like to get
> clarification (i.e. how much of a problem are they) on before starting
> on the SRPM spec:
>
>     * Ingres requires that the server executable is setuid (non-root)

That shouldn't be a problem; rpmlint may complain, but
%attr(4755,ingres,ingres) /usr/bin/ingres (or whatever) in %files list
is okay. But is it really necessary? Non-root daemons are normally
started by root user anyway using initscripts and can use
/sbin/runuser to start the daemon as the appropriate user.

>     * Current build process uses $ORIGIN for relative RPATH linking.

This one is slightly trickier. Using rpath for system libraries is
absolutely forbidden. But packaging guidelines has information for
removing rpath, and packaging tricks link (above) suggests that rpath
may be used for internal libraries.

>     * Executable stack code

Maybe it doesn't need this [1].

> If the best approach is "write the spec, follow the guidelines, create a
> Bugzilla issue and we'll go from there", then that is what I will do. If
> I can gain experience by assisting in with the packaging of other
> software for fedora then I'm happy to do this too.

That's pretty much the way to go. Fedora package review is usually an
iterative process anyway. I think its better to start early and get
feedback right from the start.

> If this is the wrong list for this posting, apologies and please direct
> me to the appropriate forum.

Nope, this is absolutely the right place. Welcome!

[1] http://community.ingres.com/forum/dba-forum/11683-fedora-12-64bit-selinux-doesnt-like-ingres.html

-- 
Iain.


More information about the devel mailing list