OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-web, openpkg-src         Date:   11-Dec-2002 12:09:16
  Branch: HEAD                             Handle: 2002121111091501

  Modified files:
    openpkg-src/cvs         cvs.patch cvs.spec
    openpkg-web             news.txt

  Log:
    include some important server fixes from cvshome.org CVS trunk

  Summary:
    Revision    Changes     Path
    1.2         +315 -8     openpkg-src/cvs/cvs.patch
    1.39        +4  -2      openpkg-src/cvs/cvs.spec
    1.2243      +1  -0      openpkg-web/news.txt
  ____________________________________________________________________________

  Index: openpkg-src/cvs/cvs.patch
  ============================================================
  $ cvs diff -u -r1.1 -r1.2 cvs.patch
  --- openpkg-src/cvs/cvs.patch 22 Aug 2002 13:47:00 -0000      1.1
  +++ openpkg-src/cvs/cvs.patch 11 Dec 2002 11:09:16 -0000      1.2
  @@ -1,16 +1,323 @@
  -Fix communication hanging in communication shutdown phase, caused by at
  -least older CVS clients (version < 1.11.2) and a semantically incorrect
  -usage of getc() by the server.
  -
  ---- cvs-1.11.2.orig/src/buffer.c     2001-08-09 21:26:35.000000000 +0200
  -+++ cvs-1.11.2/src/buffer.c  2002-08-22 15:40:11.000000000 +0200
  -@@ -1378,8 +1378,7 @@
  +Index: src/server.c
  +===================================================================
  +RCS file: /cvs/ccvs/src/server.c,v
  +diff -u -d -r1.275 -r1.277
  +--- src/server.c     18 Jun 2002 13:35:28 -0000      1.275
  ++++ src/server.c     14 Aug 2002 13:21:55 -0000      1.277
  +@@ -5010,6 +5010,8 @@
  +      int argc;
  +      char **argv;
  + {
  ++    char *error_prog_name;          /* Used in error messages */
  ++
  +     if (argc == -1)
  +     {
  +     static const char *const msg[] =
  +@@ -5165,39 +5167,18 @@
  +     /* Small for testing.  */
  +     argument_vector_size = 1;
  +     argument_vector =
  +-    (char **) malloc (argument_vector_size * sizeof (char *));
  +-    if (argument_vector == NULL)
  +-    {
  +-    /*
  +-     * Strictly speaking, we're not supposed to output anything
  +-     * now.  But we're about to exit(), give it a try.
  +-     */
  +-    printf ("E Fatal server error, aborting.\n\
  +-error ENOMEM Virtual memory exhausted.\n");
  +-
  +-    /* I'm doing this manually rather than via error_exit ()
  +-       because I'm not sure whether we want to call server_cleanup.
  +-       Needs more investigation....  */
  +-
  +-#ifdef SYSTEM_CLEANUP
  +-    /* Hook for OS-specific behavior, for example socket subsystems on
  +-       NT and OS2 or dealing with windows and arguments on Mac.  */
  +-    SYSTEM_CLEANUP ();
  +-#endif
  +-
  +-    exit (EXIT_FAILURE);
  +-    }
  +-
  ++    (char **) xmalloc (argument_vector_size * sizeof (char *));
  +     argument_count = 1;
  +     /* This gets printed if the client supports an option which the
  +        server doesn't, causing the server to print a usage message.
  +-       FIXME: probably should be using program_name here.
  +        FIXME: just a nit, I suppose, but the usage message the server
  +        prints isn't literally true--it suggests "cvs server" followed
  +        by options which are for a particular command.  Might be nice to
  +        say something like "client apparently supports an option not supported
  +        by this server" or something like that instead of usage message.  */
  +-    argument_vector[0] = "cvs server";
  ++    error_prog_name = xmalloc( strlen(program_name) + 8 );
  ++    sprintf(error_prog_name, "%s server", program_name);
  ++    argument_vector[0] = error_prog_name;
  + 
  +     while (1)
  +     {
  +@@ -5270,6 +5251,7 @@
  +     }
  +     free (orig_cmd);
  +     }
  ++    free(error_prog_name);
  +     server_cleanup (0);
  +     return 0;
  + }
  +@@ -5419,8 +5401,8 @@
  +     int found_it = 0;
  +     int namelen;
  + 
  +-    /* We don't use current_parsed_root->directory because it hasn't been set yet
  +-     * -- our `repository' argument came from the authentication
  ++    /* We don't use current_parsed_root->directory because it hasn't been
  ++     * set yet -- our `repository' argument came from the authentication
  +      * protocol, not the regular CVS protocol.
  +      */
  + 
  +@@ -5578,7 +5560,7 @@
  +     {
  +     /* No cvs password found, so try /etc/passwd. */
  + 
  +-    const char *found_passwd = NULL;
  ++    char *found_passwd = NULL;
  +     struct passwd *pw;
  + #ifdef HAVE_GETSPNAM
  +     struct spwd *spw;
  +Index: src/server.c
  +===================================================================
  +RCS file: /cvs/ccvs/src/server.c,v
  +diff -u -d -r1.279 -r1.280
  +--- src/server.c     16 Sep 2002 14:56:25 -0000      1.279
  ++++ src/server.c     4 Oct 2002 19:56:01 -0000       1.280
  +@@ -3213,10 +3213,13 @@
  +     buf_flush (buf_to_net, 1);
  +     buf_shutdown (protocol_inbuf);
  +     buf_free (protocol_inbuf);
  ++    protocol_inbuf = NULL;
  +     buf_shutdown (stderrbuf);
  +     buf_free (stderrbuf);
  ++    stderrbuf = NULL;
  +     buf_shutdown (stdoutbuf);
  +     buf_free (stdoutbuf);
  ++    stdoutbuf = NULL;
  +     }
  + 
  +     if (errs)
  +@@ -4891,9 +4894,9 @@
  + 
  +     status = buf_shutdown (buf_from_net);
  +     if (status != 0)
  +-    {
  +         error (0, status, "shutting down buffer from client");
  +-    }
  ++    buf_free (buf_from_net);
  ++    buf_from_net = NULL;
  +     }
  + 
  +     if (dont_delete_temp)
  +@@ -4902,6 +4905,9 @@
  +     {
  +         (void) buf_flush (buf_to_net, 1);
  +         (void) buf_shutdown (buf_to_net);
  ++        buf_free (buf_to_net);
  ++        buf_to_net = NULL;
  ++        error_use_protocol = 0;
  +     }
  +     return;
  +     }
  +@@ -5003,6 +5009,9 @@
  +     {
  +     (void) buf_flush (buf_to_net, 1);
  +     (void) buf_shutdown (buf_to_net);
  ++    buf_free (buf_to_net);
  ++    buf_to_net = NULL;
  ++    error_use_protocol = 0;
  +     }
  + }
  + 
  +@@ -5146,25 +5155,6 @@
  +     }
  +     }
  + 
  +-#ifdef SIGABRT
  +-    (void) SIG_register (SIGABRT, server_cleanup);
  +-#endif
  +-#ifdef SIGHUP
  +-    (void) SIG_register (SIGHUP, server_cleanup);
  +-#endif
  +-#ifdef SIGINT
  +-    (void) SIG_register (SIGINT, server_cleanup);
  +-#endif
  +-#ifdef SIGQUIT
  +-    (void) SIG_register (SIGQUIT, server_cleanup);
  +-#endif
  +-#ifdef SIGPIPE
  +-    (void) SIG_register (SIGPIPE, server_cleanup);
  +-#endif
  +-#ifdef SIGTERM
  +-    (void) SIG_register (SIGTERM, server_cleanup);
  +-#endif
  +-
  +     /* Now initialize our argument vector (for arguments from the client).  */
  + 
  +     /* Small for testing.  */
  +@@ -6352,12 +6342,12 @@
  +     if (len == 0)
  +     len = strlen (str);
  + #ifdef SERVER_SUPPORT
  +-    if (error_use_protocol)
  ++    if (error_use_protocol && buf_to_net != NULL)
  +     {
  +     buf_output (saved_output, str, len);
  +     buf_copy_lines (buf_to_net, saved_output, 'M');
  +     }
  +-    else if (server_active)
  ++    else if (server_active && protocol != NULL)
  +     {
  +     buf_output (saved_output, str, len);
  +     buf_copy_lines (protocol, saved_output, 'M');
  +Index: src/server.c
  +===================================================================
  +RCS file: /cvs/ccvs/src/server.c,v
  +diff -u -d -r1.280 -r1.281
  +--- src/server.c     4 Oct 2002 19:56:01 -0000       1.280
  ++++ src/server.c     25 Oct 2002 19:35:07 -0000      1.281
  +@@ -710,17 +710,7 @@
  +            cause deadlock, as noted in server_cleanup.  */
  +         buf_flush (buf_to_net, 1);
  + 
  +-        /* I'm doing this manually rather than via error_exit ()
  +-           because I'm not sure whether we want to call server_cleanup.
  +-           Needs more investigation....  */
  +-
  +-#ifdef SYSTEM_CLEANUP
  +-        /* Hook for OS-specific behavior, for example socket subsystems on
  +-           NT and OS2 or dealing with windows and arguments on Mac.  */
  +-        SYSTEM_CLEANUP ();
  +-#endif
  +-
  +-        exit (EXIT_FAILURE);
  ++        error_exit ();
  +     }
  +     else if (rs->status == rs_optional)
  +         rs->status = rs_not_supported;
  +@@ -5080,18 +5070,7 @@
  +             printf ("E Fatal server error, aborting.\n\
  + error ENOMEM Virtual memory exhausted.\n");
  + 
  +-            /* I'm doing this manually rather than via error_exit ()
  +-               because I'm not sure whether we want to call server_cleanup.
  +-               Needs more investigation....  */
  +-
  +-#ifdef SYSTEM_CLEANUP
  +-            /* Hook for OS-specific behavior, for example socket
  +-               subsystems on NT and OS2 or dealing with windows
  +-               and arguments on Mac.  */
  +-            SYSTEM_CLEANUP ();
  +-#endif
  +-
  +-            exit (EXIT_FAILURE);
  ++            error_exit ();
  +         }
  +         strcpy (server_temp_dir, Tmpdir);
  + 
  +@@ -5575,17 +5554,7 @@
  +         printf ("E Fatal error, aborting.\n\
  + error 0 %s: no such user\n", username);
  + 
  +-        /* I'm doing this manually rather than via error_exit ()
  +-           because I'm not sure whether we want to call server_cleanup.
  +-           Needs more investigation....  */
  +-
  +-#ifdef SYSTEM_CLEANUP
  +-        /* Hook for OS-specific behavior, for example socket subsystems on
  +-           NT and OS2 or dealing with windows and arguments on Mac.  */
  +-        SYSTEM_CLEANUP ();
  +-#endif
  +-
  +-        exit (EXIT_FAILURE);
  ++        error_exit ();
  +     }
  + 
  +     /* Allow for dain bramaged HPUX passwd aging
  +@@ -5635,16 +5604,7 @@
  +        outweighs this.  */
  +     printf ("error 0 no such user %s in CVSROOT/passwd\n", username);
  + 
  +-    /* I'm doing this manually rather than via error_exit ()
  +-       because I'm not sure whether we want to call server_cleanup.
  +-       Needs more investigation....  */
  +-
  +-#ifdef SYSTEM_CLEANUP
  +-    /* Hook for OS-specific behavior, for example socket subsystems on
  +-       NT and OS2 or dealing with windows and arguments on Mac.  */
  +-    SYSTEM_CLEANUP ();
  +-#endif
  +-    exit (EXIT_FAILURE);
  ++    error_exit ();
  +     }
  +     else
  +     {
  +@@ -5901,12 +5861,8 @@
  +     {
  +     printf ("E Fatal error, aborting.\n\
  + error %s getpeername or getsockname failed\n", strerror (errno));
  +-#ifdef SYSTEM_CLEANUP
  +-    /* Hook for OS-specific behavior, for example socket subsystems on
  +-       NT and OS2 or dealing with windows and arguments on Mac.  */
  +-    SYSTEM_CLEANUP ();
  +-#endif
  +-    exit (EXIT_FAILURE);
  ++
  ++    error_exit ();
  +     }
  + 
  + #ifdef SO_KEEPALIVE
  +@@ -5932,12 +5888,8 @@
  +     {
  +     printf ("E Fatal error, aborting.\n\
  + error 0 kerberos: %s\n", krb_get_err_text(status));
  +-#ifdef SYSTEM_CLEANUP
  +-    /* Hook for OS-specific behavior, for example socket subsystems on
  +-       NT and OS2 or dealing with windows and arguments on Mac.  */
  +-    SYSTEM_CLEANUP ();
  +-#endif
  +-    exit (EXIT_FAILURE);
  ++
  ++    error_exit ();
  +     }
  + 
  +     memcpy (kblock, auth.session, sizeof (C_Block));
  +@@ -5948,12 +5900,8 @@
  +     {
  +     printf ("E Fatal error, aborting.\n\
  + error 0 kerberos: can't get local name: %s\n", krb_get_err_text(status));
  +-#ifdef SYSTEM_CLEANUP
  +-    /* Hook for OS-specific behavior, for example socket subsystems on
  +-       NT and OS2 or dealing with windows and arguments on Mac.  */
  +-    SYSTEM_CLEANUP ();
  +-#endif
  +-    exit (EXIT_FAILURE);
  ++
  ++    error_exit ();
  +     }
  + 
  +     /* Switch to run as this user. */
  +Index: src/buffer.c
  +===================================================================
  +RCS file: /cvs/ccvs/src/buffer.c,v
  +diff -u -d -r1.19 -r1.20
  +--- src/buffer.c     20 May 2002 18:27:55 -0000      1.19
  ++++ src/buffer.c     24 Oct 2002 19:54:58 -0000      1.20
  +@@ -1392,8 +1392,7 @@
    
        if (buf->input)
        {
   -    if (! buf_empty_p (buf)
   -        || getc (bc->fp) != EOF)
  -+    if (! buf_empty_p (buf))
  ++    if ( !buf_empty_p (buf) )
        {
    # ifdef SERVER_SUPPORT
            if (server_active)
  Index: openpkg-src/cvs/cvs.spec
  ============================================================
  $ cvs diff -u -r1.38 -r1.39 cvs.spec
  --- openpkg-src/cvs/cvs.spec  2 Oct 2002 13:48:02 -0000       1.38
  +++ openpkg-src/cvs/cvs.spec  11 Dec 2002 11:09:16 -0000      1.39
  @@ -45,7 +45,7 @@
   Group:        SCM
   License:      GPL
   Version:      %{V_cvs}
  -Release:      20021002
  +Release:      20021211
   
   #   list of sources
   Source0:      http://www.cvshome.org/files/19/10/cvs-%{V_cvs}.tar.gz
  @@ -94,8 +94,10 @@
   
   %prep
       %setup0 -q -c
  -    %patch0 -p0
       %setup1 -q -T -D -a 1
  +    ( cd cvs-%{V_cvs}
  +      %patch0 -p0
  +    )
   %if "%{with_rse_patches}" == "yes"
       ( cd cvs-%{V_cvs}
         cat %{SOURCE cvs.patches.rse} |\
  Index: openpkg-web/news.txt
  ============================================================
  $ cvs diff -u -r1.2242 -r1.2243 news.txt
  --- openpkg-web/news.txt      11 Dec 2002 10:50:17 -0000      1.2242
  +++ openpkg-web/news.txt      11 Dec 2002 11:09:15 -0000      1.2243
  @@ -1,3 +1,4 @@
  +11-Dec-2002: Upgraded package: P<cvs-1.11.2-20021211>
   11-Dec-2002: Upgraded package: P<sendmail-8.12.6-20021211>
   10-Dec-2002: Upgraded package: P<sendmail-8.12.6-20021210>
   10-Dec-2002: Upgraded package: P<easysoap-0.6.1-20021210>
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to