build: require cups >= 1.2

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=672182
This commit is contained in:
Javier Jardón 2012-03-16 12:54:40 +00:00
parent 86b55b4bb1
commit 80d54b4533
4 changed files with 2 additions and 69 deletions

View File

@ -1388,9 +1388,8 @@ else
CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $2}'` CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $2}'`
if test $CUPS_API_MAJOR -gt 1 -o \ if test $CUPS_API_MAJOR -gt 1 -o \
$CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 2; then $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -lt 2; then
AC_DEFINE(HAVE_CUPS_API_1_2, 1, AC_MSG_ERROR([CUPS >= 1.2 not found])
[Define to 1 if CUPS 1.2 API is available])
fi fi
AC_SUBST(CUPS_API_MAJOR) AC_SUBST(CUPS_API_MAJOR)

View File

@ -834,11 +834,7 @@ _post_write_data (GtkCupsRequest *request)
} }
#if HAVE_CUPS_API_1_2
if (httpWrite2 (request->http, buffer, bytes) < bytes) if (httpWrite2 (request->http, buffer, bytes) < bytes)
#else
if (httpWrite (request->http, buffer, (int) bytes) < bytes)
#endif /* HAVE_CUPS_API_1_2 */
{ {
int http_errno; int http_errno;
@ -1412,11 +1408,7 @@ _get_read_data (GtkCupsRequest *request)
request->poll_state = GTK_CUPS_HTTP_READ; request->poll_state = GTK_CUPS_HTTP_READ;
#if HAVE_CUPS_API_1_2
bytes = httpRead2 (request->http, buffer, sizeof (buffer)); bytes = httpRead2 (request->http, buffer, sizeof (buffer));
#else
bytes = httpRead (request->http, buffer, sizeof (buffer));
#endif /* HAVE_CUPS_API_1_2 */
request->bytes_received += bytes; request->bytes_received += bytes;
GTK_NOTE (PRINTING, GTK_NOTE (PRINTING,
@ -1443,11 +1435,7 @@ _get_read_data (GtkCupsRequest *request)
} }
/* Stop if we do not expect any more data or EOF was received. */ /* Stop if we do not expect any more data or EOF was received. */
#if HAVE_CUPS_API_1_2
if (httpGetLength2 (request->http) <= request->bytes_received || bytes == 0) if (httpGetLength2 (request->http) <= request->bytes_received || bytes == 0)
#else
if (httpGetLength (request->http) <= request->bytes_received || bytes == 0)
#endif /* HAVE_CUPS_API_1_2 */
{ {
request->state = GTK_CUPS_GET_DONE; request->state = GTK_CUPS_GET_DONE;
request->poll_state = GTK_CUPS_HTTP_IDLE; request->poll_state = GTK_CUPS_HTTP_IDLE;
@ -1505,7 +1493,6 @@ GtkCupsConnectionTest *
gtk_cups_connection_test_new (const char *server) gtk_cups_connection_test_new (const char *server)
{ {
GtkCupsConnectionTest *result = NULL; GtkCupsConnectionTest *result = NULL;
#ifdef HAVE_CUPS_API_1_2
gchar *port_str = NULL; gchar *port_str = NULL;
result = g_new (GtkCupsConnectionTest, 1); result = g_new (GtkCupsConnectionTest, 1);
@ -1525,9 +1512,6 @@ gtk_cups_connection_test_new (const char *server)
result->at_init = GTK_CUPS_CONNECTION_NOT_AVAILABLE; result->at_init = GTK_CUPS_CONNECTION_NOT_AVAILABLE;
result->at_init = gtk_cups_connection_test_get_state (result); result->at_init = gtk_cups_connection_test_get_state (result);
#else
result = g_new (GtkCupsConnectionTest, 1);
#endif
return result; return result;
} }
@ -1541,7 +1525,6 @@ gtk_cups_connection_test_new (const char *server)
GtkCupsConnectionState GtkCupsConnectionState
gtk_cups_connection_test_get_state (GtkCupsConnectionTest *test) gtk_cups_connection_test_get_state (GtkCupsConnectionTest *test)
{ {
#ifdef HAVE_CUPS_API_1_2
GtkCupsConnectionState result = GTK_CUPS_CONNECTION_NOT_AVAILABLE; GtkCupsConnectionState result = GTK_CUPS_CONNECTION_NOT_AVAILABLE;
http_addrlist_t *iter; http_addrlist_t *iter;
gint error_code; gint error_code;
@ -1622,9 +1605,6 @@ gtk_cups_connection_test_get_state (GtkCupsConnectionTest *test)
return result; return result;
} }
#else
return GTK_CUPS_CONNECTION_AVAILABLE;
#endif
} }
/* This function frees memory used by the GtkCupsConnectionTest structure. /* This function frees memory used by the GtkCupsConnectionTest structure.
@ -1635,7 +1615,6 @@ gtk_cups_connection_test_free (GtkCupsConnectionTest *test)
if (test == NULL) if (test == NULL)
return; return;
#ifdef HAVE_CUPS_API_1_2
test->current_addr = NULL; test->current_addr = NULL;
test->last_wrong_addr = NULL; test->last_wrong_addr = NULL;
httpAddrFreeList (test->addrlist); httpAddrFreeList (test->addrlist);
@ -1644,6 +1623,5 @@ gtk_cups_connection_test_free (GtkCupsConnectionTest *test)
close (test->socket); close (test->socket);
test->socket = -1; test->socket = -1;
} }
#endif
g_free (test); g_free (test);
} }

View File

@ -106,13 +106,11 @@ struct _GtkCupsRequest
struct _GtkCupsConnectionTest struct _GtkCupsConnectionTest
{ {
#ifdef HAVE_CUPS_API_1_2
GtkCupsConnectionState at_init; GtkCupsConnectionState at_init;
http_addrlist_t *addrlist; http_addrlist_t *addrlist;
http_addrlist_t *current_addr; http_addrlist_t *current_addr;
http_addrlist_t *last_wrong_addr; http_addrlist_t *last_wrong_addr;
gint socket; gint socket;
#endif
}; };
#define GTK_CUPS_REQUEST_START 0 #define GTK_CUPS_REQUEST_START 0

View File

@ -733,40 +733,6 @@ is_address_local (const gchar *address)
return FALSE; return FALSE;
} }
#ifndef HAVE_CUPS_API_1_2
/* Included from CUPS library because of backward compatibility */
const char *
httpGetHostname(http_t *http,
char *s,
int slen)
{
struct hostent *host;
if (!s || slen <= 1)
return (NULL);
if (http)
{
if (http->hostname[0] == '/')
g_strlcpy (s, "localhost", slen);
else
g_strlcpy (s, http->hostname, slen);
}
else
{
if (gethostname (s, slen) < 0)
g_strlcpy (s, "localhost", slen);
if (!strchr (s, '.'))
{
if ((host = gethostbyname (s)) != NULL && host->h_name)
g_strlcpy (s, host->h_name, slen);
}
}
return (s);
}
#endif
static void static void
gtk_print_backend_cups_set_password (GtkPrintBackend *backend, gtk_print_backend_cups_set_password (GtkPrintBackend *backend,
gchar **auth_info_required, gchar **auth_info_required,
@ -1002,11 +968,7 @@ cups_dispatch_add_poll (GSource *source)
else else
dispatch->data_poll->events = 0; dispatch->data_poll->events = 0;
#ifdef HAVE_CUPS_API_1_2
dispatch->data_poll->fd = httpGetFd (dispatch->request->http); dispatch->data_poll->fd = httpGetFd (dispatch->request->http);
#else
dispatch->data_poll->fd = dispatch->request->http->fd;
#endif
g_source_add_poll (source, dispatch->data_poll); g_source_add_poll (source, dispatch->data_poll);
} }
} }
@ -3300,9 +3262,7 @@ create_pickone_option (ppd_file_t *ppd_file,
char *label; char *label;
int n_choices; int n_choices;
int i; int i;
#ifdef HAVE_CUPS_API_1_2
ppd_coption_t *coption; ppd_coption_t *coption;
#endif
g_assert (ppd_option->ui == PPD_UI_PICKONE); g_assert (ppd_option->ui == PPD_UI_PICKONE);
@ -3318,7 +3278,6 @@ create_pickone_option (ppd_file_t *ppd_file,
label = get_option_text (ppd_file, ppd_option); label = get_option_text (ppd_file, ppd_option);
#ifdef HAVE_CUPS_API_1_2
coption = ppdFindCustomOption (ppd_file, ppd_option->keyword); coption = ppdFindCustomOption (ppd_file, ppd_option->keyword);
if (coption) if (coption)
@ -3371,7 +3330,6 @@ create_pickone_option (ppd_file_t *ppd_file,
g_warning ("CUPS Backend: Multi-parameter PPD Custom Option not supported"); g_warning ("CUPS Backend: Multi-parameter PPD Custom Option not supported");
#endif #endif
} }
#endif /* HAVE_CUPS_API_1_2 */
if (!option) if (!option)
option = gtk_printer_option_new (gtk_name, label, option = gtk_printer_option_new (gtk_name, label,