Обсуждение: horology regression test failure

Поиск
Список
Период
Сортировка

horology regression test failure

От
Martin Pitt
Дата:
Hi!

On almost all Debian platforms the horology test for 8.0.3 fails.
Sometimes it works on a platform, sometimes not, I did not yet find a
pattern, but most often it fails with something like

*** ./expected/horology.out     Sun Jul 11 04:57:20 2004
--- ./results/horology.out      Thu Sep 29 20:48:57 2005
***************
*** 1775,1784 ****
       | Wed Mar 15 13:14:02 2000 PST | @ 34 years                    | Tue=
 Mar 15 13:14:02 1966 PST
       | Sun Dec 31 17:32:01 2000 PST | @ 34 years                    | Sat=
 Dec 31 17:32:01 1966 PST
       | Mon Jan 01 17:32:01 2001 PST | @ 34 years                    | Sun=
 Jan 01 17:32:01 1967 PST
!      | Sat Sep 22 18:19:20 2001 PDT | @ 34 years                    | Fri=
 Sep 22 18:19:20 1967 PDT
!      | Thu Jan 01 00:00:00 1970 PST | @ 5 mons 12 hours             | Thu=
 Jul 31 12:00:00 1969 PDT
!      | Thu Jan 01 00:00:00 1970 PST | @ 5 mons                      | Fri=
 Aug 01 00:00:00 1969 PDT
!      | Thu Jan 01 00:00:00 1970 PST | @ 3 mons                      | Wed=
 Oct 01 00:00:00 1969 PDT
       | Thu Jan 01 00:00:00 1970 PST | @ 10 days                     | Mon=
 Dec 22 00:00:00 1969 PST
       | Thu Jan 01 00:00:00 1970 PST | @ 1 day 2 hours 3 mins 4 secs | Tue=
 Dec 30 21:56:56 1969 PST
       | Thu Jan 01 00:00:00 1970 PST | @ 5 hours                     | Wed=
 Dec 31 19:00:00 1969 PST
--- 1775,1784 ----
       | Wed Mar 15 13:14:02 2000 PST | @ 34 years                    | Tue=
 Mar 15 13:14:02 1966 PST
       | Sun Dec 31 17:32:01 2000 PST | @ 34 years                    | Sat=
 Dec 31 17:32:01 1966 PST
       | Mon Jan 01 17:32:01 2001 PST | @ 34 years                    | Sun=
 Jan 01 17:32:01 1967 PST
!      | Sat Sep 22 18:19:20 2001 PDT | @ 34 years                    | Fri=
 Sep 22 18:19:20 1967 PST
!      | Thu Jan 01 00:00:00 1970 PST | @ 5 mons 12 hours             | Thu=
 Jul 31 12:00:00 1969 PST
!      | Thu Jan 01 00:00:00 1970 PST | @ 5 mons                      | Fri=
 Aug 01 00:00:00 1969 PST
!      | Thu Jan 01 00:00:00 1970 PST | @ 3 mons                      | Wed=
 Oct 01 00:00:00 1969 PST
       | Thu Jan 01 00:00:00 1970 PST | @ 10 days                     | Mon=
 Dec 22 00:00:00 1969 PST
       | Thu Jan 01 00:00:00 1970 PST | @ 1 day 2 hours 3 mins 4 secs | Tue=
 Dec 30 21:56:56 1969 PST
       | Thu Jan 01 00:00:00 1970 PST | @ 5 hours                     | Wed=
 Dec 31 19:00:00 1969 PST

However, not even that is entirely consistent; the numbers are always
fine, but the second timezone is sometimes PST, sometimes PDT. Is this
problem known?

In case it matters, packages are configured with

                    --enable-nls \
                    --enable-integer-datetimes \
                    --enable-debug \
                    --disable-rpath \
                    --with-tcl \
                    --with-perl \
                    --with-python \
                    --with-pam \
                    --with-krb5 \
                    --with-openssl \
                    --with-gnu-ld \
                    --with-tclconfig=3D/usr/lib/tcl$(TCL_VER) \
                    --with-tkconfig=3D/usr/lib/tk$(TCL_VER) \
                    --with-includes=3D/usr/include/tcl$(TCL_VER):/usr/lib/R=
/include \
                    --with-pgport=3D5432 \

Thanks in advance!

Martin
--=20
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?

Re: horology regression test failure

От
Alvaro Herrera
Дата:
On Thu, Sep 29, 2005 at 11:08:22PM +0200, Martin Pitt wrote:

> On almost all Debian platforms the horology test for 8.0.3 fails.
> Sometimes it works on a platform, sometimes not, I did not yet find a
> pattern, but most often it fails with something like

I think this test is supposed to fail when it's run near a DST
transition.  The question to be asking is, then, is the server running
with a timezone that has just changed DST or is about to change?  In
this case, ignore the report.

Note in the diff below that the originals have PDT (second column)/PDT
(fourth column) while the result obtained from the test is PDT/PST; or
PST/PDT and PST/PST; or PST/PST and PST/PDT.

Does this explain the issue?

> *** ./expected/horology.out     Sun Jul 11 04:57:20 2004
> --- ./results/horology.out      Thu Sep 29 20:48:57 2005
> ***************
> *** 1775,1784 ****
>        | Wed Mar 15 13:14:02 2000 PST | @ 34 years                    | Tue Mar 15 13:14:02 1966 PST
>        | Sun Dec 31 17:32:01 2000 PST | @ 34 years                    | Sat Dec 31 17:32:01 1966 PST
>        | Mon Jan 01 17:32:01 2001 PST | @ 34 years                    | Sun Jan 01 17:32:01 1967 PST
> !      | Sat Sep 22 18:19:20 2001 PDT | @ 34 years                    | Fri Sep 22 18:19:20 1967 PDT
> !      | Thu Jan 01 00:00:00 1970 PST | @ 5 mons 12 hours             | Thu Jul 31 12:00:00 1969 PDT
> !      | Thu Jan 01 00:00:00 1970 PST | @ 5 mons                      | Fri Aug 01 00:00:00 1969 PDT
> !      | Thu Jan 01 00:00:00 1970 PST | @ 3 mons                      | Wed Oct 01 00:00:00 1969 PDT
>        | Thu Jan 01 00:00:00 1970 PST | @ 10 days                     | Mon Dec 22 00:00:00 1969 PST
>        | Thu Jan 01 00:00:00 1970 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Dec 30 21:56:56 1969 PST
>        | Thu Jan 01 00:00:00 1970 PST | @ 5 hours                     | Wed Dec 31 19:00:00 1969 PST
> --- 1775,1784 ----
>        | Wed Mar 15 13:14:02 2000 PST | @ 34 years                    | Tue Mar 15 13:14:02 1966 PST
>        | Sun Dec 31 17:32:01 2000 PST | @ 34 years                    | Sat Dec 31 17:32:01 1966 PST
>        | Mon Jan 01 17:32:01 2001 PST | @ 34 years                    | Sun Jan 01 17:32:01 1967 PST
> !      | Sat Sep 22 18:19:20 2001 PDT | @ 34 years                    | Fri Sep 22 18:19:20 1967 PST
> !      | Thu Jan 01 00:00:00 1970 PST | @ 5 mons 12 hours             | Thu Jul 31 12:00:00 1969 PST
> !      | Thu Jan 01 00:00:00 1970 PST | @ 5 mons                      | Fri Aug 01 00:00:00 1969 PST
> !      | Thu Jan 01 00:00:00 1970 PST | @ 3 mons                      | Wed Oct 01 00:00:00 1969 PST
>        | Thu Jan 01 00:00:00 1970 PST | @ 10 days                     | Mon Dec 22 00:00:00 1969 PST
>        | Thu Jan 01 00:00:00 1970 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Dec 30 21:56:56 1969 PST
>        | Thu Jan 01 00:00:00 1970 PST | @ 5 hours                     | Wed Dec 31 19:00:00 1969 PST

--
Alvaro Herrera                                http://www.PlanetPostgreSQL.org
"Porque Kim no hacia nada, pero, eso sí,
con extraordinario éxito" ("Kim", Kipling)

Re: horology regression test failure

От
Tom Lane
Дата:
Martin Pitt <martin@piware.de> writes:
> On almost all Debian platforms the horology test for 8.0.3 fails.

Before PG 8.0, I'd have said you were running with a timezone library
that didn't understand about DST before 1970.  It shouldn't be happening
in 8.0 though.

            regards, tom lane

Re: horology regression test failure

От
Martin Pitt
Дата:
Hi Tom!

Tom Lane [2005-09-29 17:50 -0400]:
> Martin Pitt <martin@piware.de> writes:
> > On almost all Debian platforms the horology test for 8.0.3 fails.
>
> Before PG 8.0, I'd have said you were running with a timezone library
> that didn't understand about DST before 1970.  It shouldn't be happening
> in 8.0 though.

The underlying glibc is the same everywhere: Debian's 2.3.5 on all
platforms and in all cases I tried it. And, for the record, the same
problem happens with 8.1 beta 3.

Thanks,

Martin

--
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?

Re: horology regression test failure

От
Martin Pitt
Дата:
Hi again!

Martin Pitt [2005-09-29 23:08 +0200]:
> Hi!
>=20
> On almost all Debian platforms the horology test for 8.0.3 fails.
> Sometimes it works on a platform, sometimes not, I did not yet find a
> pattern, but most often it fails with something like
> [...]

I now think I know what is wrong here.

This test has usually succeeded on my own computer, but it always
fails on the Debian buildds (which build packages in a minimal
chroot). As soon as I move away /usr/share/postgresql/8.1/timezone
when building 8.1, the horology test fails. I. e. as long as the
package that I currently build is already installed, then it works,
but it fails if the package is not yet installed.

The log entry seems to confirm this. I always get

LOG:  could not open directory "/usr/share/postgresql/8.0/timezone": No suc=
h file or directory

when running the 8.0 test suite on the debian buildds during package
build.

So it seems that the test suite uses the timezone files from the
installed system instead of the files in the temporary installation in
the regression test directory. Is there an easy way to fix that?

Thanks!

Martin

--=20
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?

Re: horology regression test failure

От
Tom Lane
Дата:
Martin Pitt <martin@piware.de> writes:
> So it seems that the test suite uses the timezone files from the
> installed system instead of the files in the temporary installation in
> the regression test directory.

It's not supposed to, and AFAICT it works fine for me (not only on my
personal machines, but also on Red Hat's build machines).  Perhaps
you've done something to break the package-relocation logic?  All those
files should be sought via paths relative to the postmaster executable.

            regards, tom lane

Re: horology regression test failure

От
Martin Pitt
Дата:
Hi Tom!

Tom Lane [2005-12-20 12:49 -0500]:
> Martin Pitt <martin@piware.de> writes:
> > So it seems that the test suite uses the timezone files from the
> > installed system instead of the files in the temporary installation in
> > the regression test directory.
>=20
> It's not supposed to, and AFAICT it works fine for me (not only on my
> personal machines, but also on Red Hat's build machines).  Perhaps
> you've done something to break the package-relocation logic?  All those
> files should be sought via paths relative to the postmaster executable.

Maybe I did something wrong with the configure options. That bug is
reproducible with the pristine upstream 8.1.1 tarball and doing:

./configure --prefix=3D/usr  --mandir=3D"\${prefix}/share/man"  \
  --sysconfdir=3D/etc  --libdir=3D"\${prefix}/lib/postgresql/8.1/lib" \
  --libexecdir=3D"\${prefix}/lib/postgresql-8.1/lib" \
  --mandir=3D\${prefix}/share/postgresql/8.1/man \
  --with-docdir=3D\${prefix}/share/doc/postgresql-doc-8.1 \
  --datadir=3D\${prefix}/share/postgresql/8.1 \
  --bindir=3D\${prefix}/lib/postgresql/8.1/bin \
  --includedir=3D\${prefix}/include/postgresql/8.1
make
make check

However, it does *not* happen when I do not specify any configure
options at all. I'll try to narrow down the problematic change
further, but can you already see what the problem is here?

Thanks,

Martin

--=20
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?

Re: horology regression test failure

От
Martin Pitt
Дата:
Hi!

Martin Pitt [2005-12-20 21:23 +0100]:
> Maybe I did something wrong with the configure options. That bug is
> reproducible with the pristine upstream 8.1.1 tarball and doing:
>=20
> ./configure --prefix=3D/usr  --mandir=3D"\${prefix}/share/man"  \
>   --sysconfdir=3D/etc  --libdir=3D"\${prefix}/lib/postgresql/8.1/lib" \
>   --libexecdir=3D"\${prefix}/lib/postgresql-8.1/lib" \
>   --mandir=3D\${prefix}/share/postgresql/8.1/man \
>   --with-docdir=3D\${prefix}/share/doc/postgresql-doc-8.1 \
>   --datadir=3D\${prefix}/share/postgresql/8.1 \
>   --bindir=3D\${prefix}/lib/postgresql/8.1/bin \
>   --includedir=3D\${prefix}/include/postgresql/8.1

A mere

 ./configure --libdir=3D/usr/lib/postgresql/8.1/lib --bindir=3D/usr/lib/pos=
tgresql/8.1/bin

is enough to reproduce the problem. With only --libdir, it works, and
with only --bindir the test suite does not run at all because the
postmaster cannot find $libdir (but that is still justifiable).

Thanks,

Martin

--=20
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?

Re: horology regression test failure

От
Tom Lane
Дата:
Martin Pitt <martin@piware.de> writes:
> Maybe I did something wrong with the configure options. That bug is
> reproducible with the pristine upstream 8.1.1 tarball and doing:

> =2E/configure --prefix=/usr  --mandir="\${prefix}/share/man"  \
>   --sysconfdir=/etc  --libdir="\${prefix}/lib/postgresql/8.1/lib" \
>   --libexecdir="\${prefix}/lib/postgresql-8.1/lib" \
>   --mandir=\${prefix}/share/postgresql/8.1/man \
>   --with-docdir=\${prefix}/share/doc/postgresql-doc-8.1 \
>   --datadir=\${prefix}/share/postgresql/8.1 \
>   --bindir=\${prefix}/lib/postgresql/8.1/bin \
>   --includedir=\${prefix}/include/postgresql/8.1

> However, it does *not* happen when I do not specify any configure
> options at all. I'll try to narrow down the problematic change
> further, but can you already see what the problem is here?

Yeah, the chosen-at-random pathnames ;-).  I quote from the comments
for make_relative_path():

 * This function exists to support relocation of installation trees.
 *
 *      ret_path is the output area (must be of size MAXPGPATH)
 *      target_path is the compiled-in path to the directory we want to find
 *      bin_path is the compiled-in path to the directory of executables
 *      my_exec_path is the actual location of my executable
 *
 * If target_path matches bin_path up to the last directory component of
 * bin_path, then we build the result as my_exec_path (less the executable
 * name and last directory) joined to the non-matching part of target_path.
 * Otherwise, we return target_path as-is.
 *
 * For example:
 *      target_path  = '/usr/local/share/postgresql'
 *      bin_path     = '/usr/local/bin'
 *      my_exec_path = '/opt/pgsql/bin/postmaster'
 * Given these inputs we would return '/opt/pgsql/share/postgresql'

In short, you can set --prefix however you want, but you really can't
tack random decoration between --prefix and /bin, /share and friends;
else make_relative_path will be unable to figure out how to transform
one to the other.

We could doubtless improve make_relative_path to some extent, but the
mess you have above seems impossible to deal with.  How is a mere
program supposed to deduce where things were moved to, given only
knowledge of the actual location of --bindir?  I see little if any
pattern that would allow prediction of the corresponding --datadir,
let alone --libexecdir or --includedir ...

            regards, tom lane

Re: horology regression test failure

От
Tom Lane
Дата:
Martin Pitt <martin@piware.de> writes:
>  ./configure --libdir=3D/usr/lib/postgresql/8.1/lib --bindir=3D/usr/lib/pos=
> tgresql/8.1/bin

> is enough to reproduce the problem. With only --libdir, it works, and
> with only --bindir the test suite does not run at all because the
> postmaster cannot find $libdir (but that is still justifiable).

Try adding --datadir=/usr/lib/postgresql/8.1/share to that.  Actually,
you'd be best off replacing all three options with
    --prefix=/usr/lib/postgresql/8.1
because that will make sure that the entire installation is consistent.

            regards, tom lane

Re: horology regression test failure

От
Martin Pitt
Дата:
Hi!

Tom Lane [2005-12-20 16:39 -0500]:
> Yeah, the chosen-at-random pathnames ;-).

It's not that random, these are the paths that the FHS and Debian
policy prescribe for this package's structure (multiple versions
installable in parallel). :)=20

> I quote from the comments for make_relative_path():

Thanks, that was enlightening.

> In short, you can set --prefix however you want, but you really can't
> tack random decoration between --prefix and /bin, /share and friends;
> else make_relative_path will be unable to figure out how to transform
> one to the other.

I see, that at least makes the reason for the failure plausible.
However, if --bindir etc. cannot be set, then maybe configure should
not offer these options? OTOH the only thing that actually breaks is
the horology test suite, everything else works just fine since files
shipped in a package are never relocated.

> We could doubtless improve make_relative_path to some extent, but the
> mess you have above seems impossible to deal with.  How is a mere
> program supposed to deduce where things were moved to, given only
> knowledge of the actual location of --bindir?  I see little if any
> pattern that would allow prediction of the corresponding --datadir,
> let alone --libexecdir or --includedir ...

Right, with make_relative_path's current approach that seems to be
impossible. However, in a test suite I had expected a semantics like
$DESTDIR, i. e. instead of mangling the path somewhere in the middle,
the test suite should just prepend the tmp_check path.

It seems that the needs of the upstream tarball handling and the needs
of packaging differ somewhat. But instead of hacking in the interiors
of path handling, I will rather try another easy workaround.

Thanks,

Martin

--=20
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

Re: horology regression test failure

От
Martin Pitt
Дата:
Hi!

Tom Lane [2005-12-20 17:16 -0500]:
> Martin Pitt <martin@piware.de> writes:
> >  ./configure --libdir=3D3D/usr/lib/postgresql/8.1/lib --bindir=3D3D/usr=
/lib/pos=3D
> > tgresql/8.1/bin
>=20
> > is enough to reproduce the problem. With only --libdir, it works, and
> > with only --bindir the test suite does not run at all because the
> > postmaster cannot find $libdir (but that is still justifiable).
>=20
> Try adding --datadir=3D/usr/lib/postgresql/8.1/share to that.  Actually,
> you'd be best off replacing all three options with
>     --prefix=3D/usr/lib/postgresql/8.1
> because that will make sure that the entire installation is consistent.

When I only specify --prefix, it indeed works. However, it already
breaks again with

  ./configure --prefix=3D/usr/share/postgresql/8.1 --exec-prefix=3D/usr/lib=
/postgresql/8.1

I'm fine with dropping --bindir, --libdir, --datadir, but at least the
arch-independent and arch-dependent prefix should work. I do not want
to put all arch-independent data into /usr/lib, it would violate the
FHS and Debian Policy.

Is it possible to fix this?

Thanks,

Martin

--=20
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?

Better path-matching for package relocatability (was Re: horology regression test failure)

От
Tom Lane
Дата:
Martin Pitt <martin@piware.de> writes:
> Tom Lane [2005-12-20 16:39 -0500]:
>> We could doubtless improve make_relative_path to some extent, but the
>> mess you have above seems impossible to deal with.  How is a mere
>> program supposed to deduce where things were moved to, given only
>> knowledge of the actual location of --bindir?  I see little if any
>> pattern that would allow prediction of the corresponding --datadir,
>> let alone --libexecdir or --includedir ...

> Right, with make_relative_path's current approach that seems to be
> impossible. However, in a test suite I had expected a semantics like
> $DESTDIR, i. e. instead of mangling the path somewhere in the middle,
> the test suite should just prepend the tmp_check path.

Well, more generally what we need is a better match algorithm in
make_relative_path.  After a few moment's thought I propose:

* Determine the common prefix of the compiled-in target_path and
bin_path (for typical cases this would be "/usr" or "/usr/local";
worst case is that the common prefix is just "/").  Call everything
to the right of the common prefix the "tail" of these paths.  The
currently expected scenario is that the tails are "share" and "bin",
but there might be more than one directory level in them.

* Try to match the tail of the bin_path to the end of the actual binary
location (my_exec_path without the executable's name).

* If match, take everything to the left of the match in my_exec_path,
and append the tail of target_path to produce the result.

* If no match, use target_path as-is, same as now.

I think this would get right all of the cases the current code gets
right, and more generally would work when we need to substitute N
levels of directory names instead of just one.  It may still be a
few bricks shy of a load, however.  Any thoughts?
        regards, tom lane


Re: horology regression test failure

От
Peter Eisentraut
Дата:
Am Mittwoch, 21. Dezember 2005 08:21 schrieb Martin Pitt:
> However, if --bindir etc. cannot be set, then maybe configure should
> not offer these options?

They can be set and support for that will not go away.  But if you choose
unfortunate combinations of locations, the installation becomes
unrelocatable.  Having a relocatable installation is a fairly uninteresting
feature for binary package building on Linux systems (it was mainly intended
for Windows), so I would not worry about that.

The problem with the temporary-installation regression tests has always been
that they sometimes erroneously refer to the declared final installation
location rather than the temporary installations.  Rpaths have been a
particular problem.  This is something that one justs deals with manually.  I
suppose one could add, say, an environment variable override for the time
zone database but I'm not sure that we need a global solution for such a rare
failure case.

Re: horology regression test failure

От
Tom Lane
Дата:
Peter Eisentraut <peter_e@gmx.net> writes:
> Am Mittwoch, 21. Dezember 2005 08:21 schrieb Martin Pitt:
>> However, if --bindir etc. cannot be set, then maybe configure should
>> not offer these options?

> They can be set and support for that will not go away.  But if you choose
> unfortunate combinations of locations, the installation becomes
> unrelocatable.  Having a relocatable installation is a fairly uninteresting
> feature for binary package building on Linux systems (it was mainly intended
> for Windows), so I would not worry about that.

It's not all that uninteresting, because "make check" is essentially an
instance of exercising the relocatability feature.  The fact that things
like rpath might get in the way doesn't mean that we should ignore other
problems.

(I'm not sure about Debian's policy, but the RPMs do --disable-rpath for
unrelated policy reasons, so there shouldn't be any problem with
relocating an RPM-based installation...)

            regards, tom lane

Re: horology regression test failure

От
Stephen Frost
Дата:
* Tom Lane (tgl@sss.pgh.pa.us) wrote:
> (I'm not sure about Debian's policy, but the RPMs do --disable-rpath for
> unrelated policy reasons, so there shouldn't be any problem with
> relocating an RPM-based installation...)

Debian's policy is to do --disable-rpath also, which I hope Martin is
doing but honestly havn't gone back and checked on lately. :)

    Thanks,

        Stephen

Re: [HACKERS] Better path-matching for package relocatability (was Re:

От
Bruce Momjian
Дата:
Tom Lane wrote:
> Well, more generally what we need is a better match algorithm in
> make_relative_path.  After a few moment's thought I propose:
> 
> * Determine the common prefix of the compiled-in target_path and
> bin_path (for typical cases this would be "/usr" or "/usr/local";
> worst case is that the common prefix is just "/").  Call everything
> to the right of the common prefix the "tail" of these paths.  The
> currently expected scenario is that the tails are "share" and "bin",
> but there might be more than one directory level in them.
> 
> * Try to match the tail of the bin_path to the end of the actual binary
> location (my_exec_path without the executable's name).
> 
> * If match, take everything to the left of the match in my_exec_path,
> and append the tail of target_path to produce the result.
> 
> * If no match, use target_path as-is, same as now.
> 
> I think this would get right all of the cases the current code gets
> right, and more generally would work when we need to substitute N
> levels of directory names instead of just one.  It may still be a
> few bricks shy of a load, however.  Any thoughts?

Sounds fine.  When I did the original code, I was very conservative
about where I would look in the fear I might hit something strange.  Now
that we have used this code in product with little problem, having it be
more aggressive seems logical.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


Re: horology regression test failure

От
Martin Pitt
Дата:
Hi!

Stephen Frost [2005-12-21 21:06 -0500]:
> * Tom Lane (tgl@sss.pgh.pa.us) wrote:
> > (I'm not sure about Debian's policy, but the RPMs do --disable-rpath for
> > unrelated policy reasons, so there shouldn't be any problem with
> > relocating an RPM-based installation...)
>=20
> Debian's policy is to do --disable-rpath also, which I hope Martin is
> doing but honestly havn't gone back and checked on lately. :)

Right, rpath is evil, and Debian packages have always disabled it.

Merry christmas,

Martin

--=20
Martin Pitt              http://www.piware.de
Ubuntu Developer   http://www.ubuntulinux.org
Debian Developer        http://www.debian.org

Re: horology regression test failure

От
Peter Eisentraut
Дата:
Tom Lane wrote:
> It's not all that uninteresting, because "make check" is essentially an
> instance of exercising the relocatability feature.

That just means that the test suite is testing features that are not of
interest to certain groups of users; it doesn't declare a feature
intesting.

(Certainly the test suite failure should be fixed, but I don't consider
making arbitary installations relocatable as necessary or restricting
arbitrary installations as acceptable.)

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

Re: horology regression test failure

От
Tom Lane
Дата:
Martin Pitt <martin@piware.de> writes:
> I'm fine with dropping --bindir, --libdir, --datadir, but at least the
> arch-independent and arch-dependent prefix should work. I do not want
> to put all arch-independent data into /usr/lib, it would violate the
> FHS and Debian Policy.

> Is it possible to fix this?

I've committed changes to make_relative_path that should handle what
you want to do.

            regards, tom lane

Re: horology regression test failure

От
Martin Pitt
Дата:
Hi Tom!
=09
Tom Lane [2005-12-23 17:38 -0500]:
> Martin Pitt <martin@piware.de> writes:
> > I'm fine with dropping --bindir, --libdir, --datadir, but at least the
> > arch-independent and arch-dependent prefix should work. I do not want
> > to put all arch-independent data into /usr/lib, it would violate the
> > FHS and Debian Policy.
>=20
> > Is it possible to fix this?
>=20
> I've committed changes to make_relative_path that should handle what
> you want to do.

This works just perfectly, nice christmas present. :)

Thank you and have a nice day!

Martin
--=20
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?