* Boyd Stephen Smith Jr. <[EMAIL PROTECTED]> wrote:

Hi,

> Jakub is pretty bugzilla savvy, are you sure you bugs weren't 
> closed for valid reasons? 

well, after some discussion @ gentoo-dev, it's now a little bit
clearer:

The bugs are not completely valid yet (but soon will be), since 
libpq (<=8.0.8) is still buggy/incomplete (missing pg_config), so
some packages may still need postgresql for building (not runtime).
I supplied fixed ebuild to the -dev, but they told me they don't 
see what I'm fixing ;-o 

Well, this issue is actually fixed in 8.0.9 (IMHO not completely
stabelized yet, but soon), while introducing another, even worse at 
the same time: libpq-8.0.9 doesn't wanna play w/ postgresql<=8.0.8,
but postgresql-8.0.9 wants exactly libpq-8.0.9. So there's no clean 
way to solve this. Someone @ b.g.o suggested completely removing 
postgres+libpq and installing afresh, but that's an absolutely 
no-go for production systems (IMHO). Disabling deps for upgrade
should work, but is unclean.

My fixed ebuild should fit into the gap by adding pg_config to 
libpq (overwriting the one from postgresql) and changing the
postgresql ebuild to be satisfied w/ this libpq version. 

> Sometime he does jump the gun though, 

Not only at me ? Some bit salving ;-)

<snip>

> Bugzilla is *the only* official channel to get bugs reported 
> so that the developers will fix them. If you don't report your 
> bugs, you'll just have to wait for someone else to report or 
> the developers to "accidentally" fix the bug while working on 
> something else.

I'll simply do it by myself. I have to maintain my own overlay
nevertheless. Maybe I could drop a note to -user if perhaps
anyone's interested in my stuff. But I had to learn filing bugs
and talking @ -dev are just a waste my (rare+expensive) time.

> > Lots of packages have an wrong/unnecessary dependency to
> > postgresql.
> 
> I don't doubt it.  It's generally better to depend on too much 
> rather than too little, and once things are "working" it's hard 
> to get someone to "fix" it and run the risk of breaking it further.

Wouldn't be such an problem w/ really cleanroom builds + tests
from the first place. Seems, Gentoo isn't made for that.

<snip>

> > Three cases: 
> >
> > a) probably traditionally depended on the whole postgresql, maybe
> >    since before libpq was an own package. ie. qt, dovecot, ...
> 
> Have you confirmed these actually compile just against libpg?

I'm still in the process. The lack of automatic cleanroom builds 
requires me to install an minimal jail before each build.
(most of my gentoo systems actually have postgresql server running)

> > b) many apps (ie. webapps like bugzilla) have postgresql as dep.,
> >    although they do not need it to be installed. (ie. bugzilla does
> >    not have to do anything directly w/ postgresql, since it uses
> >    perl-DBD for database access). Of course they maybe want to
> >    have access to some postgres database, but this obviously does
> >    not need an local server.
> 
> Are you sure this isn't bringing in postgresql to satisfy some virtual?

Which virtual should it be ? And why ?

> In all cases, you've confirmed that the dependency is direct and not 
> USE flag controlled? 

Of course, it is controlled by the postgresql useflag. But that doesn't
make it better. Bugzilla does not need an local postgres server.
And I didn't find any sign that it needs pg_config, so this current
libpq bug also shouldn't be an issue.


cu
-- 
---------------------------------------------------------------------
 Enrico Weigelt    ==   metux IT service - http://www.metux.de/
---------------------------------------------------------------------
 Please visit the OpenSource QM Taskforce:
        http://wiki.metux.de/public/OpenSource_QM_Taskforce
 Patches / Fixes for a lot dozens of packages in dozens of versions:
        http://patches.metux.de/
---------------------------------------------------------------------
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/libpq/libpq-8.0.8-r2.ebuild,v 1.12 
2006/07/30 22:32:28 chtekk Exp $

inherit eutils gnuconfig flag-o-matic toolchain-funcs

DESCRIPTION="Libraries of postgresql"
HOMEPAGE="http://www.postgresql.org/";
MY_P="postgresql-${PV}"
SRC_URI="mirror://postgresql/source/v${PV}/postgresql-base-${PV}.tar.bz2"

LICENSE="POSTGRESQL"
SLOT="4"
KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 s390 sh sparc x86"
IUSE="ssl nls pam readline zlib kerberos"
#pg-hier"

S=${WORKDIR}/${MY_P}
DEPEND="virtual/libc
        sys-devel/autoconf
        >=sys-libs/ncurses-5.2
        >=sys-devel/bison-1.875
        zlib? ( >=sys-libs/zlib-1.1.3 )
        pam? ( virtual/pam )
        readline? ( >=sys-libs/readline-4.1 )
        ssl? ( >=dev-libs/openssl-0.9.6-r1 )
        nls? ( sys-devel/gettext )
        kerberos? ( virtual/krb5 )"
RDEPEND="virtual/libc
        zlib? ( >=sys-libs/zlib-1.1.3 )
        ssl? ( >=dev-libs/openssl-0.9.6-r1 )
        kerberos? ( virtual/krb5 )"

MAKEOPTS="${MAKEOPTS} -j1"

pkg_preinst() {
        # removing wrong symlink which is created by previous ebuild.
        if [ -L /usr/include/libpq ]; then
                rm /usr/include/libpq
        fi
}

src_unpack() {
        unpack ${A}
        cd "${S}"
        epatch "${FILESDIR}/${P}-gentoo.patch"
}

src_compile() {
        filter-flags -ffast-math -feliminate-dwarf2-dups

        local myconf
        use ssl && myconf="$myconf --with-openssl"
        use nls && myconf="$myconf --enable-nls"
        use pam && myconf="$myconf --with-pam"
        use readline || myconf="$myconf --without-readline"
        use zlib || myconf="$myconf --without-zlib"
        use kerberos && myconf="$myconf --with-krb5"

        # these are the only working CFLAGS I could get on ppc, so locking them
        # down, anything more aggressive fails (i.e. -mcpu or -Ox)
        # Gerk - Nov 26, 2002
        use ppc && CFLAGS="-pipe -fsigned-char"

        # Detect mips systems properly
        gnuconfig_update

        ./configure --prefix=/usr \
                --include=/usr/include/postgresql/libpq-${SLOT} \
                --mandir=/usr/share/man \
                --host=${CHOST} \
                --with-docdir=/usr/share/doc/${PF} \
                --libdir=/usr/$(get_libdir) \
                --enable-depend \
                $myconf || die

        cd ${S}/src/interfaces/libpq
        emake LD="$(tc-getLD) $(get_abi_LDFLAGS)" || die

        cd "${S}/src/bin/pg_config" || die "could not cd to pg_config"
        emake -j1 LD="$(tc-getLD) $(get_abi_LDFLAGS)" || die "emake pg_config 
failed"
}

src_install() {
        cd ${S}/src/interfaces/libpq
        make DESTDIR=${D} LIBDIR=${D}/usr/$(get_libdir) install || die

        cd ${S}/src/include
        make DESTDIR=${D} install || die

        cd ${S}
        dodoc README HISTORY COPYRIGHT INSTALL

        dosym libpq-${SLOT}.a /usr/$(get_libdir)/libpq.a

        for f in ${D}/usr/include/postgresql/libpq-${SLOT}/*.h
        do
                dosym postgresql/libpq-${SLOT}/$(basename $f) /usr/include/
        done

        dodir /usr/include/libpq
        for f in ${D}/usr/include/postgresql/libpq-${SLOT}/libpq/*.h
        do
                dosym ../postgresql/libpq-${SLOT}/libpq/$(basename $f) 
/usr/include/libpq/
        done

        cd ${D}/usr/include/postgresql/libpq-${SLOT}
        for f in $(find * -name '*.h' -print) ; do
                destdir=$(dirname $f)
                if [ ! -d "${D}/usr/include/postgresql/${destdir}" ]; then
                        dodir /usr/include/postgresql/${destdir}
                fi
                dosym /usr/include/postgresql/libpq-${SLOT}/${f} 
/usr/include/postgresql/${destdir}/
        done

        cd "${S}/src/bin/pg_config"
        emake DESTDIR="${D}" install || die "emake install pg_config failed"
}

Reply via email to