Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Dec 2006 09:25:51 GMT
From:      Volker Theile<votdev@gmx.de>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/106634: [NEW PORT] net/ushare: Lightweight UPnP (TM) A/V Media Server
Message-ID:  <200612120925.kBC9Ppf7077134@www.freebsd.org>
Resent-Message-ID: <200612120930.kBC9U23o037798@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         106634
>Category:       ports
>Synopsis:       [NEW PORT] net/ushare: Lightweight UPnP (TM) A/V Media Server
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 12 09:30:02 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Volker Theile
>Release:        FreeBSD 6.2-RC1 i386
>Organization:
>Environment:
FreeBSD 6.2-RC1 FreeBSD 6.2-RC1 #0: Thu Nov 16 05:01:36 UTC 2006

>Description:
GeeXboX uShare is a UPnP (TM) A/V Media Server. It implements the server
component that provides UPnP media devices with information on available
multimedia files. uShare uses the built-in http server of libupnp to stream
the files to clients.

WWW: http://ushare.geexbox.org/
>How-To-Repeat:

>Fix:
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	/usr/ports/net/ushare
#	/usr/ports/net/ushare/files
#	/usr/ports/net/ushare/files/patch-cfgparser.c
#	/usr/ports/net/ushare/files/patch-ushare.c
#	/usr/ports/net/ushare/distinfo
#	/usr/ports/net/ushare/Makefile
#	/usr/ports/net/ushare/pkg-descr
#
echo c - /usr/ports/net/ushare
mkdir -p /usr/ports/net/ushare > /dev/null 2>&1
echo c - /usr/ports/net/ushare/files
mkdir -p /usr/ports/net/ushare/files > /dev/null 2>&1
echo x - /usr/ports/net/ushare/files/patch-cfgparser.c
sed 's/^X//' >/usr/ports/net/ushare/files/patch-cfgparser.c << 'END-of-/usr/ports/net/ushare/files/patch-cfgparser.c'
X--- src/cfgparser_orig.c	Sun Nov 12 13:40:35 2006
X+++ src/cfgparser.c	Mon Dec 11 09:58:17 2006
X@@ -38,6 +38,50 @@
X 
X #define USHARE_DIR_DELIM ","
X 
X+#if (defined(__unix__) || defined(unix)) && !defined(USG)
X+char *strndup(const char *s, size_t n) {
X+  size_t len;
X+  char *sdup;
X+  if(!s)
X+    return NULL;
X+  len = strlen(s);
X+  len = (n < len ? n : len);
X+  sdup = (char *)malloc(len + 1);
X+  if(sdup) {
X+    memcpy(sdup, s, len);
X+    sdup[len] = '\0';
X+  }
X+  return sdup;
X+}
X+
X+ssize_t getline(char **lineptr, size_t *n, FILE *stream) {
X+  static char line[256];
X+  char *ptr;
X+  unsigned int len;
X+  if(lineptr == NULL || n == NULL) {
X+    return -1;
X+  }
X+  if(ferror(stream))
X+    return -1;
X+  if(feof(stream))
X+    return -1;
X+  fgets(line,256,stream);
X+  ptr = strchr(line,'\n');   
X+  if(ptr)
X+    *ptr = '\0';
X+  len = strlen(line);
X+  if((len+1) < 256) {
X+    ptr = realloc(*lineptr, 256);
X+    if(ptr == NULL)
X+      return(-1);
X+    *lineptr = ptr;
X+    *n = 256;
X+  }
X+  strcpy(*lineptr,line); 
X+  return(len);
X+}
X+#endif
X+
X static bool
X ignore_line (const char *line)
X {
END-of-/usr/ports/net/ushare/files/patch-cfgparser.c
echo x - /usr/ports/net/ushare/files/patch-ushare.c
sed 's/^X//' >/usr/ports/net/ushare/files/patch-ushare.c << 'END-of-/usr/ports/net/ushare/files/patch-ushare.c'
X--- src/ushare_orig.c	Sun Nov 12 13:40:35 2006
X+++ src/ushare.c	Mon Dec 11 09:59:04 2006
X@@ -33,6 +33,11 @@
X #include <unistd.h>
X #include <errno.h>
X #include <getopt.h>
X+#if (defined(__unix__) || defined(unix)) && !defined(USG)
X+#include <sys/socket.h>
X+#include <sys/sysctl.h>
X+#include <net/if_dl.h>
X+#endif
X #include <net/if.h>
X #include <sys/ioctl.h>
X #include <sys/types.h>
X@@ -346,6 +351,48 @@
X static char *
X create_udn (char *interface)
X {
X+#if (defined(__unix__) || defined(unix)) && !defined(USG)
X+  int mib[6], len;
X+  char *buf;
X+  unsigned char *ptr;
X+  struct if_msghdr *ifm;
X+  struct sockaddr_dl *sdl;
X+  
X+  mib[0] = CTL_NET;
X+  mib[1] = AF_ROUTE;
X+  mib[2] = 0;
X+  mib[3] = AF_LINK;
X+  mib[4] = NET_RT_IFLIST;
X+  if((mib[5] = if_nametoindex(interface)) == 0) {
X+    perror("if_nametoindex error");
X+    exit(2);
X+  }
X+
X+  if(sysctl(mib, 6, NULL, &len, NULL, 0) < 0) {
X+    perror("sysctl 1 error");
X+    exit(3);
X+  }
X+
X+  if((buf = malloc(len)) == NULL) {
X+    perror("malloc error");
X+    exit(4);
X+  }
X+
X+  if(sysctl(mib, 6, buf, &len, NULL, 0) < 0) {
X+    perror("sysctl 2 error");
X+    exit(5);
X+  }
X+
X+  ifm = (struct if_msghdr *)buf;
X+  sdl = (struct sockaddr_dl *)(ifm + 1);
X+  ptr = (unsigned char *)LLADDR(sdl);
X+
X+  snprintf(buf, 64, "%02X%02X%02X%02X%02X%02X",
X+    (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377),
X+    (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377));
X+
X+  return buf;
X+#else
X   int sock;
X   struct ifreq ifr;
X   char *buf;
X@@ -382,6 +429,7 @@
X   close (sock);
X 
X   return buf;
X+#endif
X }
X 
X static char *
END-of-/usr/ports/net/ushare/files/patch-ushare.c
echo x - /usr/ports/net/ushare/distinfo
sed 's/^X//' >/usr/ports/net/ushare/distinfo << 'END-of-/usr/ports/net/ushare/distinfo'
XMD5 (ushare-0.9.8.tar.bz2) = dec4c12d97d476c9a3a0347621d64e27
XSHA256 (ushare-0.9.8.tar.bz2) = 4419a3fdb894fbdbdbf19706065fb2df00528c2087e53819c28a353c5d33bde9
XSIZE (ushare-0.9.8.tar.bz2) = 162404
END-of-/usr/ports/net/ushare/distinfo
echo x - /usr/ports/net/ushare/Makefile
sed 's/^X//' >/usr/ports/net/ushare/Makefile << 'END-of-/usr/ports/net/ushare/Makefile'
X# New ports collection makefile for:   ushare
X# Date created:        11 December 2006
X# Whom:                Volker Theile <votdev@gmx.de>
X#
X# $FreeBSD$
X#
X
XPORTNAME=ushare
XPORTVERSION=0.9.8
XCATEGORIES=net
XMASTER_SITES=http://ushare.geexbox.org/releases/
XEXTRACT_SUFX=.tar.bz2
X
XMAINTAINER=votdev@gmx.de
XCOMMENT=Lightweight UPnP (TM) A/V Media Server
X
XLIB_DEPENDS+=upnp:${PORTSDIR}/devel/upnp
X
XPLIST_FILES+=bin/${PORTNAME}
XPLIST_FILES+=etc/${PORTNAME}.conf
XMAN1+=${PORTNAME}.1
X
Xpre-build:
X	cd ${WRKSRC} && CFLAGS="-Os" ./configure --prefix=/usr
X
X.include <bsd.port.pre.mk>
X
Xdo-install:
X	${INSTALL_PROGRAM} ${WRKSRC}/src/${PORTNAME} ${PREFIX}/bin
X	${INSTALL_MAN} ${WRKSRC}/src/${PORTNAME}.1 ${PREFIX}/man/man1
X	${INSTALL_DATA} ${WRKSRC}/scripts/ushare.conf ${PREFIX}/etc
X
X.include <bsd.port.post.mk>
END-of-/usr/ports/net/ushare/Makefile
echo x - /usr/ports/net/ushare/pkg-descr
sed 's/^X//' >/usr/ports/net/ushare/pkg-descr << 'END-of-/usr/ports/net/ushare/pkg-descr'
XGeeXboX uShare is a UPnP (TM) A/V Media Server. It implements the server
Xcomponent that provides UPnP media devices with information on available
Xmultimedia files. uShare uses the built-in http server of libupnp to stream
Xthe files to clients.
X
XWWW: http://ushare.geexbox.org/
END-of-/usr/ports/net/ushare/pkg-descr
exit


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200612120925.kBC9Ppf7077134>