From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Apr 5 16:10:02 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 2DF2E176 for ; Fri, 5 Apr 2013 16:10:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 1E7CFE5 for ; Fri, 5 Apr 2013 16:10:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r35GA1Q0093080 for ; Fri, 5 Apr 2013 16:10:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r35GA1xJ093079; Fri, 5 Apr 2013 16:10:01 GMT (envelope-from gnats) Date: Fri, 5 Apr 2013 16:10:01 GMT Message-Id: <201304051610.r35GA1xJ093079@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: Hirohisa Yamaguchi Subject: Re: ports/177626: Update port net/nbd-server to 3.2 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Hirohisa Yamaguchi List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Apr 2013 16:10:02 -0000 The following reply was made to PR ports/177626; it has been noted by GNATS. From: Hirohisa Yamaguchi To: gd@rambler-co.ru Cc: bug-followup@FreeBSD.ORG Subject: Re: ports/177626: Update port net/nbd-server to 3.2 Date: Sat, 06 Apr 2013 01:06:54 +0900 --Multipart_Sat_Apr__6_01:06:53_2013-1 Content-Type: text/plain; charset=US-ASCII I'm sorry, but my previous patch had an inverted condition. Here's an updated patch # I haven't succeed in running regression-test under redports.org, # it is run in IPv6 only environment. # There might be another problem. I've sent the same patch to upstream mailing list. Perhaps it will be applied. Regards, -- Hirohisa Yamaguchi umq@ueo.co.jp --Multipart_Sat_Apr__6_01:06:53_2013-1 Content-Type: application/octet-stream; type=patch Content-Disposition: attachment; filename="net_nbd-server-177626-1.patch" Content-Transfer-Encoding: 7bit M net/nbd-server/Makefile M net/nbd-server/distinfo D net/nbd-server/files/nbd.h A net/nbd-server/files/patch-cliserv.h M net/nbd-server/files/patch-nbd-server.c A net/nbd-server/files/patch-nbd-tester-client.c A net/nbd-server/files/patch-netdb-compat.h A net/nbd-server/files/patch-simple_test Index: net/nbd-server/Makefile =================================================================== --- net/nbd-server/Makefile (revision 315729) +++ net/nbd-server/Makefile (working copy) @@ -1,13 +1,12 @@ # Created by: Christian Laursen # $FreeBSD$ -PORTNAME= nbd-server -PORTVERSION= 2.8.5 -PORTREVISION= 1 +PORTNAME= nbd +PORTVERSION= 3.2 PORTEPOCH= 1 CATEGORIES= net -MASTER_SITES= SF/nbd/nbd/${PORTVERSION} -DISTNAME= nbd-${PORTVERSION} +MASTER_SITES= SF +PKGNAMESUFFIX= -server MAINTAINER= ports@FreeBSD.org COMMENT= Server for the Linux network block device (nbd) @@ -16,12 +15,14 @@ USE_GNOME= glib20 USE_PKGCONFIG= build GNU_CONFIGURE= yes -CONFIGURE_ARGS= --prefix=${PREFIX} --enable-lfs --enable-syslog +CONFIGURE_ARGS= --enable-lfs --enable-syslog -PLIST_FILES= bin/nbd-server -MAN1= nbd-server.1 +PLIST_FILES= bin/nbd-server bin/nbd-trdump +MAN1= nbd-server.1 nbd-trdump.1 +MAN5= nbd-server.5 +MAN8= nbd-client.8 -post-extract: - @${CP} ${FILESDIR}/nbd.h ${WRKSRC} +regression-test: build + cd ${WRKSRC} && ${MAKE} check .include Index: net/nbd-server/distinfo =================================================================== --- net/nbd-server/distinfo (revision 315729) +++ net/nbd-server/distinfo (working copy) @@ -1,2 +1,2 @@ -SHA256 (nbd-2.8.5.tar.bz2) = dc77166f086712fa0d1ff63997d487d99eaac238819b1aebff9a8fddfcc0b835 -SIZE (nbd-2.8.5.tar.bz2) = 151053 +SHA256 (nbd-3.2.tar.bz2) = e297c1883133f04a55d8e9527a2e4344e577a54046cf81694ffabe13f73793db +SIZE (nbd-3.2.tar.bz2) = 508734 Index: net/nbd-server/files/nbd.h =================================================================== --- net/nbd-server/files/nbd.h (revision 315729) +++ net/nbd-server/files/nbd.h (working copy) @@ -1,91 +0,0 @@ -/* - * 1999 Copyright (C) Pavel Machek, pavel@ucw.cz. This code is GPL. - * 1999/11/04 Copyright (C) 1999 VMware, Inc. (Regis "HPReg" Duchesne) - * Made nbd_end_request() use the io_request_lock - * 2001 Copyright (C) Steven Whitehouse - * New nbd_end_request() for compatibility with new linux block - * layer code. - * 2003/06/24 Louis D. Langholtz - * Removed unneeded blksize_bits field from nbd_device struct. - * Cleanup PARANOIA usage & code. - * 2004/02/19 Paul Clements - * Removed PARANOIA, plus various cleanup and comments - */ - -#ifndef LINUX_NBD_H -#define LINUX_NBD_H - -#define NBD_SET_SOCK _IO( 0xab, 0 ) -#define NBD_SET_BLKSIZE _IO( 0xab, 1 ) -#define NBD_SET_SIZE _IO( 0xab, 2 ) -#define NBD_DO_IT _IO( 0xab, 3 ) -#define NBD_CLEAR_SOCK _IO( 0xab, 4 ) -#define NBD_CLEAR_QUE _IO( 0xab, 5 ) -#define NBD_PRINT_DEBUG _IO( 0xab, 6 ) -#define NBD_SET_SIZE_BLOCKS _IO( 0xab, 7 ) -#define NBD_DISCONNECT _IO( 0xab, 8 ) - -enum { - NBD_CMD_READ = 0, - NBD_CMD_WRITE = 1, - NBD_CMD_DISC = 2 -}; - -#define nbd_cmd(req) ((req)->cmd[0]) -#define MAX_NBD 128 - -/* userspace doesn't need the nbd_device structure */ -#ifdef __KERNEL__ - -/* values for flags field */ -#define NBD_READ_ONLY 0x0001 -#define NBD_WRITE_NOCHK 0x0002 - -struct nbd_device { - int flags; - int harderror; /* Code of hard error */ - struct socket * sock; - struct file * file; /* If == NULL, device is not ready, yet */ - int magic; - spinlock_t queue_lock; - struct list_head queue_head;/* Requests are added here... */ - struct semaphore tx_lock; - struct gendisk *disk; - int blksize; - u64 bytesize; -}; - -#endif - -/* These are sent over the network in the request/reply magic fields */ - -#define NBD_REQUEST_MAGIC 0x25609513 -#define NBD_REPLY_MAGIC 0x67446698 -/* Do *not* use magics: 0x12560953 0x96744668. */ - -/* - * This is the packet used for communication between client and - * server. All data are in network byte order. - */ -struct nbd_request { - u32 magic; - u32 type; /* == READ || == WRITE */ - char handle[8]; - u64 from; - u32 len; -} -#ifdef __GNUC__ - __attribute__ ((packed)) -#endif -; - -/* - * This is the reply packet that nbd-server sends back to the client after - * it has completed an I/O request (or an error occurs). - */ -struct nbd_reply { - u32 magic; - u32 error; /* 0 = ok, else error */ - char handle[8]; /* handle you got from request */ -}; -#endif Index: net/nbd-server/files/patch-cliserv.h =================================================================== --- net/nbd-server/files/patch-cliserv.h (revision 0) +++ net/nbd-server/files/patch-cliserv.h (working copy) @@ -0,0 +1,11 @@ +--- ./cliserv.h.orig 2012-05-25 17:09:16.000000000 +0900 ++++ ./cliserv.h 2013-04-04 19:36:34.000000000 +0900 +@@ -15,6 +15,8 @@ + #include + #include + #include ++#include ++#include + + #if SIZEOF_UNSIGNED_SHORT_INT==4 + typedef unsigned short u32; Index: net/nbd-server/files/patch-nbd-server.c =================================================================== --- net/nbd-server/files/patch-nbd-server.c (revision 315729) +++ net/nbd-server/files/patch-nbd-server.c (working copy) @@ -1,18 +1,10 @@ -diff -urN nbd-2.8.3.orig/nbd-server.c nbd-2.8.3/nbd-server.c ---- nbd-2.8.3.orig/nbd-server.c Thu Dec 22 21:37:20 2005 -+++ nbd-server.c Sun Jan 8 16:45:30 2006 -@@ -363,12 +363,12 @@ - * is severely wrong) - **/ - void sigchld_handler(int s) { -- int* status=NULL; -+ int status; - int* i; - pid_t pid; - int done=0; - -- while(!done && (pid=wait(status)) > 0) { -+ while(!done && (pid=wait(&status)) > 0) { - if(WIFEXITED(status)) { - msg3(LOG_INFO, "Child exited with %d", WEXITSTATUS(status)); - msg3(LOG_INFO, "pid is %d", pid); +--- ./nbd-server.c.orig 2012-07-04 05:54:53.000000000 +0900 ++++ ./nbd-server.c 2013-04-04 19:36:34.000000000 +0900 +@@ -72,6 +72,7 @@ + #ifdef HAVE_SYS_MOUNT_H + #include + #endif ++#include + #include + #include + #include Index: net/nbd-server/files/patch-nbd-tester-client.c =================================================================== --- net/nbd-server/files/patch-nbd-tester-client.c (revision 0) +++ net/nbd-server/files/patch-nbd-tester-client.c (working copy) @@ -0,0 +1,116 @@ +--- ./nbd-tester-client.c.orig 2012-05-25 17:09:16.000000000 +0900 ++++ ./nbd-tester-client.c 2013-04-05 12:52:06.000000000 +0900 +@@ -336,9 +336,11 @@ + #define WRITE_ALL_ERR_RT(f, buf, len, whereto, rval, errmsg...) if((write_all(f, buf, len))<=0) { snprintf(errstr, errstr_len, ##errmsg); retval = rval; goto whereto; } + + int setup_connection(gchar *hostname, int port, gchar* name, CONNECTION_TYPE ctype, int* serverflags) { +- int sock; ++ int sock, sock6; ++ bool v4ok, v6ok; + struct hostent *host; + struct sockaddr_in addr; ++ struct sockaddr_in6 addr6; + char buf[256]; + uint64_t mymagic = (name ? opts_magic : cliserv_magic); + u64 tmp64; +@@ -347,21 +349,58 @@ + sock=0; + if(ctypeh_addr); ++ if((connect(sock, (struct sockaddr *)&addr, sizeof(addr))<0)) { ++ if (!v6ok) { ++ strncpy(errstr, strerror(errno), errstr_len); ++ goto err_open; ++ } else ++ v4ok = false; ++ } + } +- addr.sin_family=AF_INET; +- addr.sin_port=htons(port); +- addr.sin_addr.s_addr=*((int *) host->h_addr); +- if((connect(sock, (struct sockaddr *)&addr, sizeof(addr))<0)) { +- strncpy(errstr, strerror(errno), errstr_len); +- goto err_open; ++ if (!v4ok && v6ok) { ++ sock = sock6; ++ setmysockopt(sock); ++ if (!(host=gethostbyname2(hostname, AF_INET6))){ ++ strncpy(errstr, strerror(errno), errstr_len); ++ goto err_open; ++ } ++ memset((char *)&addr6, 0, sizeof(addr6)); ++ addr6.sin6_len=sizeof(addr6); ++ memcpy((char *)&addr6.sin6_addr, host->h_addr, host->h_length); ++ addr6.sin6_family = host->h_addrtype; ++ addr6.sin6_port = htons(port); ++ if ((connect(sock,(struct sockaddr *)&addr6, sizeof(addr6))<0)) { ++ strncpy(errstr, strerror(errno), errstr_len); ++ goto err_open; ++ } + } + if(ctype=0) { ++ while(optind