parent
9d9c751e0a
commit
5d63250da2
@ -0,0 +1,611 @@
|
||||
http://rt.openssl.org/Ticket/Display.html?id=2051&user=guest&pass=guest
|
||||
|
||||
--- openssl-1.0.2/apps/s_apps.h
|
||||
+++ openssl-1.0.2/apps/s_apps.h
|
||||
@@ -154,7 +154,7 @@
|
||||
int do_server(int port, int type, int *ret,
|
||||
int (*cb) (char *hostname, int s, int stype,
|
||||
unsigned char *context), unsigned char *context,
|
||||
- int naccept);
|
||||
+ int naccept, int use_ipv4, int use_ipv6);
|
||||
#ifdef HEADER_X509_H
|
||||
int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx);
|
||||
#endif
|
||||
@@ -167,7 +167,8 @@
|
||||
int ssl_print_curves(BIO *out, SSL *s, int noshared);
|
||||
#endif
|
||||
int ssl_print_tmp_key(BIO *out, SSL *s);
|
||||
-int init_client(int *sock, char *server, int port, int type);
|
||||
+int init_client(int *sock, char *server, int port, int type,
|
||||
+ int use_ipv4, int use_ipv6);
|
||||
int should_retry(int i);
|
||||
int extract_port(char *str, short *port_ptr);
|
||||
int extract_host_port(char *str, char **host_ptr, unsigned char *ip,
|
||||
--- openssl-1.0.2/apps/s_client.c
|
||||
+++ openssl-1.0.2/apps/s_client.c
|
||||
@@ -302,6 +302,10 @@
|
||||
{
|
||||
BIO_printf(bio_err, "usage: s_client args\n");
|
||||
BIO_printf(bio_err, "\n");
|
||||
+ BIO_printf(bio_err, " -4 - use IPv4 only\n");
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ BIO_printf(bio_err, " -6 - use IPv6 only\n");
|
||||
+#endif
|
||||
BIO_printf(bio_err, " -host host - use -connect instead\n");
|
||||
BIO_printf(bio_err, " -port port - use -connect instead\n");
|
||||
BIO_printf(bio_err,
|
||||
@@ -658,6 +662,7 @@
|
||||
int sbuf_len, sbuf_off;
|
||||
fd_set readfds, writefds;
|
||||
short port = PORT;
|
||||
+ int use_ipv4, use_ipv6;
|
||||
int full_log = 1;
|
||||
char *host = SSL_HOST_NAME;
|
||||
char *cert_file = NULL, *key_file = NULL, *chain_file = NULL;
|
||||
@@ -709,7 +714,11 @@
|
||||
#endif
|
||||
char *sess_in = NULL;
|
||||
char *sess_out = NULL;
|
||||
- struct sockaddr peer;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ struct sockaddr_storage peer;
|
||||
+#else
|
||||
+ struct sockaddr_in peer;
|
||||
+#endif
|
||||
int peerlen = sizeof(peer);
|
||||
int fallback_scsv = 0;
|
||||
int enable_timeouts = 0;
|
||||
@@ -737,6 +746,12 @@
|
||||
|
||||
meth = SSLv23_client_method();
|
||||
|
||||
+ use_ipv4 = 1;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ use_ipv6 = 1;
|
||||
+#else
|
||||
+ use_ipv6 = 0;
|
||||
+#endif
|
||||
apps_startup();
|
||||
c_Pause = 0;
|
||||
c_quiet = 0;
|
||||
@@ -1096,6 +1111,16 @@
|
||||
jpake_secret = *++argv;
|
||||
}
|
||||
#endif
|
||||
+ else if (strcmp(*argv,"-4") == 0) {
|
||||
+ use_ipv4 = 1;
|
||||
+ use_ipv6 = 0;
|
||||
+ }
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ else if (strcmp(*argv,"-6") == 0) {
|
||||
+ use_ipv4 = 0;
|
||||
+ use_ipv6 = 1;
|
||||
+ }
|
||||
+#endif
|
||||
#ifndef OPENSSL_NO_SRTP
|
||||
else if (strcmp(*argv, "-use_srtp") == 0) {
|
||||
if (--argc < 1)
|
||||
@@ -1421,7 +1446,7 @@
|
||||
|
||||
re_start:
|
||||
|
||||
- if (init_client(&s, host, port, socket_type) == 0) {
|
||||
+ if (init_client(&s, host, port, socket_type, use_ipv4, use_ipv6) == 0) {
|
||||
BIO_printf(bio_err, "connect:errno=%d\n", get_last_socket_error());
|
||||
SHUTDOWN(s);
|
||||
goto end;
|
||||
@@ -1444,7 +1469,7 @@
|
||||
if (socket_type == SOCK_DGRAM) {
|
||||
|
||||
sbio = BIO_new_dgram(s, BIO_NOCLOSE);
|
||||
- if (getsockname(s, &peer, (void *)&peerlen) < 0) {
|
||||
+ if (getsockname(s, (struct sockaddr *)&peer, (void *)&peerlen) < 0) {
|
||||
BIO_printf(bio_err, "getsockname:errno=%d\n",
|
||||
get_last_socket_error());
|
||||
SHUTDOWN(s);
|
||||
--- openssl-1.0.2/apps/s_server.c
|
||||
+++ openssl-1.0.2/apps/s_server.c
|
||||
@@ -643,6 +643,10 @@
|
||||
BIO_printf(bio_err,
|
||||
" -alpn arg - set the advertised protocols for the ALPN extension (comma-separated list)\n");
|
||||
#endif
|
||||
+ BIO_printf(bio_err, " -4 - use IPv4 only\n");
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ BIO_printf(bio_err, " -6 - use IPv6 only\n");
|
||||
+#endif
|
||||
BIO_printf(bio_err,
|
||||
" -keymatexport label - Export keying material using label\n");
|
||||
BIO_printf(bio_err,
|
||||
@@ -1070,6 +1074,7 @@
|
||||
int state = 0;
|
||||
const SSL_METHOD *meth = NULL;
|
||||
int socket_type = SOCK_STREAM;
|
||||
+ int use_ipv4, use_ipv6;
|
||||
ENGINE *e = NULL;
|
||||
char *inrand = NULL;
|
||||
int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM;
|
||||
@@ -1111,6 +1116,12 @@
|
||||
|
||||
meth = SSLv23_server_method();
|
||||
|
||||
+ use_ipv4 = 1;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ use_ipv6 = 1;
|
||||
+#else
|
||||
+ use_ipv6 = 0;
|
||||
+#endif
|
||||
local_argc = argc;
|
||||
local_argv = argv;
|
||||
|
||||
@@ -1503,6 +1514,16 @@
|
||||
jpake_secret = *(++argv);
|
||||
}
|
||||
#endif
|
||||
+ else if (strcmp(*argv,"-4") == 0) {
|
||||
+ use_ipv4 = 1;
|
||||
+ use_ipv6 = 0;
|
||||
+ }
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ else if (strcmp(*argv,"-6") == 0) {
|
||||
+ use_ipv4 = 0;
|
||||
+ use_ipv6 = 1;
|
||||
+ }
|
||||
+#endif
|
||||
#ifndef OPENSSL_NO_SRTP
|
||||
else if (strcmp(*argv, "-use_srtp") == 0) {
|
||||
if (--argc < 1)
|
||||
@@ -2023,13 +2044,13 @@
|
||||
(void)BIO_flush(bio_s_out);
|
||||
if (rev)
|
||||
do_server(port, socket_type, &accept_socket, rev_body, context,
|
||||
- naccept);
|
||||
+ naccept, use_ipv4, use_ipv6);
|
||||
else if (www)
|
||||
do_server(port, socket_type, &accept_socket, www_body, context,
|
||||
- naccept);
|
||||
+ naccept, use_ipv4, use_ipv6);
|
||||
else
|
||||
do_server(port, socket_type, &accept_socket, sv_body, context,
|
||||
- naccept);
|
||||
+ naccept, use_ipv4, use_ipv6);
|
||||
print_stats(bio_s_out, ctx);
|
||||
ret = 0;
|
||||
end:
|
||||
--- openssl-1.0.2/apps/s_socket.c
|
||||
+++ openssl-1.0.2/apps/s_socket.c
|
||||
@@ -101,16 +101,16 @@
|
||||
# include "netdb.h"
|
||||
# endif
|
||||
|
||||
-static struct hostent *GetHostByName(char *name);
|
||||
+static struct hostent *GetHostByName(char *name, int domain);
|
||||
# if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
|
||||
static void ssl_sock_cleanup(void);
|
||||
# endif
|
||||
static int ssl_sock_init(void);
|
||||
-static int init_client_ip(int *sock, unsigned char ip[4], int port, int type);
|
||||
-static int init_server(int *sock, int port, int type);
|
||||
-static int init_server_long(int *sock, int port, char *ip, int type);
|
||||
+static int init_client_ip(int *sock, unsigned char *ip, int port, int type, int domain);
|
||||
+static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6);
|
||||
+static int init_server_long(int *sock, int port, char *ip, int type, int use_ipv4, int use_ipv6);
|
||||
static int do_accept(int acc_sock, int *sock, char **host);
|
||||
-static int host_ip(char *str, unsigned char ip[4]);
|
||||
+static int host_ip(char *str, unsigned char *ip, int domain);
|
||||
|
||||
# ifdef OPENSSL_SYS_WIN16
|
||||
# define SOCKET_PROTOCOL 0 /* more microsoft stupidity */
|
||||
@@ -231,38 +231,68 @@
|
||||
return (1);
|
||||
}
|
||||
|
||||
-int init_client(int *sock, char *host, int port, int type)
|
||||
+int init_client(int *sock, char *host, int port, int type, int use_ipv4, int use_ipv6)
|
||||
{
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ unsigned char ip[16];
|
||||
+# else
|
||||
unsigned char ip[4];
|
||||
+# endif
|
||||
|
||||
- memset(ip, '\0', sizeof ip);
|
||||
- if (!host_ip(host, &(ip[0])))
|
||||
- return 0;
|
||||
- return init_client_ip(sock, ip, port, type);
|
||||
-}
|
||||
-
|
||||
-static int init_client_ip(int *sock, unsigned char ip[4], int port, int type)
|
||||
-{
|
||||
- unsigned long addr;
|
||||
+ if (use_ipv4)
|
||||
+ if (host_ip(host, ip, AF_INET))
|
||||
+ return(init_client_ip(sock, ip, port, type, AF_INET));
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ if (use_ipv6)
|
||||
+ if (host_ip(host, ip, AF_INET6))
|
||||
+ return(init_client_ip(sock, ip, port, type, AF_INET6));
|
||||
+# endif
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int init_client_ip(int *sock, unsigned char ip[4], int port, int type, int domain)
|
||||
+{
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ struct sockaddr_storage them;
|
||||
+ struct sockaddr_in *them_in = (struct sockaddr_in *)&them;
|
||||
+ struct sockaddr_in6 *them_in6 = (struct sockaddr_in6 *)&them;
|
||||
+# else
|
||||
struct sockaddr_in them;
|
||||
+ struct sockaddr_in *them_in = &them;
|
||||
+# endif
|
||||
+ socklen_t addr_len;
|
||||
int s, i;
|
||||
|
||||
if (!ssl_sock_init())
|
||||
return (0);
|
||||
|
||||
memset((char *)&them, 0, sizeof(them));
|
||||
- them.sin_family = AF_INET;
|
||||
- them.sin_port = htons((unsigned short)port);
|
||||
- addr = (unsigned long)
|
||||
- ((unsigned long)ip[0] << 24L) |
|
||||
- ((unsigned long)ip[1] << 16L) |
|
||||
- ((unsigned long)ip[2] << 8L) | ((unsigned long)ip[3]);
|
||||
- them.sin_addr.s_addr = htonl(addr);
|
||||
+ if (domain == AF_INET) {
|
||||
+ addr_len = (socklen_t)sizeof(struct sockaddr_in);
|
||||
+ them_in->sin_family=AF_INET;
|
||||
+ them_in->sin_port=htons((unsigned short)port);
|
||||
+# ifndef BIT_FIELD_LIMITS
|
||||
+ memcpy(&them_in->sin_addr.s_addr, ip, 4);
|
||||
+# else
|
||||
+ memcpy(&them_in->sin_addr, ip, 4);
|
||||
+# endif
|
||||
+ }
|
||||
+ else
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ {
|
||||
+ addr_len = (socklen_t)sizeof(struct sockaddr_in6);
|
||||
+ them_in6->sin6_family=AF_INET6;
|
||||
+ them_in6->sin6_port=htons((unsigned short)port);
|
||||
+ memcpy(&(them_in6->sin6_addr), ip, sizeof(struct in6_addr));
|
||||
+ }
|
||||
+# else
|
||||
+ return(0);
|
||||
+# endif
|
||||
|
||||
if (type == SOCK_STREAM)
|
||||
- s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL);
|
||||
+ s = socket(domain, SOCK_STREAM, SOCKET_PROTOCOL);
|
||||
else /* ( type == SOCK_DGRAM) */
|
||||
- s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
|
||||
+ s = socket(domain, SOCK_DGRAM, IPPROTO_UDP);
|
||||
|
||||
if (s == INVALID_SOCKET) {
|
||||
perror("socket");
|
||||
@@ -280,7 +310,7 @@
|
||||
}
|
||||
# endif
|
||||
|
||||
- if (connect(s, (struct sockaddr *)&them, sizeof(them)) == -1) {
|
||||
+ if (connect(s, (struct sockaddr *)&them, addr_len) == -1) {
|
||||
closesocket(s);
|
||||
perror("connect");
|
||||
return (0);
|
||||
@@ -292,14 +322,14 @@
|
||||
int do_server(int port, int type, int *ret,
|
||||
int (*cb) (char *hostname, int s, int stype,
|
||||
unsigned char *context), unsigned char *context,
|
||||
- int naccept)
|
||||
+ int naccept, int use_ipv4, int use_ipv6)
|
||||
{
|
||||
int sock;
|
||||
char *name = NULL;
|
||||
int accept_socket = 0;
|
||||
int i;
|
||||
|
||||
- if (!init_server(&accept_socket, port, type))
|
||||
+ if (!init_server(&accept_socket, port, type, use_ipv4, use_ipv6))
|
||||
return (0);
|
||||
|
||||
if (ret != NULL) {
|
||||
@@ -328,32 +358,41 @@
|
||||
}
|
||||
}
|
||||
|
||||
-static int init_server_long(int *sock, int port, char *ip, int type)
|
||||
+static int init_server_long(int *sock, int port, char *ip, int type, int use_ipv4, int use_ipv6)
|
||||
{
|
||||
int ret = 0;
|
||||
+ int domain;
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ struct sockaddr_storage server;
|
||||
+ struct sockaddr_in *server_in = (struct sockaddr_in *)&server;
|
||||
+ struct sockaddr_in6 *server_in6 = (struct sockaddr_in6 *)&server;
|
||||
+# else
|
||||
struct sockaddr_in server;
|
||||
+ struct sockaddr_in *server_in = &server;
|
||||
+# endif
|
||||
+ socklen_t addr_len;
|
||||
int s = -1;
|
||||
|
||||
+ if (!use_ipv4 && !use_ipv6)
|
||||
+ goto err;
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ /* we are fine here */
|
||||
+# else
|
||||
+ if (use_ipv6)
|
||||
+ goto err;
|
||||
+# endif
|
||||
if (!ssl_sock_init())
|
||||
return (0);
|
||||
|
||||
- memset((char *)&server, 0, sizeof(server));
|
||||
- server.sin_family = AF_INET;
|
||||
- server.sin_port = htons((unsigned short)port);
|
||||
- if (ip == NULL)
|
||||
- server.sin_addr.s_addr = INADDR_ANY;
|
||||
- else
|
||||
-/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
|
||||
-# ifndef BIT_FIELD_LIMITS
|
||||
- memcpy(&server.sin_addr.s_addr, ip, 4);
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ domain = use_ipv6 ? AF_INET6 : AF_INET;
|
||||
# else
|
||||
- memcpy(&server.sin_addr, ip, 4);
|
||||
+ domain = AF_INET;
|
||||
# endif
|
||||
-
|
||||
if (type == SOCK_STREAM)
|
||||
- s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL);
|
||||
- else /* type == SOCK_DGRAM */
|
||||
- s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
|
||||
+ s=socket(domain, SOCK_STREAM, SOCKET_PROTOCOL);
|
||||
+ else /* type == SOCK_DGRAM */
|
||||
+ s=socket(domain, SOCK_DGRAM, IPPROTO_UDP);
|
||||
|
||||
if (s == INVALID_SOCKET)
|
||||
goto err;
|
||||
@@ -363,7 +402,42 @@
|
||||
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *)&j, sizeof j);
|
||||
}
|
||||
# endif
|
||||
- if (bind(s, (struct sockaddr *)&server, sizeof(server)) == -1) {
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ if ((use_ipv4 == 0) && (use_ipv6 == 1)) {
|
||||
+ const int on = 1;
|
||||
+
|
||||
+ setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY,
|
||||
+ (const void *) &on, sizeof(int));
|
||||
+ }
|
||||
+# endif
|
||||
+ if (domain == AF_INET) {
|
||||
+ addr_len = (socklen_t)sizeof(struct sockaddr_in);
|
||||
+ memset(server_in, 0, sizeof(struct sockaddr_in));
|
||||
+ server_in->sin_family=AF_INET;
|
||||
+ server_in->sin_port = htons((unsigned short)port);
|
||||
+ if (ip == NULL)
|
||||
+ server_in->sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
+ else
|
||||
+/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
|
||||
+# ifndef BIT_FIELD_LIMITS
|
||||
+ memcpy(&server_in->sin_addr.s_addr, ip, 4);
|
||||
+# else
|
||||
+ memcpy(&server_in->sin_addr, ip, 4);
|
||||
+# endif
|
||||
+ }
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ else {
|
||||
+ addr_len = (socklen_t)sizeof(struct sockaddr_in6);
|
||||
+ memset(server_in6, 0, sizeof(struct sockaddr_in6));
|
||||
+ server_in6->sin6_family = AF_INET6;
|
||||
+ server_in6->sin6_port = htons((unsigned short)port);
|
||||
+ if (ip == NULL)
|
||||
+ server_in6->sin6_addr = in6addr_any;
|
||||
+ else
|
||||
+ memcpy(&server_in6->sin6_addr, ip, sizeof(struct in6_addr));
|
||||
+ }
|
||||
+# endif
|
||||
+ if (bind(s, (struct sockaddr *)&server, addr_len) == -1) {
|
||||
# ifndef OPENSSL_SYS_WINDOWS
|
||||
perror("bind");
|
||||
# endif
|
||||
@@ -381,16 +455,23 @@
|
||||
return (ret);
|
||||
}
|
||||
|
||||
-static int init_server(int *sock, int port, int type)
|
||||
+static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6)
|
||||
{
|
||||
- return (init_server_long(sock, port, NULL, type));
|
||||
+ return (init_server_long(sock, port, NULL, type, use_ipv4, use_ipv6));
|
||||
}
|
||||
|
||||
static int do_accept(int acc_sock, int *sock, char **host)
|
||||
{
|
||||
int ret;
|
||||
struct hostent *h1, *h2;
|
||||
- static struct sockaddr_in from;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ struct sockaddr_storage from;
|
||||
+ struct sockaddr_in *from_in = (struct sockaddr_in *)&from;
|
||||
+ struct sockaddr_in6 *from_in6 = (struct sockaddr_in6 *)&from;
|
||||
+#else
|
||||
+ struct sockaddr_in from;
|
||||
+ struct sockaddr_in *from_in = &from;
|
||||
+#endif
|
||||
int len;
|
||||
/* struct linger ling; */
|
||||
|
||||
@@ -440,14 +521,25 @@
|
||||
|
||||
if (host == NULL)
|
||||
goto end;
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ if (from.ss_family == AF_INET)
|
||||
+# else
|
||||
+ if (from.sin_family == AF_INET)
|
||||
+# endif
|
||||
# ifndef BIT_FIELD_LIMITS
|
||||
- /* I should use WSAAsyncGetHostByName() under windows */
|
||||
- h1 = gethostbyaddr((char *)&from.sin_addr.s_addr,
|
||||
- sizeof(from.sin_addr.s_addr), AF_INET);
|
||||
+ /* I should use WSAAsyncGetHostByName() under windows */
|
||||
+ h1 = gethostbyaddr((char *)&from_in->sin_addr.s_addr,
|
||||
+ sizeof(from_in->sin_addr.s_addr), AF_INET);
|
||||
# else
|
||||
- h1 = gethostbyaddr((char *)&from.sin_addr,
|
||||
- sizeof(struct in_addr), AF_INET);
|
||||
+ h1 = gethostbyaddr((char *)&from_in->sin_addr,
|
||||
+ sizeof(struct in_addr), AF_INET);
|
||||
+# endif
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ else
|
||||
+ h1 = gethostbyaddr((char *)&from_in6->sin6_addr,
|
||||
+ sizeof(struct in6_addr), AF_INET6);
|
||||
# endif
|
||||
+
|
||||
if (h1 == NULL) {
|
||||
BIO_printf(bio_err, "bad gethostbyaddr\n");
|
||||
*host = NULL;
|
||||
@@ -460,14 +552,22 @@
|
||||
}
|
||||
BUF_strlcpy(*host, h1->h_name, strlen(h1->h_name) + 1);
|
||||
|
||||
- h2 = GetHostByName(*host);
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ h2=GetHostByName(*host, from.ss_family);
|
||||
+# else
|
||||
+ h2=GetHostByName(*host, from.sin_family);
|
||||
+# endif
|
||||
if (h2 == NULL) {
|
||||
BIO_printf(bio_err, "gethostbyname failure\n");
|
||||
closesocket(ret);
|
||||
return (0);
|
||||
}
|
||||
- if (h2->h_addrtype != AF_INET) {
|
||||
- BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ if (h2->h_addrtype != from.ss_family) {
|
||||
+# else
|
||||
+ if (h2->h_addrtype != from.sin_family) {
|
||||
+# endif
|
||||
+ BIO_printf(bio_err, "gethostbyname addr is not correct\n");
|
||||
closesocket(ret);
|
||||
return (0);
|
||||
}
|
||||
@@ -483,14 +583,14 @@
|
||||
char *h, *p;
|
||||
|
||||
h = str;
|
||||
- p = strchr(str, ':');
|
||||
+ p = strrchr(str, ':');
|
||||
if (p == NULL) {
|
||||
BIO_printf(bio_err, "no port defined\n");
|
||||
return (0);
|
||||
}
|
||||
*(p++) = '\0';
|
||||
|
||||
- if ((ip != NULL) && !host_ip(str, ip))
|
||||
+ if ((ip != NULL) && !host_ip(str, ip, AF_INET))
|
||||
goto err;
|
||||
if (host_ptr != NULL)
|
||||
*host_ptr = h;
|
||||
@@ -502,44 +602,51 @@
|
||||
return (0);
|
||||
}
|
||||
|
||||
-static int host_ip(char *str, unsigned char ip[4])
|
||||
+static int host_ip(char *str, unsigned char *ip, int domain)
|
||||
{
|
||||
unsigned int in[4];
|
||||
+ unsigned long l;
|
||||
int i;
|
||||
|
||||
- if (sscanf(str, "%u.%u.%u.%u", &(in[0]), &(in[1]), &(in[2]), &(in[3])) ==
|
||||
- 4) {
|
||||
+ if ((domain == AF_INET) && (sscanf(str, "%u.%u.%u.%u", &(in[0]), &(in[1]), &(in[2]), &(in[3])) == 4)) {
|
||||
for (i = 0; i < 4; i++)
|
||||
if (in[i] > 255) {
|
||||
BIO_printf(bio_err, "invalid IP address\n");
|
||||
goto err;
|
||||
}
|
||||
- ip[0] = in[0];
|
||||
- ip[1] = in[1];
|
||||
- ip[2] = in[2];
|
||||
- ip[3] = in[3];
|
||||
- } else { /* do a gethostbyname */
|
||||
+ l=htonl((in[0]<<24L)|(in[1]<<16L)|(in[2]<<8L)|in[3]);
|
||||
+ memcpy(ip, &l, 4);
|
||||
+ return 1;
|
||||
+ }
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ else if ((domain == AF_INET6) && (inet_pton(AF_INET6, str, ip) == 1))
|
||||
+ return 1;
|
||||
+# endif
|
||||
+ else { /* do a gethostbyname */
|
||||
struct hostent *he;
|
||||
|
||||
if (!ssl_sock_init())
|
||||
return (0);
|
||||
|
||||
- he = GetHostByName(str);
|
||||
+ he = GetHostByName(str, domain);
|
||||
if (he == NULL) {
|
||||
BIO_printf(bio_err, "gethostbyname failure\n");
|
||||
goto err;
|
||||
}
|
||||
/* cast to short because of win16 winsock definition */
|
||||
- if ((short)he->h_addrtype != AF_INET) {
|
||||
- BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
|
||||
+ if ((short)he->h_addrtype != domain) {
|
||||
+ BIO_printf(bio_err, "gethostbyname addr is not correct\n");
|
||||
return (0);
|
||||
}
|
||||
- ip[0] = he->h_addr_list[0][0];
|
||||
- ip[1] = he->h_addr_list[0][1];
|
||||
- ip[2] = he->h_addr_list[0][2];
|
||||
- ip[3] = he->h_addr_list[0][3];
|
||||
+ if (domain == AF_INET)
|
||||
+ memset(ip, 0, 4);
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ else
|
||||
+ memset(ip, 0, 16);
|
||||
+# endif
|
||||
+ memcpy(ip, he->h_addr_list[0], he->h_length);
|
||||
+ return 1;
|
||||
}
|
||||
- return (1);
|
||||
err:
|
||||
return (0);
|
||||
}
|
||||
@@ -573,7 +680,7 @@
|
||||
static unsigned long ghbn_hits = 0L;
|
||||
static unsigned long ghbn_miss = 0L;
|
||||
|
||||
-static struct hostent *GetHostByName(char *name)
|
||||
+static struct hostent *GetHostByName(char *name, int domain)
|
||||
{
|
||||
struct hostent *ret;
|
||||
int i, lowi = 0;
|
||||
@@ -585,13 +692,18 @@
|
||||
lowi = i;
|
||||
}
|
||||
if (ghbn_cache[i].order > 0) {
|
||||
- if (strncmp(name, ghbn_cache[i].name, 128) == 0)
|
||||
+ if ((strncmp(name, ghbn_cache[i].name, 128) == 0) && (ghbn_cache[i].ent.h_addrtype == domain))
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == GHBN_NUM) { /* no hit */
|
||||
ghbn_miss++;
|
||||
- ret = gethostbyname(name);
|
||||
+ if (domain == AF_INET)
|
||||
+ ret = gethostbyname(name);
|
||||
+# if OPENSSL_USE_IPV6
|
||||
+ else
|
||||
+ ret = gethostbyname2(name, AF_INET6);
|
||||
+# endif
|
||||
if (ret == NULL)
|
||||
return (NULL);
|
||||
/* else add to cache */
|
@ -0,0 +1,17 @@
|
||||
https://bugs.gentoo.org/472584
|
||||
http://rt.openssl.org/Ticket/Display.html?id=2387&user=guest&pass=guest
|
||||
|
||||
fix verification handling in s_client. when loading paths, make sure
|
||||
we properly fallback to setting the default paths.
|
||||
|
||||
--- openssl-1.0.2/apps/s_client.c
|
||||
+++ openssl-1.0.2/apps/s_client.c
|
||||
@@ -1337,7 +1337,7 @@
|
||||
|
||||
SSL_CTX_set_verify(ctx, verify, verify_callback);
|
||||
|
||||
- if ((!SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) ||
|
||||
+ if ((!SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) &&
|
||||
(!SSL_CTX_set_default_verify_paths(ctx))) {
|
||||
/*
|
||||
* BIO_printf(bio_err,"error setting default verify locations\n");
|
@ -1,640 +0,0 @@
|
||||
http://rt.openssl.org/Ticket/Display.html?id=2051&user=guest&pass=guest
|
||||
|
||||
--- openssl-1.0.2-beta2/apps/s_apps.h
|
||||
+++ openssl-1.0.2-beta2/apps/s_apps.h
|
||||
@@ -148,7 +148,7 @@
|
||||
#define PORT_STR "4433"
|
||||
#define PROTOCOL "tcp"
|
||||
|
||||
-int do_server(int port, int type, int *ret, int (*cb) (char *hostname, int s, int stype, unsigned char *context), unsigned char *context, int naccept);
|
||||
+int do_server(int port, int type, int *ret, int (*cb) (char *hostname, int s, int stype, unsigned char *context), unsigned char *context, int naccept, int use_ipv4, int use_ipv6);
|
||||
#ifdef HEADER_X509_H
|
||||
int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx);
|
||||
#endif
|
||||
@@ -161,7 +161,7 @@
|
||||
int ssl_print_curves(BIO *out, SSL *s, int noshared);
|
||||
#endif
|
||||
int ssl_print_tmp_key(BIO *out, SSL *s);
|
||||
-int init_client(int *sock, char *server, int port, int type);
|
||||
+int init_client(int *sock, char *server, int port, int type, int use_ipv4, int use_ipv6);
|
||||
int should_retry(int i);
|
||||
int extract_port(char *str, short *port_ptr);
|
||||
int extract_host_port(char *str,char **host_ptr,unsigned char *ip,short *p);
|
||||
--- openssl-1.0.2-beta2/apps/s_client.c
|
||||
+++ openssl-1.0.2-beta2/apps/s_client.c
|
||||
@@ -288,6 +288,10 @@
|
||||
{
|
||||
BIO_printf(bio_err,"usage: s_client args\n");
|
||||
BIO_printf(bio_err,"\n");
|
||||
+ BIO_printf(bio_err," -4 - use IPv4 only\n");
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ BIO_printf(bio_err," -6 - use IPv6 only\n");
|
||||
+#endif
|
||||
BIO_printf(bio_err," -host host - use -connect instead\n");
|
||||
BIO_printf(bio_err," -port port - use -connect instead\n");
|
||||
BIO_printf(bio_err," -connect host:port - who to connect to (default is %s:%s)\n",SSL_HOST_NAME,PORT_STR);
|
||||
@@ -595,6 +599,7 @@
|
||||
int sbuf_len,sbuf_off;
|
||||
fd_set readfds,writefds;
|
||||
short port=PORT;
|
||||
+ int use_ipv4, use_ipv6;
|
||||
int full_log=1;
|
||||
char *host=SSL_HOST_NAME;
|
||||
char *cert_file=NULL,*key_file=NULL,*chain_file=NULL;
|
||||
@@ -647,7 +652,11 @@
|
||||
#endif
|
||||
char *sess_in = NULL;
|
||||
char *sess_out = NULL;
|
||||
- struct sockaddr peer;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ struct sockaddr_storage peer;
|
||||
+#else
|
||||
+ struct sockaddr_in peer;
|
||||
+#endif
|
||||
int peerlen = sizeof(peer);
|
||||
int enable_timeouts = 0 ;
|
||||
long socket_mtu = 0;
|
||||
@@ -674,6 +683,12 @@
|
||||
|
||||
meth=SSLv23_client_method();
|
||||
|
||||
+ use_ipv4 = 1;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ use_ipv6 = 1;
|
||||
+#else
|
||||
+ use_ipv6 = 0;
|
||||
+#endif
|
||||
apps_startup();
|
||||
c_Pause=0;
|
||||
c_quiet=0;
|
||||
@@ -1079,6 +1094,18 @@
|
||||
jpake_secret = *++argv;
|
||||
}
|
||||
#endif
|
||||
+ else if (strcmp(*argv,"-4") == 0)
|
||||
+ {
|
||||
+ use_ipv4 = 1;
|
||||
+ use_ipv6 = 0;
|
||||
+ }
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ else if (strcmp(*argv,"-6") == 0)
|
||||
+ {
|
||||
+ use_ipv4 = 0;
|
||||
+ use_ipv6 = 1;
|
||||
+ }
|
||||
+#endif
|
||||
else if (strcmp(*argv,"-use_srtp") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
@@ -1445,7 +1472,7 @@
|
||||
|
||||
re_start:
|
||||
|
||||
- if (init_client(&s,host,port,socket_type) == 0)
|
||||
+ if (init_client(&s,host,port,socket_type,use_ipv4,use_ipv6) == 0)
|
||||
{
|
||||
BIO_printf(bio_err,"connect:errno=%d\n",get_last_socket_error());
|
||||
SHUTDOWN(s);
|
||||
@@ -1471,7 +1498,7 @@
|
||||
{
|
||||
|
||||
sbio=BIO_new_dgram(s,BIO_NOCLOSE);
|
||||
- if (getsockname(s, &peer, (void *)&peerlen) < 0)
|
||||
+ if (getsockname(s, (struct sockaddr *)&peer, (void *)&peerlen) < 0)
|
||||
{
|
||||
BIO_printf(bio_err, "getsockname:errno=%d\n",
|
||||
get_last_socket_error());
|
||||
--- openssl-1.0.2-beta2/apps/s_server.c
|
||||
+++ openssl-1.0.2-beta2/apps/s_server.c
|
||||
@@ -584,6 +584,10 @@
|
||||
BIO_printf(bio_err," -use_srtp profiles - Offer SRTP key management with a colon-separated profile list\n");
|
||||
BIO_printf(bio_err," -alpn arg - set the advertised protocols for the ALPN extension (comma-separated list)\n");
|
||||
#endif
|
||||
+ BIO_printf(bio_err," -4 - use IPv4 only\n");
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ BIO_printf(bio_err," -6 - use IPv6 only\n");
|
||||
+#endif
|
||||
BIO_printf(bio_err," -keymatexport label - Export keying material using label\n");
|
||||
BIO_printf(bio_err," -keymatexportlen len - Export len bytes of keying material (default 20)\n");
|
||||
BIO_printf(bio_err," -status - respond to certificate status requests\n");
|
||||
@@ -1014,6 +1018,7 @@
|
||||
int state=0;
|
||||
const SSL_METHOD *meth=NULL;
|
||||
int socket_type=SOCK_STREAM;
|
||||
+ int use_ipv4, use_ipv6;
|
||||
ENGINE *e=NULL;
|
||||
char *inrand=NULL;
|
||||
int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM;
|
||||
@@ -1055,6 +1060,12 @@
|
||||
|
||||
meth=SSLv23_server_method();
|
||||
|
||||
+ use_ipv4 = 1;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ use_ipv6 = 1;
|
||||
+#else
|
||||
+ use_ipv6 = 0;
|
||||
+#endif
|
||||
local_argc=argc;
|
||||
local_argv=argv;
|
||||
|
||||
@@ -1493,6 +1504,18 @@
|
||||
jpake_secret = *(++argv);
|
||||
}
|
||||
#endif
|
||||
+ else if (strcmp(*argv,"-4") == 0)
|
||||
+ {
|
||||
+ use_ipv4 = 1;
|
||||
+ use_ipv6 = 0;
|
||||
+ }
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ else if (strcmp(*argv,"-6") == 0)
|
||||
+ {
|
||||
+ use_ipv4 = 0;
|
||||
+ use_ipv6 = 1;
|
||||
+ }
|
||||
+#endif
|
||||
else if (strcmp(*argv,"-use_srtp") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
@@ -2063,11 +2086,11 @@
|
||||
BIO_printf(bio_s_out,"ACCEPT\n");
|
||||
(void)BIO_flush(bio_s_out);
|
||||
if (rev)
|
||||
- do_server(port,socket_type,&accept_socket,rev_body, context, naccept);
|
||||
+ do_server(port,socket_type,&accept_socket,rev_body, context, naccept, use_ipv4, use_ipv6);
|
||||
else if (www)
|
||||
- do_server(port,socket_type,&accept_socket,www_body, context, naccept);
|
||||
+ do_server(port,socket_type,&accept_socket,www_body, context, naccept, use_ipv4, use_ipv6);
|
||||
else
|
||||
- do_server(port,socket_type,&accept_socket,sv_body, context, naccept);
|
||||
+ do_server(port,socket_type,&accept_socket,sv_body, context, naccept, use_ipv4, use_ipv6);
|
||||
print_stats(bio_s_out,ctx);
|
||||
ret=0;
|
||||
end:
|
||||
--- openssl-1.0.2-beta2/apps/s_socket.c
|
||||
+++ openssl-1.0.2-beta2/apps/s_socket.c
|
||||
@@ -97,16 +97,16 @@
|
||||
#include "netdb.h"
|
||||
#endif
|
||||
|
||||
-static struct hostent *GetHostByName(char *name);
|
||||
+static struct hostent *GetHostByName(char *name, int domain);
|
||||
#if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
|
||||
static void ssl_sock_cleanup(void);
|
||||
#endif
|
||||
static int ssl_sock_init(void);
|
||||
-static int init_client_ip(int *sock,unsigned char ip[4], int port, int type);
|
||||
-static int init_server(int *sock, int port, int type);
|
||||
-static int init_server_long(int *sock, int port,char *ip, int type);
|
||||
+static int init_client_ip(int *sock,unsigned char *ip, int port, int type, int domain);
|
||||
+static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6);
|
||||
+static int init_server_long(int *sock, int port,char *ip, int type, int use_ipv4, int use_ipv6);
|
||||
static int do_accept(int acc_sock, int *sock, char **host);
|
||||
-static int host_ip(char *str, unsigned char ip[4]);
|
||||
+static int host_ip(char *str, unsigned char *ip, int domain);
|
||||
|
||||
#ifdef OPENSSL_SYS_WIN16
|
||||
#define SOCKET_PROTOCOL 0 /* more microsoft stupidity */
|
||||
@@ -234,38 +234,68 @@
|
||||
return(1);
|
||||
}
|
||||
|
||||
-int init_client(int *sock, char *host, int port, int type)
|
||||
+int init_client(int *sock, char *host, int port, int type, int use_ipv4, int use_ipv6)
|
||||
{
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ unsigned char ip[16];
|
||||
+#else
|
||||
unsigned char ip[4];
|
||||
+#endif
|
||||
|
||||
- memset(ip, '\0', sizeof ip);
|
||||
- if (!host_ip(host,&(ip[0])))
|
||||
- return 0;
|
||||
- return init_client_ip(sock,ip,port,type);
|
||||
- }
|
||||
-
|
||||
-static int init_client_ip(int *sock, unsigned char ip[4], int port, int type)
|
||||
- {
|
||||
- unsigned long addr;
|
||||
+ if (use_ipv4)
|
||||
+ if (host_ip(host,ip,AF_INET))
|
||||
+ return(init_client_ip(sock,ip,port,type,AF_INET));
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ if (use_ipv6)
|
||||
+ if (host_ip(host,ip,AF_INET6))
|
||||
+ return(init_client_ip(sock,ip,port,type,AF_INET6));
|
||||
+#endif
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+static int init_client_ip(int *sock, unsigned char ip[4], int port, int type, int domain)
|
||||
+ {
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ struct sockaddr_storage them;
|
||||
+ struct sockaddr_in *them_in = (struct sockaddr_in *)&them;
|
||||
+ struct sockaddr_in6 *them_in6 = (struct sockaddr_in6 *)&them;
|
||||
+#else
|
||||
struct sockaddr_in them;
|
||||
+ struct sockaddr_in *them_in = &them;
|
||||
+#endif
|
||||
+ socklen_t addr_len;
|
||||
int s,i;
|
||||
|
||||
if (!ssl_sock_init()) return(0);
|
||||
|
||||
memset((char *)&them,0,sizeof(them));
|
||||
- them.sin_family=AF_INET;
|
||||
- them.sin_port=htons((unsigned short)port);
|
||||
- addr=(unsigned long)
|
||||
- ((unsigned long)ip[0]<<24L)|
|
||||
- ((unsigned long)ip[1]<<16L)|
|
||||
- ((unsigned long)ip[2]<< 8L)|
|
||||
- ((unsigned long)ip[3]);
|
||||
- them.sin_addr.s_addr=htonl(addr);
|
||||
+ if (domain == AF_INET)
|
||||
+ {
|
||||
+ addr_len = (socklen_t)sizeof(struct sockaddr_in);
|
||||
+ them_in->sin_family=AF_INET;
|
||||
+ them_in->sin_port=htons((unsigned short)port);
|
||||
+#ifndef BIT_FIELD_LIMITS
|
||||
+ memcpy(&them_in->sin_addr.s_addr, ip, 4);
|
||||
+#else
|
||||
+ memcpy(&them_in->sin_addr, ip, 4);
|
||||
+#endif
|
||||
+ }
|
||||
+ else
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ {
|
||||
+ addr_len = (socklen_t)sizeof(struct sockaddr_in6);
|
||||
+ them_in6->sin6_family=AF_INET6;
|
||||
+ them_in6->sin6_port=htons((unsigned short)port);
|
||||
+ memcpy(&(them_in6->sin6_addr), ip, sizeof(struct in6_addr));
|
||||
+ }
|
||||
+#else
|
||||
+ return(0);
|
||||
+#endif
|
||||
|
||||
if (type == SOCK_STREAM)
|
||||
- s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL);
|
||||
+ s=socket(domain,SOCK_STREAM,SOCKET_PROTOCOL);
|
||||
else /* ( type == SOCK_DGRAM) */
|
||||
- s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
|
||||
+ s=socket(domain,SOCK_DGRAM,IPPROTO_UDP);
|
||||
|
||||
if (s == INVALID_SOCKET) { perror("socket"); return(0); }
|
||||
|
||||
@@ -277,29 +307,27 @@
|
||||
if (i < 0) { closesocket(s); perror("keepalive"); return(0); }
|
||||
}
|
||||
#endif
|
||||
-
|
||||
- if (connect(s,(struct sockaddr *)&them,sizeof(them)) == -1)
|
||||
+ if (connect(s,(struct sockaddr *)&them,addr_len) == -1)
|
||||
{ closesocket(s); perror("connect"); return(0); }
|
||||
*sock=s;
|
||||
return(1);
|
||||
}
|
||||
|
||||
-int do_server(int port, int type, int *ret, int (*cb)(char *hostname, int s, int stype, unsigned char *context), unsigned char *context, int naccept)
|
||||
+int do_server(int port, int type, int *ret, int (*cb)(char *hostname, int s, int stype, unsigned char *context), unsigned char *context, int naccept, int use_ipv4, int use_ipv6)
|
||||
{
|
||||
int sock;
|
||||
char *name = NULL;
|
||||
int accept_socket = 0;
|
||||
int i;
|
||||
|
||||
- if (!init_server(&accept_socket,port,type)) return(0);
|
||||
-
|
||||
+ if (!init_server(&accept_socket,port,type, use_ipv4, use_ipv6)) return(0);
|
||||
if (ret != NULL)
|
||||
{
|
||||
*ret=accept_socket;
|
||||
/* return(1);*/
|
||||
}
|
||||
- for (;;)
|
||||
- {
|
||||
+ for (;;)
|
||||
+ {
|
||||
if (type==SOCK_STREAM)
|
||||
{
|
||||
if (do_accept(accept_socket,&sock,&name) == 0)
|
||||
@@ -324,41 +352,88 @@
|
||||
}
|
||||
}
|
||||
|
||||
-static int init_server_long(int *sock, int port, char *ip, int type)
|
||||
+static int init_server_long(int *sock, int port, char *ip, int type, int use_ipv4, int use_ipv6)
|
||||
{
|
||||
int ret=0;
|
||||
+ int domain;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ struct sockaddr_storage server;
|
||||
+ struct sockaddr_in *server_in = (struct sockaddr_in *)&server;
|
||||
+ struct sockaddr_in6 *server_in6 = (struct sockaddr_in6 *)&server;
|
||||
+#else
|
||||
struct sockaddr_in server;
|
||||
+ struct sockaddr_in *server_in = &server;
|
||||
+#endif
|
||||
+ socklen_t addr_len;
|
||||
int s= -1;
|
||||
|
||||
+ if (!use_ipv4 && !use_ipv6)
|
||||
+ goto err;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ /* we are fine here */
|
||||
+#else
|
||||
+ if (use_ipv6)
|
||||
+ goto err;
|
||||
+#endif
|
||||
if (!ssl_sock_init()) return(0);
|
||||
|
||||
- memset((char *)&server,0,sizeof(server));
|
||||
- server.sin_family=AF_INET;
|
||||
- server.sin_port=htons((unsigned short)port);
|
||||
- if (ip == NULL)
|
||||
- server.sin_addr.s_addr=INADDR_ANY;
|
||||
- else
|
||||
-/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
|
||||
-#ifndef BIT_FIELD_LIMITS
|
||||
- memcpy(&server.sin_addr.s_addr,ip,4);
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ domain = use_ipv6 ? AF_INET6 : AF_INET;
|
||||
#else
|
||||
- memcpy(&server.sin_addr,ip,4);
|
||||
+ domain = AF_INET;
|
||||
#endif
|
||||
-
|
||||
- if (type == SOCK_STREAM)
|
||||
- s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL);
|
||||
- else /* type == SOCK_DGRAM */
|
||||
- s=socket(AF_INET, SOCK_DGRAM,IPPROTO_UDP);
|
||||
+ if (type == SOCK_STREAM)
|
||||
+ s=socket(domain,SOCK_STREAM,SOCKET_PROTOCOL);
|
||||
+ else /* type == SOCK_DGRAM */
|
||||
+ s=socket(domain, SOCK_DGRAM,IPPROTO_UDP);
|
||||
|
||||
if (s == INVALID_SOCKET) goto err;
|
||||
#if defined SOL_SOCKET && defined SO_REUSEADDR
|
||||
+ {
|
||||
+ int j = 1;
|
||||
+ setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
|
||||
+ (void *) &j, sizeof j);
|
||||
+ }
|
||||
+#endif
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ if ((use_ipv4 == 0) && (use_ipv6 == 1))
|
||||
+ {
|
||||
+ const int on = 1;
|
||||
+
|
||||
+ setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY,
|
||||
+ (const void *) &on, sizeof(int));
|
||||
+ }
|
||||
+#endif
|
||||
+ if (domain == AF_INET)
|
||||
+ {
|
||||
+ addr_len = (socklen_t)sizeof(struct sockaddr_in);
|
||||
+ memset(server_in, 0, sizeof(struct sockaddr_in));
|
||||
+ server_in->sin_family=AF_INET;
|
||||
+ server_in->sin_port = htons((unsigned short)port);
|
||||
+ if (ip == NULL)
|
||||
+ server_in->sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
+ else
|
||||
+/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
|
||||
+#ifndef BIT_FIELD_LIMITS
|
||||
+ memcpy(&server_in->sin_addr.s_addr, ip, 4);
|
||||
+#else
|
||||
+ memcpy(&server_in->sin_addr, ip, 4);
|
||||
+#endif
|
||||
+ }
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ else
|
||||
{
|
||||
- int j = 1;
|
||||
- setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
|
||||
- (void *) &j, sizeof j);
|
||||
+ addr_len = (socklen_t)sizeof(struct sockaddr_in6);
|
||||
+ memset(server_in6, 0, sizeof(struct sockaddr_in6));
|
||||
+ server_in6->sin6_family = AF_INET6;
|
||||
+ server_in6->sin6_port = htons((unsigned short)port);
|
||||
+ if (ip == NULL)
|
||||
+ server_in6->sin6_addr = in6addr_any;
|
||||
+ else
|
||||
+ memcpy(&server_in6->sin6_addr, ip, sizeof(struct in6_addr));
|
||||
}
|
||||
#endif
|
||||
- if (bind(s,(struct sockaddr *)&server,sizeof(server)) == -1)
|
||||
+ if (bind(s, (struct sockaddr *)&server, addr_len) == -1)
|
||||
{
|
||||
#ifndef OPENSSL_SYS_WINDOWS
|
||||
perror("bind");
|
||||
@@ -377,16 +452,23 @@
|
||||
return(ret);
|
||||
}
|
||||
|
||||
-static int init_server(int *sock, int port, int type)
|
||||
+static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6)
|
||||
{
|
||||
- return(init_server_long(sock, port, NULL, type));
|
||||
+ return(init_server_long(sock, port, NULL, type, use_ipv4, use_ipv6));
|
||||
}
|
||||
|
||||
static int do_accept(int acc_sock, int *sock, char **host)
|
||||
{
|
||||
int ret;
|
||||
struct hostent *h1,*h2;
|
||||
- static struct sockaddr_in from;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ struct sockaddr_storage from;
|
||||
+ struct sockaddr_in *from_in = (struct sockaddr_in *)&from;
|
||||
+ struct sockaddr_in6 *from_in6 = (struct sockaddr_in6 *)&from;
|
||||
+#else
|
||||
+ struct sockaddr_in from;
|
||||
+ struct sockaddr_in *from_in = &from;
|
||||
+#endif
|
||||
int len;
|
||||
/* struct linger ling; */
|
||||
|
||||
@@ -433,13 +515,23 @@
|
||||
*/
|
||||
|
||||
if (host == NULL) goto end;
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ if (from.ss_family == AF_INET)
|
||||
+#else
|
||||
+ if (from.sin_family == AF_INET)
|
||||
+#endif
|
||||
#ifndef BIT_FIELD_LIMITS
|
||||
- /* I should use WSAAsyncGetHostByName() under windows */
|
||||
- h1=gethostbyaddr((char *)&from.sin_addr.s_addr,
|
||||
- sizeof(from.sin_addr.s_addr),AF_INET);
|
||||
+ /* I should use WSAAsyncGetHostByName() under windows */
|
||||
+ h1=gethostbyaddr((char *)&from_in->sin_addr.s_addr,
|
||||
+ sizeof(from_in->sin_addr.s_addr), AF_INET);
|
||||
#else
|
||||
- h1=gethostbyaddr((char *)&from.sin_addr,
|
||||
- sizeof(struct in_addr),AF_INET);
|
||||
+ h1=gethostbyaddr((char *)&from_in->sin_addr,
|
||||
+ sizeof(struct in_addr), AF_INET);
|
||||
+#endif
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ else
|
||||
+ h1=gethostbyaddr((char *)&from_in6->sin6_addr,
|
||||
+ sizeof(struct in6_addr), AF_INET6);
|
||||
#endif
|
||||
if (h1 == NULL)
|
||||
{
|
||||
@@ -457,16 +549,24 @@
|
||||
}
|
||||
BUF_strlcpy(*host,h1->h_name,strlen(h1->h_name)+1);
|
||||
|
||||
- h2=GetHostByName(*host);
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ h2=GetHostByName(*host, from.ss_family);
|
||||
+#else
|
||||
+ h2=GetHostByName(*host, from.sin_family);
|
||||
+#endif
|
||||
if (h2 == NULL)
|
||||
{
|
||||
BIO_printf(bio_err,"gethostbyname failure\n");
|
||||
closesocket(ret);
|
||||
return(0);
|
||||
}
|
||||
- if (h2->h_addrtype != AF_INET)
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ if (h2->h_addrtype != from.ss_family)
|
||||
+#else
|
||||
+ if (h2->h_addrtype != from.sin_family)
|
||||
+#endif
|
||||
{
|
||||
- BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n");
|
||||
+ BIO_printf(bio_err,"gethostbyname addr is not correct\n");
|
||||
closesocket(ret);
|
||||
return(0);
|
||||
}
|
||||
@@ -482,7 +582,7 @@
|
||||
char *h,*p;
|
||||
|
||||
h=str;
|
||||
- p=strchr(str,':');
|
||||
+ p=strrchr(str,':');
|
||||
if (p == NULL)
|
||||
{
|
||||
BIO_printf(bio_err,"no port defined\n");
|
||||
@@ -490,7 +590,7 @@
|
||||
}
|
||||
*(p++)='\0';
|
||||
|
||||
- if ((ip != NULL) && !host_ip(str,ip))
|
||||
+ if ((ip != NULL) && !host_ip(str,ip,AF_INET))
|
||||
goto err;
|
||||
if (host_ptr != NULL) *host_ptr=h;
|
||||
|
||||
@@ -501,48 +601,58 @@
|
||||
return(0);
|
||||
}
|
||||
|
||||
-static int host_ip(char *str, unsigned char ip[4])
|
||||
+static int host_ip(char *str, unsigned char *ip, int domain)
|
||||
{
|
||||
- unsigned int in[4];
|
||||
+ unsigned int in[4];
|
||||
+ unsigned long l;
|
||||
int i;
|
||||
|
||||
- if (sscanf(str,"%u.%u.%u.%u",&(in[0]),&(in[1]),&(in[2]),&(in[3])) == 4)
|
||||
+ if ((domain == AF_INET) &&
|
||||
+ (sscanf(str,"%u.%u.%u.%u",&(in[0]),&(in[1]),&(in[2]),&(in[3])) == 4))
|
||||
{
|
||||
+
|
||||
for (i=0; i<4; i++)
|
||||
if (in[i] > 255)
|
||||
{
|
||||
BIO_printf(bio_err,"invalid IP address\n");
|
||||
goto err;
|
||||
}
|
||||
- ip[0]=in[0];
|
||||
- ip[1]=in[1];
|
||||
- ip[2]=in[2];
|
||||
- ip[3]=in[3];
|
||||
- }
|
||||
+ l=htonl((in[0]<<24L)|(in[1]<<16L)|(in[2]<<8L)|in[3]);
|
||||
+ memcpy(ip, &l, 4);
|
||||
+ return 1;
|
||||
+ }
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ else if ((domain == AF_INET6) &&
|
||||
+ (inet_pton(AF_INET6, str, ip) == 1))
|
||||
+ return 1;
|
||||
+#endif
|
||||
else
|
||||
{ /* do a gethostbyname */
|
||||
struct hostent *he;
|
||||
|
||||
if (!ssl_sock_init()) return(0);
|
||||
|
||||
- he=GetHostByName(str);
|
||||
+ he=GetHostByName(str,domain);
|
||||
if (he == NULL)
|
||||
{
|
||||
BIO_printf(bio_err,"gethostbyname failure\n");
|
||||
goto err;
|
||||
}
|
||||
/* cast to short because of win16 winsock definition */
|
||||
- if ((short)he->h_addrtype != AF_INET)
|
||||
+ if ((short)he->h_addrtype != domain)
|
||||
{
|
||||
- BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n");
|
||||
+ BIO_printf(bio_err,"gethostbyname addr family is not correct\n");
|
||||
return(0);
|
||||
}
|
||||
- ip[0]=he->h_addr_list[0][0];
|
||||
- ip[1]=he->h_addr_list[0][1];
|
||||
- ip[2]=he->h_addr_list[0][2];
|
||||
- ip[3]=he->h_addr_list[0][3];
|
||||
+ if (domain == AF_INET)
|
||||
+ memset(ip, 0, 4);
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ else
|
||||
+ memset(ip, 0, 16);
|
||||
+#endif
|
||||
+ memcpy(ip, he->h_addr_list[0], he->h_length);
|
||||
+ return 1;
|
||||
}
|
||||
- return(1);
|
||||
err:
|
||||
return(0);
|
||||
}
|
||||
@@ -579,7 +689,7 @@
|
||||
static unsigned long ghbn_hits=0L;
|
||||
static unsigned long ghbn_miss=0L;
|
||||
|
||||
-static struct hostent *GetHostByName(char *name)
|
||||
+static struct hostent *GetHostByName(char *name, int domain)
|
||||
{
|
||||
struct hostent *ret;
|
||||
int i,lowi=0;
|
||||
@@ -594,14 +704,20 @@
|
||||
}
|
||||
if (ghbn_cache[i].order > 0)
|
||||
{
|
||||
- if (strncmp(name,ghbn_cache[i].name,128) == 0)
|
||||
+ if ((strncmp(name,ghbn_cache[i].name,128) == 0) &&
|
||||
+ (ghbn_cache[i].ent.h_addrtype == domain))
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == GHBN_NUM) /* no hit*/
|
||||
{
|
||||
ghbn_miss++;
|
||||
- ret=gethostbyname(name);
|
||||
+ if (domain == AF_INET)
|
||||
+ ret=gethostbyname(name);
|
||||
+#if OPENSSL_USE_IPV6
|
||||
+ else
|
||||
+ ret=gethostbyname2(name, AF_INET6);
|
||||
+#endif
|
||||
if (ret == NULL) return(NULL);
|
||||
/* else add to cache */
|
||||
if(strlen(name) < sizeof ghbn_cache[0].name)
|
@ -1,14 +1,26 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
Hash: SHA512
|
||||
|
||||
DIST funcsigs-0.4.tar.gz 25697 SHA256 d83ce6df0b0ea6618700fe1db353526391a8a3ada1b7aba52fed7a61da772033 SHA512 64d821e94049ae906b9e5c8a2590f80a7d1d819554258e20f4170207576e5c8f65d32759a3f65bcb05fe721fa502658ff5767cd435932ea926c792c62ebe96d5 WHIRLPOOL d34cbcc061a341155b24b67af89f3fe0d14b659965ef4c9c14748996d33f3fd31d41492f097166236ebea54ea3ddd0e147c52f21f1410b2141169668811b9f66
|
||||
EBUILD funcsigs-0.4.ebuild 689 SHA256 c9879cfbc217e10bdb7bde003105cd588bb24e31a731a9c88349851aa82bfd73 SHA512 3e81cc93914b9b1ac5487d2add0a0457770a223bfaa2579ba95a3c8da94dc61c2b08810bf8733cd6d55cc712e6470243f5953d8b27d41e6b61cfc1d11096e3ab WHIRLPOOL a02ac02d31d55d431fb0c4005d33313d520732d4fd6815ee3466f1fce030dbf3a2b283e368698a8e838401c54c5c98bbf47e62b8511a593e960fee8a2cb2fd97
|
||||
MISC ChangeLog 481 SHA256 8d98894a900210c87764c8a59a237b66e82db36b40c96b37a12bef26a910479e SHA512 a0fd6ba2873cb3c559f12051b0320b161c80fcd058c368ec8c7127b390bef6abe11cc8f55b6cb4e8cefdfbde7d7c17ad3705ddf2f114e8faafb0c793e692e251 WHIRLPOOL 06001e41af470938ea780c7e8968a53a88ff1cc1e6fd63d0a3984ccfcd2c3bc2f3ae244362da9c523649e0b63c85d32f6645a7454c500bde04b64b1b4c06a286
|
||||
EBUILD funcsigs-0.4.ebuild 691 SHA256 61931687f7e255f64896a6a91a131ddfbf0a03c2dcba156b113514e87c2c04ea SHA512 74ac37335e98cab04f4d6c67bb7cfe129c913ea70292b80e5a18bacb63009621f958943433bf7d7c1e1359003c48dd24301880ac6d2fcbe336549c69738cd75b WHIRLPOOL 09c4934ccc5bb375499aa4c17dd35df97327c0744a8564929ae734f90a6bfa84930f3e7bcc8f3bc2d9ae8383486c4bc959d33c710289094666c0334501c4e51a
|
||||
MISC ChangeLog 602 SHA256 5456f2e5e73c16e00d3d076e20fb47189579ed13e402a617528a149db844e955 SHA512 d4e1993529f27ee6bfd09ca26829b52097c8d7cb901ed1fdfb409c39ca11a28d318f321199ce45ab13d17776e80d0485aabd3af7af3f14e77989dc73d9a218cb WHIRLPOOL ac606839c67145b773dc73601333b52b24c9908a9f6c8484f3b9e80cc256114bb05b9e2e90a01ce5fabc57ec16773a08735a440852a85c0656d02a0d2003d188
|
||||
MISC metadata.xml 227 SHA256 aef43758cae524923aefea72b3a1f2896b3dcca8d0135dc75a08149549388105 SHA512 40677314811b092252949d13d1d07aaf721f7e8ba47da28ac21239f881e7c919bcad9384d2f0bf0eff95e11912443aa1f2bab7e94e1a3029c9aa97a3654795dc WHIRLPOOL 1ce8a3cc4ae9ce91daa6bd030e5be25fdbee0fc29e14b943024c932cff8d6da58c6d152d02fb8703fc285331f3dd010ec832f8a5ddb18c7cd33c9ae97507dd76
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.22 (GNU/Linux)
|
||||
Version: GnuPG v2.0
|
||||
|
||||
iEYEAREIAAYFAlOszAwACgkQso7CE7gHKw0rLgCcCJuD3JrWrV6bqL8I69zToC1l
|
||||
BbIAoJclgDRyYwmemV+vuJ6EB43VXVbA
|
||||
=grT8
|
||||
iQJ8BAEBCgBmBQJUwjgUXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
|
||||
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQyQ0JDQjFGMzBDQ0UxMjFGNENDNDgxMDdC
|
||||
OUQ0RjIzMUJEMTU1OEFCAAoJELnU8jG9FVirS/sP/3aF39fWr1o0LlBto6rwMZrY
|
||||
oABiDDZd9BVbbxGnKc0dieDouIOgICjEQIpLP4+iarSC+XzlovB8gg9+9/yKjmKm
|
||||
FdCPQIMtQxO3YuFj072kSyoA0a4ItKT/y1/NoWuCK71rZqbIbTortFKbytcAYMa2
|
||||
3BTguSq0aw4P8+E0q+21QnDZLHhZ9pfo5bTRmKxrvRr8EzdXF42fOML7SHBd4eI8
|
||||
F51raH/0TqjD2PR2AQqu0UcFSQrGdNLc9oT4l15urCYGBbVG+A/YeE6DNQz8jie8
|
||||
IPL7rga5ACPgi7D6F5DNvCyKshV6sr+N1t4uXntb94wPAmgMtqjrh56hUkKYiZZA
|
||||
Yk88JnF5IZTrR4262i9dQPYZg894gTpFq+QYytsTi2SutGzm9obHKt/zkvivfB4C
|
||||
NFkbO3oD1tnaDCMNMYBjWvng2mr4xp9SD2029zC8R27pVCMnokb977kN6c7FjO0r
|
||||
Oe1/hf6Xew5uxWhDa5QGk1RaNl7BSXHoHy+2fH6G1qwCIK8rL1STpEIIaTL5BQzu
|
||||
797A27k3yKJicudoFl0HzeuUBHf2xkC1/P9QHPdYEvcNV10WBriwLJIVVe3Fflg8
|
||||
svKlslcwPF9UpTyLAiVxyW6KQAZOigi6WNL4NXjTdpKpLysP0tC2d+jc5dCQAh0J
|
||||
+CebC9lAyycVgfoPKDT4
|
||||
=ETXe
|
||||
-----END PGP SIGNATURE-----
|
||||
|
@ -0,0 +1,30 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/media-plugins/vdr-remote/vdr-remote-0.5.0-r1.ebuild,v 1.1 2015/01/23 13:49:34 hd_brummy Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit vdr-plugin-2
|
||||
|
||||
DESCRIPTION="VDR Plugin: use various devices for controlling vdr (keyboards, lirc, remotes bundled with tv-cards)"
|
||||
HOMEPAGE="http://www.escape-edv.de/endriss/vdr/"
|
||||
SRC_URI="http://www.escape-edv.de/endriss/vdr/${P}.tgz"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="GPL-2"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="systemd"
|
||||
|
||||
DEPEND=">=media-video/vdr-2"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
pkg_setup() {
|
||||
vdr-plugin-2_pkg_setup
|
||||
|
||||
if use systemd; then
|
||||
if ! getent group input | grep -q vdr; then
|
||||
einfo "add user 'vdr' to group 'input' for full access to remote control device"
|
||||
gpasswd -a vdr input
|
||||
fi
|
||||
fi
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/media-radio/unixcw/unixcw-3.4.1.ebuild,v 1.1 2015/01/23 14:08:20 tomjbe Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils flag-o-matic multilib
|
||||
|
||||
DESCRIPTION="A package of programs that fit together to form a morse code tutor program"
|
||||
HOMEPAGE="http://unixcw.sourceforge.net"
|
||||
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~ppc ~x86"
|
||||
IUSE="alsa ncurses pulseaudio suid qt4"
|
||||
|
||||
RDEPEND="ncurses? ( sys-libs/ncurses )
|
||||
qt4? ( dev-qt/qtgui:4[qt3support] )
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
pulseaudio? ( media-sound/pulseaudio )"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
sys-devel/libtool
|
||||
!<=app-misc/cw-1.0.16-r1"
|
||||
|
||||
src_prepare() {
|
||||
append-cflags -std=gnu99
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf --libdir=/usr/$(get_libdir) \
|
||||
$(use_enable pulseaudio ) \
|
||||
$(use_enable alsa ) \
|
||||
$(use_enable ncurses cwcp ) \
|
||||
$(use_enable qt4 xcwcp )
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
prune_libtool_files
|
||||
dodoc ChangeLog NEWS README
|
||||
if ! use suid ; then
|
||||
fperms 711 /usr/bin/cw
|
||||
if use ncurses ; then
|
||||
fperms 711 /usr/bin/cwcp
|
||||
fi
|
||||
if use qt4 ; then
|
||||
fperms 711 /usr/bin/xcwcp
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use suid ; then
|
||||
ewarn "You have choosen to install 'cw', 'cwcp' and 'xcwcp' setuid"
|
||||
ewarn "by setting USE=suid."
|
||||
ewarn "Be aware that this is a security risk and not recommended."
|
||||
ewarn ""
|
||||
ewarn "These files do only need root access if you want to use the"
|
||||
ewarn "PC speaker for morse sidetone output. You can alternativly"
|
||||
ewarn "drop USE=suid and use sudo."
|
||||
else
|
||||
elog "Be aware that 'cw', 'cwcp' and 'xcwcp' needs root access if"
|
||||
elog "you want to use the PC speaker for morse sidetone output."
|
||||
elog "You can call the programs via sudo for that (see 'man sudo')."
|
||||
fi
|
||||
}
|
@ -1 +1 @@
|
||||
Fri, 23 Jan 2015 10:36:58 +0000
|
||||
Fri, 23 Jan 2015 17:07:00 +0000
|
||||
|
@ -1 +1 @@
|
||||
Fri, 23 Jan 2015 10:36:59 +0000
|
||||
Fri, 23 Jan 2015 17:07:01 +0000
|
||||
|
@ -1,13 +1,13 @@
|
||||
DEFINED_PHASES=configure install prepare test
|
||||
DEPEND=!aqua? ( media-libs/fontconfig x11-libs/libX11 x11-libs/libXt truetype? ( x11-libs/libXft ) xscreensaver? ( x11-libs/libXScrnSaver ) ) ~dev-lang/tcl-8.6.3 !aqua? ( x11-proto/xproto ) !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.13:1.13 >=sys-devel/automake-1.15:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4 test? ( !prefix? ( x11-base/xorg-server[xvfb] ) x11-apps/xhost )
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DEPEND=!aqua? ( media-libs/fontconfig[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] x11-libs/libX11[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] x11-libs/libXt[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] truetype? ( x11-libs/libXft[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) xscreensaver? ( x11-libs/libXScrnSaver[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) ) ~dev-lang/tcl-8.6.3[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !aqua? ( x11-proto/xproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.13:1.13 >=sys-devel/automake-1.15:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4 test? ( !prefix? ( x11-base/xorg-server[xvfb] ) x11-apps/xhost )
|
||||
DESCRIPTION=Tk Widget Set
|
||||
EAPI=5
|
||||
HOMEPAGE=http://www.tcl.tk/
|
||||
IUSE=debug +threads truetype aqua xscreensaver test
|
||||
IUSE=debug +threads truetype aqua xscreensaver abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64 test
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
LICENSE=tcltk
|
||||
RDEPEND=!aqua? ( media-libs/fontconfig x11-libs/libX11 x11-libs/libXt truetype? ( x11-libs/libXft ) xscreensaver? ( x11-libs/libXScrnSaver ) ) ~dev-lang/tcl-8.6.3
|
||||
RDEPEND=!aqua? ( media-libs/fontconfig[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] x11-libs/libX11[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] x11-libs/libXt[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] truetype? ( x11-libs/libXft[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) xscreensaver? ( x11-libs/libXScrnSaver[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) ) ~dev-lang/tcl-8.6.3[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?]
|
||||
SLOT=0/8.6
|
||||
SRC_URI=mirror://sourceforge/tcl/tk8.6.3-src.tar.gz
|
||||
_eclasses_=autotools 8fc2dd333ef9346c906ffd9a523d8211 eutils 998e5931fb95b10a6a11ec796ada2759 libtool 52d0e17251d04645ffaa61bfdd858944 multilib 3bf24e6abb9b76d9f6c20600f0b716bf prefix 21058c21ca48453d771df15500873ede toolchain-funcs 0dfbfa13f57c6184f4728d12ac002aac versionator cd0bcdb170807e4a1984115e9d53a26f virtualx 73cfc129b4b9ba23aed1abb10c825d86
|
||||
_md5_=fc931b440e15abd480af313c03f80de6
|
||||
_eclasses_=autotools 8fc2dd333ef9346c906ffd9a523d8211 eutils 998e5931fb95b10a6a11ec796ada2759 libtool 52d0e17251d04645ffaa61bfdd858944 multibuild 6d4858dc00f8bc51caf3f957f8430eb0 multilib 3bf24e6abb9b76d9f6c20600f0b716bf multilib-build 0983c7893df461213a05f791cc7dea6d multilib-minimal 13dd976916c35a1e2c8d170e840c7018 prefix 21058c21ca48453d771df15500873ede toolchain-funcs 0dfbfa13f57c6184f4728d12ac002aac versionator cd0bcdb170807e4a1984115e9d53a26f virtualx 73cfc129b4b9ba23aed1abb10c825d86
|
||||
_md5_=c5551c9481193485b1310e1e2092bf4b
|
||||
|
@ -1,13 +1,14 @@
|
||||
DEFINED_PHASES=compile configure install postinst preinst prepare test
|
||||
DEPEND=gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) kerberos? ( >=app-crypt/mit-krb5-1.11.4[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20140508 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] ) !<net-misc/openssh-5.9_p1-r4 !<net-libs/neon-0.29.6-r1 sys-apps/diffutils >=dev-lang/perl-5 test? ( sys-devel/bc )
|
||||
DEPEND=gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) kerberos? ( >=app-crypt/mit-krb5-1.11.4[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20140508 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] ) !<net-misc/openssh-5.9_p1-r4 !<net-libs/neon-0.29.6-r1 sys-apps/diffutils >=dev-lang/perl-5 sctp? ( net-misc/lksctp-tools ) test? ( sys-devel/bc )
|
||||
DESCRIPTION=full-strength general purpose cryptography library (including SSL and TLS)
|
||||
EAPI=4
|
||||
HOMEPAGE=http://www.openssl.org/
|
||||
IUSE=bindist gmp kerberos rfc3779 sse2 static-libs test +tls-heartbeat vanilla zlib abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
IUSE=bindist gmp kerberos rfc3779 sctp sse2 static-libs test +tls-heartbeat vanilla zlib abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux
|
||||
LICENSE=openssl
|
||||
PDEPEND=app-misc/ca-certificates
|
||||
RDEPEND=gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) kerberos? ( >=app-crypt/mit-krb5-1.11.4[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20140508 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] ) !<net-misc/openssh-5.9_p1-r4 !<net-libs/neon-0.29.6-r1
|
||||
SLOT=0
|
||||
SRC_URI=mirror://openssl/source/openssl-1.0.2-beta3.tar.gz http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/openssl/openssl-c_rehash.sh?rev=1.7 -> openssl-c_rehash.sh.1.7
|
||||
SRC_URI=mirror://openssl/source/openssl-1.0.2.tar.gz http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/openssl/openssl-c_rehash.sh?rev=1.7 -> openssl-c_rehash.sh.1.7
|
||||
_eclasses_=eutils 998e5931fb95b10a6a11ec796ada2759 flag-o-matic c263990f1b677b0f0be0a3299f179762 multibuild 6d4858dc00f8bc51caf3f957f8430eb0 multilib 3bf24e6abb9b76d9f6c20600f0b716bf multilib-build 0983c7893df461213a05f791cc7dea6d multilib-minimal 13dd976916c35a1e2c8d170e840c7018 toolchain-funcs 0dfbfa13f57c6184f4728d12ac002aac
|
||||
_md5_=b30898d9072e3b3e59ab695afdd5462c
|
||||
_md5_=32a63c39887c1fa699f9adf7f50de418
|
@ -0,0 +1,13 @@
|
||||
DEFINED_PHASES=compile config install postinst postrm prepare setup unpack
|
||||
DEPEND=>=media-video/vdr-2 >=media-tv/gentoo-vdr-scripts-0.4.2 virtual/linuxtv-dvb-headers
|
||||
DESCRIPTION=VDR Plugin: use various devices for controlling vdr (keyboards, lirc, remotes bundled with tv-cards)
|
||||
EAPI=5
|
||||
HOMEPAGE=http://www.escape-edv.de/endriss/vdr/
|
||||
IUSE=systemd
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=>=media-video/vdr-2 >=media-tv/gentoo-vdr-scripts-0.4.2 >=app-admin/eselect-vdr-0.0.2
|
||||
SLOT=0
|
||||
SRC_URI=http://www.escape-edv.de/endriss/vdr/vdr-remote-0.5.0.tgz
|
||||
_eclasses_=eutils 998e5931fb95b10a6a11ec796ada2759 flag-o-matic c263990f1b677b0f0be0a3299f179762 multilib 3bf24e6abb9b76d9f6c20600f0b716bf toolchain-funcs 0dfbfa13f57c6184f4728d12ac002aac unpacker f300a7ca9131b1024a79762e8edd3c52 vdr-plugin-2 abe06aa01a351d441519a8a4bcde9b43
|
||||
_md5_=3d2ab221b7eaae238bbbd623200aefef
|
@ -0,0 +1,13 @@
|
||||
DEFINED_PHASES=configure install postinst prepare
|
||||
DEPEND=ncurses? ( sys-libs/ncurses ) qt4? ( dev-qt/qtgui:4[qt3support] ) alsa? ( media-libs/alsa-lib ) pulseaudio? ( media-sound/pulseaudio ) virtual/pkgconfig sys-devel/libtool !<=app-misc/cw-1.0.16-r1
|
||||
DESCRIPTION=A package of programs that fit together to form a morse code tutor program
|
||||
EAPI=5
|
||||
HOMEPAGE=http://unixcw.sourceforge.net
|
||||
IUSE=alsa ncurses pulseaudio suid qt4
|
||||
KEYWORDS=~alpha ~amd64 ~ppc ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=ncurses? ( sys-libs/ncurses ) qt4? ( dev-qt/qtgui:4[qt3support] ) alsa? ( media-libs/alsa-lib ) pulseaudio? ( media-sound/pulseaudio )
|
||||
SLOT=0
|
||||
SRC_URI=mirror://sourceforge/unixcw/unixcw-3.4.1.tar.gz
|
||||
_eclasses_=eutils 998e5931fb95b10a6a11ec796ada2759 flag-o-matic c263990f1b677b0f0be0a3299f179762 multilib 3bf24e6abb9b76d9f6c20600f0b716bf toolchain-funcs 0dfbfa13f57c6184f4728d12ac002aac
|
||||
_md5_=2881a1084c0e224afcaffaa0c615c892
|
@ -0,0 +1,13 @@
|
||||
DEFINED_PHASES=configure install postinst prepare
|
||||
DEPEND=dev-libs/boost dev-util/google-perftools app-editors/vim-core dev-libs/expat !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.13:1.13 >=sys-devel/automake-1.15:1.15 ) >=sys-devel/autoconf-2.69 >=sys-devel/libtool-2.4
|
||||
DESCRIPTION=Whole Genome Shotgun and EST Sequence Assembler for Sanger, 454 and Solexa / Illumina
|
||||
EAPI=5
|
||||
HOMEPAGE=http://www.chevreux.org/projects_mira.html
|
||||
IUSE=doc
|
||||
KEYWORDS=~amd64 ~x86 ~amd64-linux ~x86-linux ~x86-macos
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=dev-libs/boost dev-util/google-perftools
|
||||
SLOT=0
|
||||
SRC_URI=http://sourceforge.net/projects/mira-assembler/files/MIRA/stable/mira-4.0.2.tar.bz2 mirror://sourceforge/mira-assembler/mira_3rdparty_06-07-2012.tar.bz2
|
||||
_eclasses_=autotools 8fc2dd333ef9346c906ffd9a523d8211 eutils 998e5931fb95b10a6a11ec796ada2759 libtool 52d0e17251d04645ffaa61bfdd858944 multilib 3bf24e6abb9b76d9f6c20600f0b716bf toolchain-funcs 0dfbfa13f57c6184f4728d12ac002aac
|
||||
_md5_=dca0f25d8fff22c8df266da055f36534
|
@ -0,0 +1,13 @@
|
||||
DEFINED_PHASES=compile install
|
||||
DEPEND=sys-devel/gettext
|
||||
DESCRIPTION=A command-line program for writing Microsoft compatible boot records
|
||||
EAPI=5
|
||||
HOMEPAGE=http://ms-sys.sourceforge.net
|
||||
IUSE=linguas_sv
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=GPL-2
|
||||
RDEPEND=virtual/libintl
|
||||
SLOT=0
|
||||
SRC_URI=mirror://sourceforge/ms-sys/ms-sys-2.5.0.tar.gz
|
||||
_eclasses_=multilib 3bf24e6abb9b76d9f6c20600f0b716bf toolchain-funcs 0dfbfa13f57c6184f4728d12ac002aac
|
||||
_md5_=c391df0cfd95070725b7576af88d0fd0
|
@ -0,0 +1,13 @@
|
||||
DEFINED_PHASES=configure install setup
|
||||
DEPEND=kernel_linux? ( sys-libs/libutempter ) kernel_FreeBSD? ( || ( >=sys-freebsd/freebsd-lib-9.0 sys-libs/libutempter ) ) >=sys-libs/ncurses-5.7-r7 x11-apps/xmessage x11-libs/libX11 x11-libs/libXaw x11-libs/libXft x11-libs/libxkbfile x11-libs/libXmu x11-libs/libXrender x11-libs/libXt unicode? ( x11-apps/luit ) Xaw3d? ( x11-libs/libXaw3d ) virtual/pkgconfig x11-proto/kbproto x11-proto/xproto
|
||||
DESCRIPTION=Terminal Emulator for X Windows
|
||||
EAPI=5
|
||||
HOMEPAGE=http://invisible-island.net/xterm/
|
||||
IUSE=+openpty toolbar truetype unicode Xaw3d
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
LICENSE=MIT
|
||||
RDEPEND=kernel_linux? ( sys-libs/libutempter ) kernel_FreeBSD? ( || ( >=sys-freebsd/freebsd-lib-9.0 sys-libs/libutempter ) ) >=sys-libs/ncurses-5.7-r7 x11-apps/xmessage x11-libs/libX11 x11-libs/libXaw x11-libs/libXft x11-libs/libxkbfile x11-libs/libXmu x11-libs/libXrender x11-libs/libXt unicode? ( x11-apps/luit ) Xaw3d? ( x11-libs/libXaw3d ) media-fonts/font-misc-misc
|
||||
SLOT=0
|
||||
SRC_URI=ftp://invisible-island.net/xterm/xterm-314.tgz
|
||||
_eclasses_=eutils 998e5931fb95b10a6a11ec796ada2759 flag-o-matic c263990f1b677b0f0be0a3299f179762 multilib 3bf24e6abb9b76d9f6c20600f0b716bf toolchain-funcs 0dfbfa13f57c6184f4728d12ac002aac
|
||||
_md5_=a52ffb8ce7e74b870f9f825b618732e5
|
@ -1 +1 @@
|
||||
Fri, 23 Jan 2015 10:37:02 +0000
|
||||
Fri, 23 Jan 2015 17:07:04 +0000
|
||||
|
@ -1 +1 @@
|
||||
Fri Jan 23 10:36:58 UTC 2015
|
||||
Fri Jan 23 17:07:00 UTC 2015
|
||||
|
@ -1 +1 @@
|
||||
Fri, 23 Jan 2015 11:00:01 +0000
|
||||
Fri, 23 Jan 2015 17:30:01 +0000
|
||||
|
@ -1 +1 @@
|
||||
1422009301 Fri 23 Jan 2015 10:35:01 AM UTC UTC
|
||||
1422032701 Fri 23 Jan 2015 05:05:01 PM UTC UTC
|
||||
|
@ -0,0 +1,76 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/sci-biology/mira/mira-4.0.2.ebuild,v 1.1 2015/01/23 11:48:13 jlec Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
MIRA_3RDPARTY_PV="06-07-2012"
|
||||
MY_PV="${PV/_}" # convert from mira-4.0_rc2 (Gentoo ebuild filename derived) to mira-4.0rc2 (upstream fromat)
|
||||
|
||||
inherit autotools eutils multilib
|
||||
|
||||
DESCRIPTION="Whole Genome Shotgun and EST Sequence Assembler for Sanger, 454 and Solexa / Illumina"
|
||||
HOMEPAGE="http://www.chevreux.org/projects_mira.html"
|
||||
SRC_URI="
|
||||
http://sourceforge.net/projects/mira-assembler/files/MIRA/stable/"${PN}"-"${MY_PV}".tar.bz2
|
||||
mirror://sourceforge/mira-assembler/mira_3rdparty_${MIRA_3RDPARTY_PV}.tar.bz2"
|
||||
# http://sourceforge.net/projects/mira-assembler/files/MIRA/development/${P}.tar.bz2
|
||||
# mirror://sourceforge/mira-assembler/mira_3rdparty_${MIRA_3RDPARTY_PV}.tar.bz2"
|
||||
|
||||
S="${WORKDIR}"/"${PN}"-"${MY_PV}"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="GPL-2"
|
||||
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x86-macos"
|
||||
IUSE="doc"
|
||||
|
||||
CDEPEND="
|
||||
dev-libs/boost
|
||||
dev-util/google-perftools"
|
||||
DEPEND="${CDEPEND}
|
||||
app-editors/vim-core
|
||||
dev-libs/expat"
|
||||
RDEPEND="${CDEPEND}"
|
||||
|
||||
#DOCS=( AUTHORS GETTING_STARTED NEWS README HELP_WANTED
|
||||
# THANKS doc/3rdparty/scaffolding_MIRA_BAMBUS.pdf )
|
||||
DOCS=( AUTHORS GETTING_STARTED NEWS README HELP_WANTED THANKS )
|
||||
|
||||
src_prepare() {
|
||||
find -name 'configure*' -or -name 'Makefile*' | xargs sed -i 's/flex++/flex -+/' || die
|
||||
epatch \
|
||||
"${FILESDIR}"/${PN}-3.4.0.2-boost-1.50.patch
|
||||
|
||||
sed \
|
||||
-e "s:-O[23]::g" \
|
||||
-e "s:-funroll-loops::g" \
|
||||
-i configure.ac || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
--with-boost="${EPREFIX}/usr/$(get_libdir)" \
|
||||
--with-boost-libdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
--with-boost-thread=boost_thread-mt
|
||||
}
|
||||
|
||||
#src_compile() {
|
||||
# base_src_compile
|
||||
# # TODO: resolve docbook incompatibility for building docs
|
||||
# if use doc; then emake -C doc clean docs || die; fi
|
||||
#}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
dodoc ${DOCS[@]}
|
||||
|
||||
dobin "${WORKDIR}"/3rdparty/{sff_extract,qual2ball,*.pl}
|
||||
dodoc "${WORKDIR}"/3rdparty/{README.txt,midi_screen.fasta}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
einfo "Documentation is no longer built, you can find it at:"
|
||||
einfo "http://mira-assembler.sourceforge.net/docs/DefinitiveGuideToMIRA.html"
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/sys-block/ms-sys/ms-sys-2.5.0.ebuild,v 1.1 2015/01/23 13:55:12 mrueg Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="A command-line program for writing Microsoft compatible boot records"
|
||||
HOMEPAGE="http://ms-sys.sourceforge.net"
|
||||
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="linguas_sv"
|
||||
|
||||
DEPEND="sys-devel/gettext"
|
||||
RDEPEND="virtual/libintl"
|
||||
|
||||
src_compile() {
|
||||
tc-export CC
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local nls=""
|
||||
if ! use linguas_sv ; then
|
||||
nls='NLS_FILES='
|
||||
fi
|
||||
|
||||
emake DESTDIR="${D}" MANDIR="/usr/share/man" \
|
||||
PREFIX="/usr" ${nls} install
|
||||
|
||||
dodoc CHANGELOG CONTRIBUTORS FAQ README TODO
|
||||
}
|
@ -0,0 +1,92 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/x11-terms/xterm/xterm-314.ebuild,v 1.1 2015/01/23 11:30:37 chithanh Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils flag-o-matic multilib
|
||||
|
||||
DESCRIPTION="Terminal Emulator for X Windows"
|
||||
HOMEPAGE="http://invisible-island.net/xterm/"
|
||||
SRC_URI="ftp://invisible-island.net/${PN}/${P}.tgz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="+openpty toolbar truetype unicode Xaw3d"
|
||||
|
||||
COMMON_DEPEND="kernel_linux? ( sys-libs/libutempter )
|
||||
kernel_FreeBSD? ( || ( >=sys-freebsd/freebsd-lib-9.0 sys-libs/libutempter ) )
|
||||
>=sys-libs/ncurses-5.7-r7
|
||||
x11-apps/xmessage
|
||||
x11-libs/libX11
|
||||
x11-libs/libXaw
|
||||
x11-libs/libXft
|
||||
x11-libs/libxkbfile
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXt
|
||||
unicode? ( x11-apps/luit )
|
||||
Xaw3d? ( x11-libs/libXaw3d )"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
media-fonts/font-misc-misc"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
virtual/pkgconfig
|
||||
x11-proto/kbproto
|
||||
x11-proto/xproto"
|
||||
|
||||
DOCS=( README{,.i18n} ctlseqs.txt )
|
||||
|
||||
pkg_setup() {
|
||||
DEFAULTS_DIR="${EPREFIX}"/usr/share/X11/app-defaults
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# 454736
|
||||
# Workaround for ncurses[tinfo] until upstream fixes their buildsystem using
|
||||
# something sane like pkg-config or ncurses5-config and stops guessing libs
|
||||
# Everything gets linked against ncurses anyways, so don't shout
|
||||
append-libs $(pkg-config --libs ncurses)
|
||||
|
||||
econf \
|
||||
--libdir="${EPREFIX}"/etc \
|
||||
--disable-full-tgetent \
|
||||
--with-app-defaults="${DEFAULTS_DIR}" \
|
||||
--disable-setuid \
|
||||
--disable-setgid \
|
||||
--with-utempter \
|
||||
--with-x \
|
||||
$(use_with Xaw3d) \
|
||||
--disable-imake \
|
||||
--enable-256-color \
|
||||
--enable-broken-osc \
|
||||
--enable-broken-st \
|
||||
--enable-exec-xterm \
|
||||
$(use_enable truetype freetype) \
|
||||
--enable-i18n \
|
||||
--enable-load-vt-fonts \
|
||||
--enable-logging \
|
||||
$(use_enable openpty) \
|
||||
$(use_enable toolbar) \
|
||||
$(use_enable unicode mini-luit) \
|
||||
$(use_enable unicode luit) \
|
||||
--enable-wide-chars \
|
||||
--enable-dabbrev \
|
||||
--enable-warnings
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
dohtml xterm.log.html
|
||||
domenu *.desktop
|
||||
|
||||
# Fix permissions -- it grabs them from live system, and they can
|
||||
# be suid or sgid like they were in pre-unix98 pty or pre-utempter days,
|
||||
# respectively (#69510).
|
||||
# (info from Thomas Dickey) - Donnie Berkholz <spyderous@gentoo.org>
|
||||
fperms 0755 /usr/bin/xterm
|
||||
|
||||
# restore the navy blue
|
||||
sed -i -e "s:blue2$:blue:" "${D}${DEFAULTS_DIR}"/XTerm-color || die
|
||||
}
|
Loading…
Reference in new issue