[kde-freebsd] ports/116767: x11/kdelibs3 - kde3 fails to build

Scot Hetzel swhetzel at gmail.com
Wed Oct 3 07:30:09 CEST 2007


The following reply was made to PR ports/116767; it has been noted by GNATS.

From: Scot Hetzel <swhetzel at gmail.com>
To: bug-followup at freebsd.org
Cc:  
Subject: Re: ports/116767: x11/kdelibs3 - kde3 fails to build
Date: Wed, 3 Oct 2007 00:13:16 -0500

 --Boundary-00=_tTyAHs9qWLGFusu
 Content-Type: text/plain;
   charset="us-ascii"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline
 
 GMail corrupts the sending of patches, try sending thru Kmail+Postfix
 
 Scot
 
 This electronic mail transmission is intended for the sole use of the named individual or entity to which it is directed and may contain information that is confidential or privileged. If you have received this transmission in error, please delete it from your system without copying or forwarding it, and notify the sender by reply email so that the sender's address records can be corrected.
 
 --Boundary-00=_tTyAHs9qWLGFusu
 Content-Type: text/x-csrc;
   charset="us-ascii";
   name="patch-kdeprint_cups_cupsdconf2_cups-util.c"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename="patch-kdeprint_cups_cupsdconf2_cups-util.c"
 
 --- kdeprint/cups/cupsdconf2/cups-util.c-orig	2007-10-02 21:36:37.442645546 -0500
 +++ kdeprint/cups/cupsdconf2/cups-util.c	2007-10-02 21:42:08.991708625 -0500
 @@ -6,489 +6,118 @@
  #include <sys/stat.h>
  #include <unistd.h>
  
 -#define CUPS_SERVERROOT	"/etc/cups"
 -static http_t		*cups_server;
  static ipp_status_t	last_error;
 -static char		authstring[HTTP_MAX_VALUE];
 -static char		pwdstring[33];
 -static int cups_local_auth(http_t *http);
  
 -const char *				/* O - Filename for PPD file */
 +const char* cupsGetConf(void);
 +int cupsPutConf(const char*);
 +
 +const char *    /* O - Filename for PPD file */
  cupsGetConf(void)
  {
 -  int		fd;			/* PPD file */
 -  int		bytes;			/* Number of bytes read */
 -  char		buffer[8192];		/* Buffer for file */
 -  char		resource[HTTP_MAX_URI];	/* Resource name */
 -  const char	*password;		/* Password string */
 -  char		realm[HTTP_MAX_VALUE],	/* realm="xyz" string */
 -		nonce[HTTP_MAX_VALUE],	/* nonce="xyz" string */
 -		plain[255],		/* Plaintext username:password */
 -		encode[512];		/* Encoded username:password */
 -  http_status_t	status;			/* HTTP status from server */
 -  char		prompt[1024];		/* Prompt string */
 -  int		digest_tries;		/* Number of tries with Digest */
 -  static char	filename[HTTP_MAX_URI];	/* Local filename */
 -
 - /*
 -  * Connect to the correct server as needed...
 -  */
 -
 -    if ((cups_server = httpConnectEncrypt(cupsServer(), ippPort(),
 -                                          cupsEncryption())) == NULL)
 -    {
 -      last_error = IPP_SERVICE_UNAVAILABLE;
 -      return (NULL);
 -    }
 -
 - /*
 -  * Get a temp file...
 -  */
 -
 -  if ((fd = cupsTempFd(filename, sizeof(filename))) < 0)
 -  {
 -   /*
 -    * Can't open file; close the server connection and return NULL...
 -    */
 -
 -    httpFlush(cups_server);
 -    httpClose(cups_server);
 -    cups_server = NULL;
 -    return (NULL);
 -  }
 -
 - /*
 -  * And send a request to the HTTP server...
 -  */
 -
 -  snprintf(resource, sizeof(resource), "/admin/conf/cupsd.conf");
 -
 -  digest_tries = 0;
 -
 -  do
 -  {
 -    httpClearFields(cups_server);
 -    httpSetField(cups_server, HTTP_FIELD_HOST, cupsServer());
 -    httpSetField(cups_server, HTTP_FIELD_AUTHORIZATION, authstring);
 -
 -    if (httpGet(cups_server, resource))
 -    {
 -      if (httpReconnect(cups_server))
 -      {
 -        status = HTTP_ERROR;
 -	break;
 -      }
 -      else
 -      {
 -        status = HTTP_UNAUTHORIZED;
 -        continue;
 -      }
 -    }
 -
 -    while ((status = httpUpdate(cups_server)) == HTTP_CONTINUE);
 -
 -    if (status == HTTP_UNAUTHORIZED)
 -    {
 -      fprintf(stderr,"cupsGetConf: unauthorized...\n");
 -
 -     /*
 -      * Flush any error message...
 -      */
 -
 -      httpFlush(cups_server);
 -
 -     /*
 -      * See if we can do local authentication...
 -      */
 -
 -      if (cups_local_auth(cups_server))
 -        continue;
 -
 -     /*
 -      * See if we should retry the current digest password...
 -      */
 -
 -      if (strncmp(cups_server->fields[HTTP_FIELD_WWW_AUTHENTICATE], "Basic", 5) == 0 ||
 -          digest_tries > 1 || !pwdstring[0])
 -      {
 -       /*
 -	* Nope - get a password from the user...
 -	*/
 -
 -	snprintf(prompt, sizeof(prompt), "Password for %s on %s? ", cupsUser(),
 -        	 cups_server->hostname);
 -
 -        if ((password = cupsGetPassword(prompt)) == NULL)
 -	  break;
 -	if (!password[0])
 -	  break;
 -
 -        strncpy(pwdstring, password, sizeof(pwdstring) - 1);
 -	pwdstring[sizeof(pwdstring) - 1] = '\0';
 -
 -        digest_tries = 0;
 -      }
 -      else
 -        digest_tries ++;
 -
 -     /*
 -      * Got a password; encode it for the server...
 -      */
 -
 -      if (strncmp(cups_server->fields[HTTP_FIELD_WWW_AUTHENTICATE], "Basic", 5) == 0)
 -      {
 -       /*
 -	* Basic authentication...
 -	*/
 -
 -	snprintf(plain, sizeof(plain), "%s:%s", cupsUser(), pwdstring);
 -#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
 -       httpEncode64_2(encode, sizeof(encode), plain, sizeof(plain));
 -#else
 -       httpEncode64(encode, plain);
 -#endif
 -	snprintf(authstring, sizeof(authstring), "Basic %s", encode);
 -      }
 -      else
 -      {
 -       /*
 -	* Digest authentication...
 -	*/
 -
 -        httpGetSubField(cups_server, HTTP_FIELD_WWW_AUTHENTICATE, "realm", realm);
 -        httpGetSubField(cups_server, HTTP_FIELD_WWW_AUTHENTICATE, "nonce", nonce);
 -
 -	httpMD5(cupsUser(), realm, pwdstring, encode);
 -	httpMD5Final(nonce, "GET", resource, encode);
 -	snprintf(authstring, sizeof(authstring),
 -	         "Digest username=\"%s\", realm=\"%s\", nonce=\"%s\", "
 -	         "response=\"%s\"", cupsUser(), realm, nonce, encode);
 -      }
 -
 -      continue;
 -    }
 -#ifdef HAVE_LIBSSL
 -    else if (status == HTTP_UPGRADE_REQUIRED)
 -    {
 -     /*
 -      * Flush any error message...
 -      */
 -
 -      httpFlush(cups_server);
 -
 -     /*
 -      * Upgrade with encryption...
 -      */
 -
 -      httpEncryption(cups_server, HTTP_ENCRYPT_REQUIRED);
 -
 -     /*
 -      * Try again, this time with encryption enabled...
 -      */
 -
 -      continue;
 -    }
 -#endif /* HAVE_LIBSSL */
 -  }
 -  while (status == HTTP_UNAUTHORIZED || status == HTTP_UPGRADE_REQUIRED);
 -
 - /*
 -  * See if we actually got the file or an error...
 -  */
 +    int  fd;   /* PPD file */
 +    http_status_t status;   /* HTTP status from server */
 +    http_t *cups_server;
 +    static char filename[HTTP_MAX_URI]; /* Local filename */
 +    char          fqdn[ HTTP_MAX_URI ];   /* Server name buffer */
 +
 +
 +    /*
 +     * Connect to the correct server as needed...
 +     */
 +
 +    cups_server = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption());
 +    if (cups_server == NULL) {
 +        last_error = IPP_SERVICE_UNAVAILABLE;
 +        return (NULL);
 +    }
 +
 +    /*
 +     * Get a temp file...
 +     */
 +
 +    fd = cupsTempFd(filename, sizeof(filename));
 +    if (fd < 0) {
 +        /*
 +         * Can't open file; close the server connection and return NULL...
 +         */
 +
 +        httpFlush(cups_server);
 +        httpClose(cups_server);
 +        cups_server = NULL;
 +        return (NULL);
 +    }
 +
 +    /*
 +     * And send a request to the HTTP server...
 +     */
 +    status = cupsGetFd(cups_server, "/admin/conf/cupsd.conf", fd);
  
 -  if (status != HTTP_OK)
 -  {
      close(fd);
 -    unlink(filename);
      httpFlush(cups_server);
      httpClose(cups_server);
      cups_server = NULL;
 -    return (NULL);
 -  }
 -
 - /*
 -  * OK, we need to copy the file...
 -  */
  
 -  while ((bytes = httpRead(cups_server, buffer, sizeof(buffer))) > 0)
 -  {
 -    write(fd, buffer, bytes);
 -  }
 -
 -  close(fd);
 -
 -  return (filename);
 +    if (status != HTTP_OK) {
 +        unlink(filename);
 +        return (NULL);
 +    } else {
 +        return (filename);
 +    }
  }
  
 -int					/* O - Status of operation */
 -cupsPutConf(const char *name)		/* I - Name of the config file to send */
 +int     /* O - Status of operation */
 +cupsPutConf(const char *name)  /* I - Name of the config file to send */
  {
 -  int		fd;			/* PPD file */
 -  int		bytes;			/* Number of bytes read */
 -  char		buffer[8192];		/* Buffer for file */
 -  char		resource[HTTP_MAX_URI];	/* Resource name */
 -  const char	*password;		/* Password string */
 -  char		realm[HTTP_MAX_VALUE],	/* realm="xyz" string */
 -		nonce[HTTP_MAX_VALUE],	/* nonce="xyz" string */
 -		plain[255],		/* Plaintext username:password */
 -		encode[512];		/* Encoded username:password */
 -  http_status_t	status;			/* HTTP status from server */
 -  char		prompt[1024];		/* Prompt string */
 -  int		digest_tries;		/* Number of tries with Digest */
 -
 -  if (name == NULL)
 -    return 0;
 -
 - /*
 -  * Connect to the correct server as needed...
 -  */
 -
 -    if ((cups_server = httpConnectEncrypt(cupsServer(), ippPort(),
 -                                          cupsEncryption())) == NULL)
 -    {
 -      last_error = IPP_SERVICE_UNAVAILABLE;
 -      return 0;
 -    }
 +    int  fd;   /* PPD file */
 +    http_status_t status;   /* HTTP status from server */
 +    http_t *cups_server;
  
 - /*
 -  * Open the local config file...
 -  */
 -
 -  if ((fd = open(name, O_RDONLY)) < 0)
 -  {
 -   /*
 -    * Can't open file; close the server connection and return NULL...
 -    */
 +    if (name == NULL)
 +        return 0;
  
 -    httpFlush(cups_server);
 -    httpClose(cups_server);
 -    cups_server = NULL;
 -    return 0;
 -  }
 +    /*
 +     * Connect to the correct server as needed...
 +     */
  
 - /*
 -  * And send a request to the HTTP server...
 -  */
 -
 -  strncpy(resource, "/admin/conf/cupsd.conf", sizeof(resource));
 -
 -  digest_tries = 0;
 -
 -  do
 -  {
 -    httpClearFields(cups_server);
 -    httpSetField(cups_server, HTTP_FIELD_HOST, cupsServer());
 -    httpSetField(cups_server, HTTP_FIELD_AUTHORIZATION, authstring);
 -    httpSetField(cups_server, HTTP_FIELD_TRANSFER_ENCODING, "chunked");
 -
 -    if (httpPut(cups_server, resource))
 -    {
 -      if (httpReconnect(cups_server))
 -      {
 -        status = HTTP_ERROR;
 -	break;
 -      }
 -      else
 -      {
 -        status = HTTP_UNAUTHORIZED;
 -        continue;
 -      }
 +    cups_server = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption());
 +    if (cups_server == NULL) {
 +        last_error = IPP_SERVICE_UNAVAILABLE;
 +        return 0;
      }
  
 -    /* send the file now */
 -    lseek(fd, 0, SEEK_SET);
 -    status = HTTP_CONTINUE;
 -    while ((bytes = read(fd, buffer, sizeof(buffer))) > 0)
 -        if (httpCheck(cups_server))
 -	{
 -	    if ((status = httpUpdate(cups_server)) != HTTP_CONTINUE)
 -	        break;
 -	}
 -	else
 -	    httpWrite(cups_server, buffer, bytes);
 -
 -    if (status == HTTP_CONTINUE)
 -    {
 -        httpWrite(cups_server, buffer, 0);
 -	while ((status = httpUpdate(cups_server)) == HTTP_CONTINUE);
 -    }
 +    /*
 +     * Open the local config file...
 +     */
  
 -    if (status == HTTP_UNAUTHORIZED)
 -    {
 -      fprintf(stderr,"cupsPutConf: unauthorized...");
 -
 -     /*
 -      * Flush any error message...
 -      */
 -
 -      httpFlush(cups_server);
 -
 -     /*
 -      * See if we can do local authentication...
 -      */
 -
 -      if (cups_local_auth(cups_server))
 -        continue;
 -
 -     /*
 -      * See if we should retry the current digest password...
 -      */
 -
 -      if (strncmp(cups_server->fields[HTTP_FIELD_WWW_AUTHENTICATE], "Basic", 5) == 0 ||
 -          digest_tries > 1 || !pwdstring[0])
 -      {
 -       /*
 -	* Nope - get a password from the user...
 -	*/
 -
 -	snprintf(prompt, sizeof(prompt), "Password for %s on %s? ", cupsUser(),
 -        	 cups_server->hostname);
 -
 -        if ((password = cupsGetPassword(prompt)) == NULL)
 -	  break;
 -	if (!password[0])
 -	  break;
 -
 -        strncpy(pwdstring, password, sizeof(pwdstring) - 1);
 -	pwdstring[sizeof(pwdstring) - 1] = '\0';
 -
 -        digest_tries = 0;
 -      }
 -      else
 -        digest_tries ++;
 -
 -     /*
 -      * Got a password; encode it for the server...
 -      */
 -
 -      if (strncmp(cups_server->fields[HTTP_FIELD_WWW_AUTHENTICATE], "Basic", 5) == 0)
 -      {
 -       /*
 -	* Basic authentication...
 -	*/
 -
 -	snprintf(plain, sizeof(plain), "%s:%s", cupsUser(), pwdstring);
 -#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
 -       httpEncode64_2(encode, sizeof(encode), plain, sizeof(plain));
 -#else
 -       httpEncode64(encode, plain);
 -#endif
 -	snprintf(authstring, sizeof(authstring), "Basic %s", encode);
 -      }
 -      else
 -      {
 -       /*
 -	* Digest authentication...
 -	*/
 -
 -        httpGetSubField(cups_server, HTTP_FIELD_WWW_AUTHENTICATE, "realm", realm);
 -        httpGetSubField(cups_server, HTTP_FIELD_WWW_AUTHENTICATE, "nonce", nonce);
 -
 -	httpMD5(cupsUser(), realm, pwdstring, encode);
 -	httpMD5Final(nonce, "GET", resource, encode);
 -	snprintf(authstring, sizeof(authstring),
 -	         "Digest username=\"%s\", realm=\"%s\", nonce=\"%s\", "
 -	         "response=\"%s\"", cupsUser(), realm, nonce, encode);
 -      }
 +    fd = open(name, O_RDONLY);
 +    if (fd < 0) {
 +        /*
 +         * Can't open file; close the server connection and return NULL...
 +         */
  
 -      continue;
 +        httpFlush(cups_server);
 +        httpClose(cups_server);
 +        cups_server = NULL;
 +        return 0;
      }
 -#ifdef HAVE_LIBSSL
 -    else if (status == HTTP_UPGRADE_REQUIRED)
 -    {
 -     /*
 -      * Flush any error message...
 -      */
 -
 -      httpFlush(cups_server);
 -
 -     /*
 -      * Upgrade with encryption...
 -      */
 -
 -      httpEncryption(cups_server, HTTP_ENCRYPT_REQUIRED);
 -
 -     /*
 -      * Try again, this time with encryption enabled...
 -      */
  
 -      continue;
 -    }
 -#endif /* HAVE_LIBSSL */
 -  }
 -  while (status == HTTP_UNAUTHORIZED || status == HTTP_UPGRADE_REQUIRED);
 -
 - /*
 -  * See if we actually got the file or an error...
 -  */
 +    /*
 +     * And send a request to the HTTP server...
 +     */
 +
 +    status = cupsPutFd(cups_server, "/admin/conf/cupsd.conf", fd);
  
 -  if (status != HTTP_CREATED)
 -  {
      httpFlush(cups_server);
      httpClose(cups_server);
      cups_server = NULL;
      close(fd);
 -    return 0;
 -  }
 -
 -  close(fd);
 -
 -  return 1;
 -}
 -
 -static int			/* O - 1 if available, 0 if not */
 -cups_local_auth(http_t *http)	/* I - Connection */
 -{
 -  int		pid;		/* Current process ID */
 -  FILE		*fp;		/* Certificate file */
 -  char		filename[1024],	/* Certificate filename */
 -		certificate[33];/* Certificate string */
 -  const char	*root;		/* Server root directory */
 -
 -
 - /*
 -  * See if we are accessing localhost...
 -	the struct has changed in newer versions - PiggZ (adam at piggz.co.uk)
 -  */
 -#if CUPS_VERSION_MAJOR == 1 && CUPS_VERSION_MINOR >= 2
 -        if (!httpAddrLocalhost(http))
 -#else
 -	if (ntohl(*(int*)&http->hostaddr.sin_addr) != 0x7f000001 &&
 -      strcasecmp(http->hostname, "localhost") != 0)
 -#endif
 -   return (0);
 -
 - /*
 -  * Try opening a certificate file for this PID.  If that fails,
 -  * try the root certificate...
 -  */
 -
 -  if ((root = getenv("CUPS_SERVERROOT")) == NULL)
 -    root = CUPS_SERVERROOT;
 -
 -  pid = getpid();
 -  snprintf(filename, sizeof(filename), "%s/certs/%d", root, pid);
 -  if ((fp = fopen(filename, "r")) == NULL && pid > 0)
 -  {
 -    snprintf(filename, sizeof(filename), "%s/certs/0", root);
 -    fp = fopen(filename, "r");
 -  }
 -
 -  if (fp == NULL)
 -    return (0);
 -
 - /*
 -  * Read the certificate from the file...
 -  */
 -
 -  fgets(certificate, sizeof(certificate), fp);
 -  fclose(fp);
 -
 - /*
 -  * Set the authorization string and return...
 -  */
 -
 -  snprintf(authstring, sizeof(authstring), "Local %s", certificate);
  
 -  return (1);
 +    /*
 +     * See if we actually got the file or an error...
 +     */
 +
 +    if (status != HTTP_CREATED)
 +        return 0;
 +    else
 +        return 1;
  }
 
 --Boundary-00=_tTyAHs9qWLGFusu
 Content-Type: text/x-c++src;
   charset="us-ascii";
   name="patch-kdeprint_cups_ipprequest.cpp"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename="patch-kdeprint_cups_ipprequest.cpp"
 
 --- kdeprint/cups/ipprequest.cpp-orig	2007-01-15 05:34:19.000000000 -0600
 +++ kdeprint/cups/ipprequest.cpp	2007-10-02 22:21:52.359893129 -0500
 @@ -310,7 +310,7 @@
  	}
  
  #ifdef HAVE_CUPS_NO_PWD_CACHE
 -	strncpy( HTTP->authstring, cups_authstring.data(), HTTP_MAX_VALUE );
 +	httpSetAuthString( HTTP, NULL, cups_authstring.data() );
  #endif
  
  	if (dump_ > 0)
 @@ -320,7 +320,7 @@
  
  	request_ = cupsDoFileRequest(HTTP, request_, (res.isEmpty() ? "/" : res.latin1()), (filename.isEmpty() ? NULL : filename.latin1()));
  #ifdef HAVE_CUPS_NO_PWD_CACHE
 -	cups_authstring = HTTP->authstring;
 +	cups_authstring = httpGetAuthString( HTTP );
  #endif
  	httpClose(HTTP);
  
 
 --Boundary-00=_tTyAHs9qWLGFusu--


More information about the kde-freebsd mailing list