Subject: RE: postgresql question
From: "Ralf Habacker" <[email-masked]>
To: "Jason Tishler" <[email-masked]>
Cc: "Cygwin" <[email-masked]>
Date: Sat, 9 Nov 2002 03:21:45 +0100

> On Fri, Nov 08, 2002 at 09:50:45AM +0100, Ralf Habacker wrote:
> > > -----Original Message-----
> > > From: Jason Tishler [mailto:[email-masked]]
> > > Sent: Thursday, November 07, 2002 7:48 PM
> > >
> > But some pgcyrpto functions returns different crypted hashes as under
> > linux for example and that is the reason why the below mentioned
> > regression test fails.
>
> Could this be a binary versus text issue?  See below...
>
> > > Does proftpd work for you under Cygwin?  When I tried, I discovered
> > > many issues even though it built OOTB.
> >
> > What do you mean especially ?
>
> So far I have found the following issues with Cygwin ProFTPD 1.2.6:

I'm used the recent cvs release
>
>     o inaccuracies in the README.cygwin
>     o build problems due to missing EXEEXTs in Makefile.in

no problem
>     o password authentication problems (need to use cygwin_logon_user())
>     o ls fails
no problem
>     o get reports inaccurate file sizes
>     o numerous setuid(0) calls

there is only one place where i have to comment it out

Index: main.c
===================================================================
RCS file: /cvsroot/proftp/proftpd/src/main.c,v
retrieving revision 1.128
diff -u -3 -p -B -r1.128 main.c
--- main.c      28 Oct 2002 16:51:50 -0000      1.128
+++ main.c      8 Nov 2002 23:42:04 -0000
@@ -3097,6 +3097,7 @@ int main(int argc, char *argv[], char **
    * a portable fashion *gah!*
    */

+#ifndef __CYGWIN__
   if (geteuid() != daemon_uid) {
     log_pri(PR_LOG_ERR, "unable to set uid to %lu, current uid: %lu",
                    (unsigned long)daemon_uid,(unsigned long)geteuid());
@@ -3108,6 +3109,7 @@ int main(int argc, char *argv[], char **
                    (unsigned long)daemon_gid,(unsigned long)getegid());
     exit(1);
   }
+#endif

   /* Install a signal handlers/abort handler */
   install_signal_handlers();

>
> > [snip]
> > > What is the above?  It looks like a PostgreSQL regression test
> > > output, but I have never seen the above when I run the regression
> > > test.
> >
> > $ cd <postgresql-source-root>/contrib/pgcrypto
> > make installcheck
>
> Doh!  I tried make test yesterday -- I should know better!
>
> BTW, all tests succeed for me:
>
>     test init                 ... ok
>     test md5                  ... ok
>     test sha1                 ... ok
>     test hmac-md5             ... ok
>     test hmac-sha1            ... ok
>     test blowfish             ... ok
>     test rijndael             ... ok
>     test crypt-des            ... ok
>     test crypt-md5            ... ok
>     test crypt-blowfish       ... ok
>     test crypt-xdes           ... ok
>
> > As i said above, it seems to me, that there are different md5
> > implementations at all. It's very confusing.  In short, postgresql
> > create different md5 keys under cygwin and linux
>
> See above.

Im using binary mounts
$ mount
c:\programme\cygwin\bin on /usr/bin type system (binmode)
c:\programme\cygwin\lib on /usr/lib type system (binmode)
c:\programme\cygwin on / type system (binmode)
c: on /c type user (binmode,noumount)
d: on /d type user (binmode,noumount)

>
> > > BTW, I'm still looking for a cygipc beta tester:
> > >
> > >     http://cygwin.com/ml/cygwin/2002-11/msg00136.html
> > >
> > > Are you willing to help me out?
> > >
> > [snip]
> >
> > Have I only update the ipc-daemon or have I to rebuild all the client
> > applications ?
> >
> > The patches let me assume that this affect only the daemon.
>
> No, the patch actually affects the library, libcygipc.a.  Unfortunately,
> you will have to build all (or at least some) of the client
> applications.

Jason, I have inspect the kde (kdelibs/kdebase) sources about this issue and
found, that any code which uses shmget (semget is never used) handles return
code correctly (-1 = error code) so that adding the ENOSYS return code does not
affect kde.

Next I have taken the qt sources and found the same results.

Next I have taken a look into the xfree sources and found that the Xserver
handles the return codes valid.

Nice code below:
xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c
</snip>
    if ((high_mem = shmget(counter++, HIGH_MEM_SIZE,
			       IPC_CREAT | SHM_R | SHM_W)) == -1) {
	if (errno == ENOSYS)
	    xf86DrvMsg(screen, X_ERROR, "shmget error\n Please reconfigure"
		       " your kernel to include System V IPC support\n");
	goto error1;
<snip>

Because the linux implementation of shmget()/semget() returns already ENOSYS in
case of "no shm implementation" errors and because kde code runs already very
long on linux, i believe that there is no problem with this patch.

So from my view there are no reason, why this patch does be go into the offical
cygipc release.

Jason, I haven't recompiled kde with this release, because this job isn't
possible for me at this moment. A whole recompile of kde and testing is a job of
several days and I will do that, when the next kde release is going to be
released.

BTW: I haven't recongized you patch before. So please sorry if this have delayed
your release planing of the postgresql port.

You have done a great job.

Regards
Ralf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/