* [gentoo-user] Wrong dependencies to postgresql
@ 2006-12-23 22:54 Enrico Weigelt
2006-12-24 17:54 ` Boyd Stephen Smith Jr.
0 siblings, 1 reply; 4+ messages in thread
From: Enrico Weigelt @ 2006-12-23 22:54 UTC (permalink / raw
To: gentoo developers, gentoo-user
Hi folks,
since jakub (as always) closes all my bugs, I'll report the issue
to this list before completely giving up and never ever waste a
single second on reporting bugs ...
Lots of packages have an wrong/unnecessary dependency to
postgresql. Three cases:
a) probably traditionally depended on the whole postgresql, maybe
since before libpq was an own package. ie. qt, dovecot, ...
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.
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/
---------------------------------------------------------------------
--
gentoo-user@gentoo.org mailing list
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [gentoo-user] Wrong dependencies to postgresql
2006-12-23 22:54 [gentoo-user] Wrong dependencies to postgresql Enrico Weigelt
@ 2006-12-24 17:54 ` Boyd Stephen Smith Jr.
2006-12-25 1:37 ` Enrico Weigelt
0 siblings, 1 reply; 4+ messages in thread
From: Boyd Stephen Smith Jr. @ 2006-12-24 17:54 UTC (permalink / raw
To: gentoo-user
[-- Attachment #1: Type: text/plain, Size: 2330 bytes --]
On Saturday 23 December 2006 16:54, Enrico Weigelt <weigelt@metux.de> wrote
about '[gentoo-user] Wrong dependencies to postgresql':
> since jakub (as always) closes all my bugs,
Jakub is pretty bugzilla savvy, are you sure you bugs weren't closed for
valid reasons? Sometime he does jump the gun though, so I don't doubt
that some of your bugs may be valid -- you can always add more information
to the bug and ask for it to be reopened.
> I'll report the issue
> to this list before completely giving up and never ever waste a
> single second on reporting bugs ...
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.
> 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.
> 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?
> 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?
In all cases, you've confirmed that the dependency is direct and not USE
flag controlled? Also, have you patched the ebuild with the
changed/removed dependency and then sucessfully installed and run the
package on a system *without postgresql* installed?
What's the third case?
--
"If there's one thing we've established over the years,
it's that the vast majority of our users don't have the slightest
clue what's best for them in terms of package stability."
-- Gentoo Developer Ciaran McCreesh
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [gentoo-user] Wrong dependencies to postgresql
2006-12-24 17:54 ` Boyd Stephen Smith Jr.
@ 2006-12-25 1:37 ` Enrico Weigelt
2006-12-25 11:52 ` Boyd Stephen Smith Jr.
0 siblings, 1 reply; 4+ messages in thread
From: Enrico Weigelt @ 2006-12-25 1:37 UTC (permalink / raw
To: gentoo-user
[-- Attachment #1: Type: text/plain, Size: 3964 bytes --]
* Boyd Stephen Smith Jr. <bss03@volumehost.net> 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/
---------------------------------------------------------------------
[-- Attachment #2: libpq-8.0.8-r1.ebuild --]
[-- Type: text/plain, Size: 3338 bytes --]
# 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"
}
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [gentoo-user] Wrong dependencies to postgresql
2006-12-25 1:37 ` Enrico Weigelt
@ 2006-12-25 11:52 ` Boyd Stephen Smith Jr.
0 siblings, 0 replies; 4+ messages in thread
From: Boyd Stephen Smith Jr. @ 2006-12-25 11:52 UTC (permalink / raw
To: gentoo-user
[-- Attachment #1: Type: text/plain, Size: 7605 bytes --]
On Sunday 24 December 2006 19:37, Enrico Weigelt <weigelt@metux.de> wrote
about 'Re: [gentoo-user] Wrong dependencies to postgresql':
First of all, thanks for responding, I was afraid we had lost another savvy
bugzilla user to the lack of (or discontent with) response from the
developers.
> * Boyd Stephen Smith Jr. <bss03@volumehost.net> wrote:
> > 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
Heh, like I mentioned/alluded to in my previous posting, once a package it
working, winnowing down the dependencies is sometimes not seen as
productive. I sympathizes with your blight and would volunteer my system
for chroot building were it not for my lack of time (etc.).
> 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.
Perhaps a dependency on '|| (>=category/libpq-8.0.9
<category/postgresql-8.0.9)' would be appropriate in this case. I believe
that ordering should prefer the library instead of the whole RDBMS.
In addition, a proper blocker should be added to libpq; I know it doesn't
help automated upgrades move forward, but at least is stops them from
blocking issues that *could* be problematic.
> 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.
Hrm, sounds as if you want a single file to be provided by two packages.
This is not "the Gentoo way". In Debian, we have the alternatives
interface; in gentoo, it's assumed you manage such symlinks with either
eselect or manually.
If the pg_configs are *different*, you should patch both libpq (to install
pg_config as pg_config-libpq-$SLOT) and postgresql (to install pg_config
as pg_config-postgresql-$SLOT) and provide an eslect module to choose the
appropriate pg_config.
If the pg_configs are *the same*, you should (a) add them to libpq and have
postgresql depend on libqg--not installing it's own pg_config. or (b) have
pg_config be it's own package, depended on by both libpq and postgresql.
> > Sometime he does jump the gun though,
>
> Not only at me ? Some bit salving ;-)
Oh yes. Particularly when marking bugs as duplicates. There were one or
two recent out-of-tree kernel module bugs that he marked as duplicates of
the generic "kernel-2.6.18+ breaks sandbox" bug that weren't actuallt
duplicates.
That said, Jakub is responsible for 50%+ of the hits to bugs.gentoo.org; he
*is* for all intents and purposes the bugzilla manager.
Normally, he's correct, but don't worry about respectfully disagreeing with
him. He's still human and will make mistakes.
> But I had to learn filing bugs
> and talking @ -dev are just a waste my (rare+expensive) time.
Perhaps your time is more valuable than mine, but I've never found
reporting bugs to be a waste of time. Surely, patching the offending
ebuild/source is better, but such patches should be attached to a bugs for
the developers/other users to use as well.
> > > 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.
Well, there is a catalyst target for smokescreen/tinderbox building. I'm
not sure of the quality but it is supposed to start from a clean image for
each rebuild, and simply use the binary packages previously built. I'd
assume it uses the ebuilds's test suite to verify post-install
correctness, (yes, there is support for unit-sytle testing built into
emerge) but I'm not sure the quality of those tests on libpq or
postgresql.
> > > 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)
Again, just so you know about the tools available, check out catalyst's
smokescreen/tinderbox target.
But, before you preform such tests, I'd think filing a bug to be premature.
Make sure there's a fixable issue before you potentially break packages.
> > > 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 ?
I'm not sure, I didn't do any investigation, but it could be something as
simple as virtual/db or virtual/storage. If it's bringing in postgresql
as a virtual, then it depends on postgresql OR any package that can
provide that virtual, as controlled by (IIRC) <profile>/virtual
plus /etc/portage/profile/virutual. In that case, I don't believe the bug
would be well-founded, because the dependent package (e.g. bugzilla)
definitely needs *somewhere* to store it's data.
> > 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.
USE-flags can bring in non-requisite dependencies, for convenience. If you
don't want a package to bring in the USE-flag dependent dependencies,
simply disable the flag for that package.
That said, if a use flags controls both *support for* and a *dependency on*
a certain package, it is broken, and I feel you bug could be valid. E.g.
package Y without the postgres USE flag can't use a remote postgresql
server but package Y with the postgres USE flags forces you to install a
local postgresql server.
--
"If there's one thing we've established over the years,
it's that the vast majority of our users don't have the slightest
clue what's best for them in terms of package stability."
-- Gentoo Developer Ciaran McCreesh
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-12-25 11:57 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-23 22:54 [gentoo-user] Wrong dependencies to postgresql Enrico Weigelt
2006-12-24 17:54 ` Boyd Stephen Smith Jr.
2006-12-25 1:37 ` Enrico Weigelt
2006-12-25 11:52 ` Boyd Stephen Smith Jr.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox