rpms/live555/devel live-getaddrinfo.patch, NONE, 1.1 live-inet_ntop.patch, NONE, 1.1 live-uselocale.patch, NONE, 1.1 live555.spec, 1.9, 1.10
by Nicolas Chauvet
Author: kwizart
Update of /cvs/free/rpms/live555/devel
In directory se02.es.rpmfusion.net:/tmp/cvs-serv6991
Modified Files:
live555.spec
Added Files:
live-getaddrinfo.patch live-inet_ntop.patch
live-uselocale.patch
Log Message:
- Update to 2010.04.09
- Add patches from Rémi Denis-Courmont - provided as GPLv2+
- Distribute live555 as GPLv2+
live-getaddrinfo.patch:
GroupsockHelper.cpp | 20 ++++++++++-------
NetAddress.cpp | 60 ++++++++++++++++++++++++----------------------------
inet.c | 10 --------
3 files changed, 40 insertions(+), 50 deletions(-)
--- NEW FILE live-getaddrinfo.patch ---
Copyright (C) 2010 Rémi Denis-Courmont.
Licensed under GNU General Public License version 2 or higher.
diff -ru live.orig//groupsock/GroupsockHelper.cpp live//groupsock/GroupsockHelper.cpp
--- live.orig//groupsock/GroupsockHelper.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//groupsock/GroupsockHelper.cpp 2010-04-17 20:18:11.000000000 +0300
@@ -625,25 +625,29 @@
#include <hostLib.h>
if (ERROR == (ourAddress = hostGetByName( hostname ))) break;
#else
- struct hostent* hstent
- = (struct hostent*)gethostbyname(hostname);
- if (hstent == NULL || hstent->h_length != 4) {
- env.setResultErrMsg("initial gethostbyname() failed");
+ struct addrinfo hints, *res;
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = AF_INET;
+ hints.ai_socktype = SOCK_DGRAM;
+ hints.ai_protocol = IPPROTO_UDP;
+ if (getaddrinfo(hostname, NULL, &hints, &res)) {
+ env.setResultErrMsg("initial getaddrinfo() failed");
break;
}
// Take the first address that's not bad
// (This code, like many others, won't handle IPv6)
netAddressBits addr = 0;
- for (unsigned i = 0; ; ++i) {
- char* addrPtr = hstent->h_addr_list[i];
- if (addrPtr == NULL) break;
+ for (const struct addrinfo *p = res; p; p = p->ai_next) {
+ const struct in_addr in =
+ ((const struct sockaddr_in *)p->ai_addr)->sin_addr;
- netAddressBits a = *(netAddressBits*)addrPtr;
+ netAddressBits a = in.s_addr;
if (!badAddress(a)) {
addr = a;
break;
}
}
+ freeaddrinfo(res);
if (addr != 0) {
fromAddr.sin_addr.s_addr = addr;
} else {
diff -ru live.orig//groupsock/inet.c live//groupsock/inet.c
--- live.orig//groupsock/inet.c 2010-04-09 22:27:39.000000000 +0300
+++ live//groupsock/inet.c 2010-04-17 20:14:07.000000000 +0300
@@ -83,16 +83,6 @@
#define NULL 0
#endif
-#if !defined(VXWORKS)
-struct hostent* our_gethostbyname(name)
- char* name;
-{
- if (!initializeWinsockIfNecessary()) return NULL;
-
- return (struct hostent*) gethostbyname(name);
-}
-#endif
-
#ifndef USE_OUR_RANDOM
/* Use the system-supplied "random()" and "srandom()" functions */
#include <stdlib.h>
diff -ru live.orig//groupsock/NetAddress.cpp live//groupsock/NetAddress.cpp
--- live.orig//groupsock/NetAddress.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//groupsock/NetAddress.cpp 2010-04-17 20:13:29.000000000 +0300
@@ -83,15 +83,12 @@
NetAddressList::NetAddressList(char const* hostname)
: fNumAddresses(0), fAddressArray(NULL) {
- struct hostent* host;
+
+ struct addrinfo *res;
// Check first whether "hostname" is an IP address string:
netAddressBits addr = our_inet_addr((char*)hostname);
if (addr != INADDR_NONE) { // yes it was an IP address string
- //##### host = gethostbyaddr((char*)&addr, sizeof (netAddressBits), AF_INET);
- host = NULL; // don't bother calling gethostbyaddr(); we only want 1 addr
-
- if (host == NULL) {
// For some unknown reason, gethostbyaddr() failed, so just
// return a 1-element list with the address we were given:
fNumAddresses = 1;
@@ -101,41 +98,40 @@
fAddressArray[0] = new NetAddress((u_int8_t*)&addr,
sizeof (netAddressBits));
return;
- }
} else { // Try resolving "hostname" as a real host name
-#if defined(VXWORKS)
- char hostentBuf[512];
- host = (struct hostent*)resolvGetHostByName((char*)hostname,(char*)&hostentBuf,sizeof hostentBuf);
-#else
- host = our_gethostbyname((char*)hostname);
-#endif
+ struct addrinfo hints;
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = AF_INET;
+ hints.ai_socktype = SOCK_DGRAM; /* be sure to not get dups! */
+ hints.ai_protocol = IPPROTO_UDP;
- if (host == NULL) {
+ if (getaddrinfo(hostname, NULL, &hints, &res))
// It was a host name, and we couldn't resolve it. We're SOL.
return;
- }
}
- u_int8_t const** const hAddrPtr
- = (u_int8_t const**)host->h_addr_list;
- if (hAddrPtr != NULL) {
- // First, count the number of addresses:
- u_int8_t const** hAddrPtr1 = hAddrPtr;
- while (*hAddrPtr1 != NULL) {
- ++fNumAddresses;
- ++hAddrPtr1;
- }
-
- // Next, set up the list:
- fAddressArray = new NetAddress*[fNumAddresses];
- if (fAddressArray == NULL) return;
-
- for (unsigned i = 0; i < fNumAddresses; ++i) {
- fAddressArray[i]
- = new NetAddress(hAddrPtr[i], host->h_length);
- }
+ // First, count the number of addresses:
+ for (const struct addrinfo *p = res; p; p = p->ai_next)
+ fNumAddresses++;
+
+ // Next, set up the list:
+ fAddressArray = new NetAddress*[fNumAddresses];
+
+ unsigned i = 0;
+ for (const struct addrinfo *p = res; p; p = p->ai_next) {
+ union
+ {
+ struct in_addr ip4;
+ uint8_t b[4];
+ } buf;
+ const struct sockaddr_in *sin =
+ (const struct sockaddr_in *)p->ai_addr;
+
+ buf.ip4 = sin->sin_addr;
+ fAddressArray[i++] = new NetAddress(buf.b, 4);
}
+ freeaddrinfo(res);
}
NetAddressList::NetAddressList(NetAddressList const& orig) {
live-inet_ntop.patch:
groupsock/Groupsock.cpp | 9 ++++++---
groupsock/include/GroupsockHelper.hh | 2 +-
groupsock/inet.c | 28 ++++++++++------------------
liveMedia/DarwinInjector.cpp | 3 ++-
liveMedia/OnDemandServerMediaSubsession.cpp | 5 +++--
liveMedia/PassiveServerMediaSubsession.cpp | 5 +++--
liveMedia/RTCP.cpp | 3 ++-
liveMedia/RTSPOverHTTPServer.cpp | 3 ++-
liveMedia/RTSPServer.cpp | 19 ++++++++++++-------
liveMedia/SIPClient.cpp | 7 ++++---
liveMedia/ServerMediaSession.cpp | 5 +++--
testProgs/sapWatch.cpp | 5 +++--
12 files changed, 51 insertions(+), 43 deletions(-)
--- NEW FILE live-inet_ntop.patch ---
Copyright (C) 2010 Rémi Denis-Courmont.
Licensed under GNU General Public License version 2 or higher.
diff -ru live.orig//groupsock/Groupsock.cpp live//groupsock/Groupsock.cpp
--- live.orig//groupsock/Groupsock.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//groupsock/Groupsock.cpp 2010-04-17 19:51:07.000000000 +0300
@@ -331,8 +331,10 @@
}
}
if (DebugLevel >= 3) {
+ char buf[16];
+
env() << *this << ": read " << bytesRead << " bytes from ";
- env() << our_inet_ntoa(fromAddress.sin_addr);
+ env() << our_inet_ntoa(fromAddress.sin_addr, buf);
if (numMembers > 0) {
env() << "; relayed to " << numMembers << " members";
}
@@ -441,13 +443,14 @@
}
UsageEnvironment& operator<<(UsageEnvironment& s, const Groupsock& g) {
+ char buf[16];
UsageEnvironment& s1 = s << timestampString() << " Groupsock("
<< g.socketNum() << ": "
- << our_inet_ntoa(g.groupAddress())
+ << our_inet_ntoa(g.groupAddress(), buf)
<< ", " << g.port() << ", ";
if (g.isSSM()) {
return s1 << "SSM source: "
- << our_inet_ntoa(g.sourceFilterAddress()) << ")";
+ << our_inet_ntoa(g.sourceFilterAddress(), buf) << ")";
} else {
return s1 << (unsigned)(g.ttl()) << ")";
}
diff -ru live.orig//groupsock/include/GroupsockHelper.hh live//groupsock/include/GroupsockHelper.hh
--- live.orig//groupsock/include/GroupsockHelper.hh 2010-04-09 22:27:39.000000000 +0300
+++ live//groupsock/include/GroupsockHelper.hh 2010-04-17 19:43:44.000000000 +0300
@@ -124,7 +124,7 @@
// The following are implemented in inet.c:
extern "C" netAddressBits our_inet_addr(char const*);
-extern "C" char* our_inet_ntoa(struct in_addr);
+extern "C" char* our_inet_ntoa(struct in_addr, char *);
extern "C" struct hostent* our_gethostbyname(char* name);
extern "C" void our_srandom(int x);
extern "C" long our_random();
diff -ru live.orig//groupsock/inet.c live//groupsock/inet.c
--- live.orig//groupsock/inet.c 2010-04-09 22:27:39.000000000 +0300
+++ live//groupsock/inet.c 2010-04-17 19:42:52.000000000 +0300
@@ -21,26 +21,18 @@
}
char *
-our_inet_ntoa(in)
- struct in_addr in;
+our_inet_ntoa(in, result)
+ struct in_addr in;
+ char *result;
{
-#ifndef VXWORKS
- return inet_ntoa(in);
+#ifdef WIN32
+ char *ret = inet_ntoa(in);
+ if(ret != NULL)
+ strncpy(result, ret, 16);
+ return ret;
+#elif !defined (VXWORKS)
+ return inet_ntop(AF_INET, &in, result, 16);
#else
- /* according the man pages of inet_ntoa :
-
- NOTES
- The return value from inet_ntoa() points to a buffer which
- is overwritten on each call. This buffer is implemented as
- thread-specific data in multithreaded applications.
-
- the vxworks version of inet_ntoa allocates a buffer for each
- ip address string, and does not reuse the same buffer.
-
- this is merely to simulate the same behaviour (not multithread
- safe though):
- */
- static char result[INET_ADDR_LEN];
inet_ntoa_b(in, result);
return(result);
#endif
diff -ru live.orig//liveMedia/DarwinInjector.cpp live//liveMedia/DarwinInjector.cpp
--- live.orig//liveMedia/DarwinInjector.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//liveMedia/DarwinInjector.cpp 2010-04-17 19:45:19.000000000 +0300
@@ -128,7 +128,8 @@
NetAddress const* address = addresses.firstAddress();
addr.s_addr = *(unsigned*)(address->data());
}
- char const* remoteRTSPServerAddressStr = our_inet_ntoa(addr);
+ char buf[16];
+ char const* remoteRTSPServerAddressStr = our_inet_ntoa(addr, buf);
// Construct a SDP description for the session that we'll be streaming:
char const* const sdpFmt =
diff -ru live.orig//liveMedia/OnDemandServerMediaSubsession.cpp live//liveMedia/OnDemandServerMediaSubsession.cpp
--- live.orig//liveMedia/OnDemandServerMediaSubsession.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//liveMedia/OnDemandServerMediaSubsession.cpp 2010-04-17 19:50:05.000000000 +0300
@@ -365,7 +365,8 @@
char const* mediaType = rtpSink->sdpMediaType();
unsigned char rtpPayloadType = rtpSink->rtpPayloadType();
struct in_addr serverAddrForSDP; serverAddrForSDP.s_addr = fServerAddressForSDP;
- char* const ipAddressStr = strDup(our_inet_ntoa(serverAddrForSDP));
+ char ipAddressStr[16];
+ our_inet_ntoa(serverAddrForSDP, ipAddressStr);
char* rtpmapLine = rtpSink->rtpmapLine();
char const* rangeLine = rangeSDPLine();
char const* auxSDPLine = getAuxSDPLine(rtpSink, inputSource);
@@ -398,7 +399,7 @@
rangeLine, // a=range:... (if present)
auxSDPLine, // optional extra SDP line
trackId()); // a=control:<track-id>
- delete[] (char*)rangeLine; delete[] rtpmapLine; delete[] ipAddressStr;
+ delete[] (char*)rangeLine; delete[] rtpmapLine;
fSDPLines = strDup(sdpLines);
delete[] sdpLines;
diff -ru live.orig//liveMedia/PassiveServerMediaSubsession.cpp live//liveMedia/PassiveServerMediaSubsession.cpp
--- live.orig//liveMedia/PassiveServerMediaSubsession.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//liveMedia/PassiveServerMediaSubsession.cpp 2010-04-17 19:46:28.000000000 +0300
@@ -54,7 +54,8 @@
char const* auxSDPLine = fRTPSink.auxSDPLine();
if (auxSDPLine == NULL) auxSDPLine = "";
- char* const ipAddressStr = strDup(our_inet_ntoa(ipAddress));
+ char ipAddressStr[16];
+ our_inet_ntoa(ipAddress, ipAddressStr);
char const* const sdpFmt =
"m=%s %d RTP/AVP %d\r\n"
@@ -84,7 +85,7 @@
rangeLine, // a=range:... (if present)
auxSDPLine, // optional extra SDP line
trackId()); // a=control:<track-id>
- delete[] ipAddressStr; delete[] (char*)rangeLine; delete[] rtpmapLine;
+ delete[] (char*)rangeLine; delete[] rtpmapLine;
fSDPLines = strDup(sdpLines);
delete[] sdpLines;
diff -ru live.orig//liveMedia/RTCP.cpp live//liveMedia/RTCP.cpp
--- live.orig//liveMedia/RTCP.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//liveMedia/RTCP.cpp 2010-04-17 19:46:44.000000000 +0300
@@ -359,7 +359,8 @@
}
#ifdef DEBUG
- fprintf(stderr, "[%p]saw incoming RTCP packet (from address %s, port %d)\n", this, our_inet_ntoa(fromAddress.sin_addr), ntohs(fromAddress.sin_port));
+ char buf[16];
+ fprintf(stderr, "[%p]saw incoming RTCP packet (from address %s, port %d)\n", this, our_inet_ntoa(fromAddress.sin_addr, buf), ntohs(fromAddress.sin_port));
unsigned char* p = pkt;
for (unsigned i = 0; i < packetSize; ++i) {
if (i%4 == 0) fprintf(stderr, " ");
diff -ru live.orig//liveMedia/RTSPOverHTTPServer.cpp live//liveMedia/RTSPOverHTTPServer.cpp
--- live.orig//liveMedia/RTSPOverHTTPServer.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//liveMedia/RTSPOverHTTPServer.cpp 2010-04-17 19:50:41.000000000 +0300
@@ -128,7 +128,8 @@
makeSocketNonBlocking(clientSocket);
increaseSendBufferTo(envir(), clientSocket, 50*1024);
#if defined(DEBUG) || defined(DEBUG_CONNECTIONS)
- fprintf(stderr, "accept()ed connection from %s\n", our_inet_ntoa(clientAddr.sin_addr));
+ char buf[16];
+ fprintf(stderr, "accept()ed connection from %s\n", our_inet_ntoa(clientAddr.sin_addr, buf));
#endif
// Create a new object for handling this HTTP connection:
diff -ru live.orig//liveMedia/RTSPServer.cpp live//liveMedia/RTSPServer.cpp
--- live.orig//liveMedia/RTSPServer.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//liveMedia/RTSPServer.cpp 2010-04-17 19:49:32.000000000 +0300
@@ -112,11 +112,12 @@
char urlBuffer[100]; // more than big enough for "rtsp://<ip-address>:<port>/"
portNumBits portNumHostOrder = ntohs(fServerPort.num());
+ char buf[16];
if (portNumHostOrder == 554 /* the default port number */) {
- sprintf(urlBuffer, "rtsp://%s/", our_inet_ntoa(ourAddress.sin_addr));
+ sprintf(urlBuffer, "rtsp://%s/", our_inet_ntoa(ourAddress.sin_addr, buf));
} else {
sprintf(urlBuffer, "rtsp://%s:%hu/",
- our_inet_ntoa(ourAddress.sin_addr), portNumHostOrder);
+ our_inet_ntoa(ourAddress.sin_addr, buf), portNumHostOrder);
}
return strDup(urlBuffer);
@@ -233,7 +234,8 @@
increaseSendBufferTo(envir(), clientSocket, 50*1024);
#if defined(DEBUG) || defined(DEBUG_CONNECTIONS)
- envir() << "accept()ed connection from " << our_inet_ntoa(clientAddr.sin_addr) << '\n';
+ char buf[16];
+ envir() << "accept()ed connection from " << our_inet_ntoa(clientAddr.sin_addr, buf) << '\n';
#endif
// Create a new object for this RTSP session.
@@ -747,10 +749,12 @@
serverRTPPort, serverRTCPPort,
fStreamStates[streamNum].streamToken);
struct in_addr destinationAddr; destinationAddr.s_addr = destinationAddress;
- char* destAddrStr = strDup(our_inet_ntoa(destinationAddr));
+ char destAddrStr[16];
+ our_inet_ntoa(destinationAddr, destAddrStr);
struct sockaddr_in sourceAddr; SOCKLEN_T namelen = sizeof sourceAddr;
getsockname(fClientSocket, (struct sockaddr*)&sourceAddr, &namelen);
- char* sourceAddrStr = strDup(our_inet_ntoa(sourceAddr.sin_addr));
+ char sourceAddrStr[16];
+ our_inet_ntoa(sourceAddr.sin_addr, sourceAddrStr);
if (fIsMulticast) {
switch (streamingMode) {
case RTP_UDP:
@@ -825,7 +829,7 @@
}
}
}
- delete[] destAddrStr; delete[] sourceAddrStr; delete[] streamingModeString;
+ delete[] streamingModeString;
}
void RTSPServer::RTSPClientSession
@@ -1226,7 +1230,8 @@
// If this gets called, the client session is assumed to have timed out,
// so delete it:
#ifdef DEBUG
- fprintf(stderr, "RTSP client session from %s has timed out (due to inactivity)\n", our_inet_ntoa(clientSession->fClientAddr.sin_addr));
+ char buf[16];
+ fprintf(stderr, "RTSP client session from %s has timed out (due to inactivity)\n", our_inet_ntoa(clientSession->fClientAddr.sin_addr, buf));
#endif
delete clientSession;
}
diff -ru live.orig//liveMedia/ServerMediaSession.cpp live//liveMedia/ServerMediaSession.cpp
--- live.orig//liveMedia/ServerMediaSession.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//liveMedia/ServerMediaSession.cpp 2010-04-17 19:50:31.000000000 +0300
@@ -185,7 +185,8 @@
char* ServerMediaSession::generateSDPDescription() {
struct in_addr ipAddress;
ipAddress.s_addr = ourIPAddress(envir());
- char* const ipAddressStr = strDup(our_inet_ntoa(ipAddress));
+ char ipAddressStr[16];
+ our_inet_ntoa(ipAddress, ipAddressStr);
unsigned ipAddressStrSize = strlen(ipAddressStr);
// For a SSM sessions, we need a "a=source-filter: incl ..." line also:
@@ -281,7 +282,7 @@
}
} while (0);
- delete[] rangeLine; delete[] sourceFilterLine; delete[] ipAddressStr;
+ delete[] rangeLine; delete[] sourceFilterLine;
return sdp;
}
diff -ru live.orig//liveMedia/SIPClient.cpp live//liveMedia/SIPClient.cpp
--- live.orig//liveMedia/SIPClient.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//liveMedia/SIPClient.cpp 2010-04-17 19:47:42.000000000 +0300
@@ -60,13 +60,14 @@
struct in_addr ourAddress;
ourAddress.s_addr = ourIPAddress(env); // hack
- fOurAddressStr = strDup(our_inet_ntoa(ourAddress));
+ char buf[16];
+ fOurAddressStr = strDup(our_inet_ntoa(ourAddress, buf));
fOurAddressStrSize = strlen(fOurAddressStr);
fOurSocket = new Groupsock(env, ourAddress, 0, 255);
if (fOurSocket == NULL) {
env << "ERROR: Failed to create socket for addr "
- << our_inet_ntoa(ourAddress) << ": "
+ << our_inet_ntoa(ourAddress, buf) << ": "
<< env.getResultMsg() << "\n";
}
@@ -84,7 +85,7 @@
fOurSocket = new Groupsock(env, ourAddress, fOurPortNum, 255);
if (fOurSocket == NULL) {
env << "ERROR: Failed to create socket for addr "
- << our_inet_ntoa(ourAddress) << ", port "
+ << our_inet_ntoa(ourAddress, buf) << ", port "
<< fOurPortNum << ": "
<< env.getResultMsg() << "\n";
}
diff -ru live.orig//testProgs/sapWatch.cpp live//testProgs/sapWatch.cpp
--- live.orig//testProgs/sapWatch.cpp 2010-04-09 22:27:39.000000000 +0300
+++ live//testProgs/sapWatch.cpp 2010-04-17 19:51:29.000000000 +0300
@@ -49,13 +49,14 @@
struct sockaddr_in fromAddress;
while (inputGroupsock.handleRead(packet, maxPacketSize,
packetSize, fromAddress)) {
+ char buf[16];
printf("\n[packet from %s (%d bytes)]\n",
- our_inet_ntoa(fromAddress.sin_addr), packetSize);
+ our_inet_ntoa(fromAddress.sin_addr, buf), packetSize);
// Ignore the first 8 bytes (SAP header).
if (packetSize < 8) {
*env << "Ignoring short packet from "
- << our_inet_ntoa(fromAddress.sin_addr) << "%s!\n";
+ << our_inet_ntoa(fromAddress.sin_addr, buf) << "%s!\n";
continue;
}
live-uselocale.patch:
Locale.cpp | 13 ++++++-------
RTSPClient.cpp | 8 ++++----
RTSPCommon.cpp | 2 +-
include/Locale.hh | 17 ++++++++++-------
4 files changed, 21 insertions(+), 19 deletions(-)
--- NEW FILE live-uselocale.patch ---
Copyright (C) 2008 Rémi Denis-Courmont, adaptation by Felix Kühne (C) 2009.
Licensed under GNU General Public License version 2 or higher.
diff -urN live.orig/liveMedia/include/Locale.hh live/liveMedia/include/Locale.hh
--- live.orig/liveMedia/include/Locale.hh 2009-03-23 01:26:16 +0300
+++ live/liveMedia/include/Locale.hh 2009-03-26 19:17:43 +0300
@@ -27,23 +27,26 @@
#ifndef LOCALE_NOT_USED
#include <locale.h>
+#ifdef __APPLE__
+#include <xlocale.h>
+#endif
#else
-#ifndef LC_ALL
-#define LC_ALL 0
+#ifndef LC_ALL_MASK
+#define LC_ALL_MASK 0
#endif
-#ifndef LC_NUMERIC
-#define LC_NUMERIC 4
+#ifndef LC_NUMERIC_MASK
+#define LC_NUMERIC_MASK 0
#endif
+typedef int locale_t;
#endif
class Locale {
public:
- Locale(char const* newLocale, int category = LC_ALL);
+ Locale(char const* newLocale, int category = LC_ALL_MASK);
virtual ~Locale();
private:
- int fCategory;
- char* fPrevLocale;
+ locale_t fLocale, fPrevLocale;
};
#endif
diff -urN live.orig/liveMedia/Locale.cpp live/liveMedia/Locale.cpp
--- live.orig/liveMedia/Locale.cpp 2009-03-23 01:26:16 +0300
+++ live/liveMedia/Locale.cpp 2009-03-26 19:17:43 +0300
@@ -22,19 +22,18 @@
#include "Locale.hh"
#include <strDup.hh>
-Locale::Locale(char const* newLocale, int category)
- : fCategory(category) {
+Locale::Locale(char const* newLocale, int category) {
#ifndef LOCALE_NOT_USED
- fPrevLocale = strDup(setlocale(category, NULL));
- setlocale(category, newLocale);
+ fLocale = newlocale(category, newLocale, NULL);
+ fPrevLocale = uselocale(fLocale);
#endif
}
Locale::~Locale() {
#ifndef LOCALE_NOT_USED
- if (fPrevLocale != NULL) {
- setlocale(fCategory, fPrevLocale);
- delete[] fPrevLocale;
+ if (fLocale != (locale_t)0) {
+ uselocale(fPrevLocale);
+ freelocale(fLocale);
}
#endif
}
diff -urN live.orig/liveMedia/RTSPClient.cpp live/liveMedia/RTSPClient.cpp
--- live.orig/liveMedia/RTSPClient.cpp 2009-03-23 01:26:16 +0300
+++ live/liveMedia/RTSPClient.cpp 2009-03-26 19:29:38 +0300
@@ -1019,7 +1019,7 @@
// This is the default value; we don't need a "Scale:" header:
buf[0] = '\0';
} else {
- Locale l("C", LC_NUMERIC);
+ Locale l("C", LC_NUMERIC_MASK);
sprintf(buf, "Scale: %f\r\n", scale);
}
@@ -1033,11 +1033,11 @@
buf[0] = '\0';
} else if (end < 0) {
// There's no end time:
- Locale l("C", LC_NUMERIC);
+ Locale l("C", LC_NUMERIC_MASK);
sprintf(buf, "Range: npt=%.3f-\r\n", start);
} else {
// There's both a start and an end time; include them both in the "Range:" hdr
- Locale l("C", LC_NUMERIC);
+ Locale l("C", LC_NUMERIC_MASK);
sprintf(buf, "Range: npt=%.3f-%.3f\r\n", start, end);
}
@@ -2342,7 +2342,7 @@
if (_strncasecmp(line, "Scale: ", 7) != 0) return False;
line += 7;
- Locale l("C", LC_NUMERIC);
+ Locale l("C", LC_NUMERIC_MASK);
return sscanf(line, "%f", &scale) == 1;
}
diff -urN live.orig/liveMedia/RTSPCommon.cpp live/liveMedia/RTSPCommon.cpp
--- live.orig/liveMedia/RTSPCommon.cpp 2009-03-23 01:26:16 +0300
+++ live/liveMedia/RTSPCommon.cpp 2009-03-26 19:23:25 +0300
@@ -146,7 +146,7 @@
char const* fields = buf + 7;
while (*fields == ' ') ++fields;
double start, end;
- Locale l("C", LC_NUMERIC);
+ Locale l("C", LC_NUMERIC_MASK);
if (sscanf(fields, "npt = %lf - %lf", &start, &end) == 2) {
rangeStart = start;
rangeEnd = end;
Index: live555.spec
===================================================================
RCS file: /cvs/free/rpms/live555/devel/live555.spec,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- live555.spec 28 Jan 2010 19:44:57 -0000 1.9
+++ live555.spec 1 May 2010 15:16:55 -0000 1.10
@@ -1,16 +1,20 @@
-%global date 2010.01.22
+%global date 2010.04.09
%global live_soversion 0
Name: live555
Version: 0
-Release: 0.26.%{date}%{?dist}
+Release: 0.27.%{date}%{?dist}
Summary: Live555.com streaming libraries
Group: System Environment/Libraries
-License: LGPLv2+
+License: LGPLv2+ and GPLv2+
URL: http://live555.com/liveMedia/
Source0: http://live555.com/liveMedia/public/live.%{date}.tar.gz
Patch0: live.2010.01.16-shared.patch
+#Thoses patches are Copyright Rémi Denis-Courmont - provided as GPLv2+
+Patch1: live-getaddrinfo.patch
+Patch2: live-inet_ntop.patch
+Patch3: live-uselocale.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
@@ -80,6 +84,9 @@
%setup -q -n live
install -pm 0644 config.linux config.linux.static
%patch0 -p1 -b .shared
+%patch1 -p1 -b .vlc1
+%patch2 -p1 -b .vlc2
+%patch3 -p1 -b .vlc3
%build
@@ -171,6 +178,11 @@
%{_libdir}/libUsageEnvironment*.a
%changelog
+* Sat May 1 2010 Nicolas Chauvet <kwizart(a)fedoraproject.org> - 0-0.27.2010.04.09
+- Update to 2010.04.09
+- Add patches from Rémi Denis-Courmont - provided as GPLv2+
+- Distribute live555 as GPLv2+
+
* Thu Jan 28 2010 Nicolas Chauvet <kwizart(a)fedoraproject.org> - 0-0.26.2010.01.22
- Update to 2010.01.22
Fix multicast with openRTSP
14 years, 7 months
rpms/libdvbpsi/F-13 libdvbpsi.spec, 1.4, 1.5 sources, 1.2, 1.3 .cvsignore, 1.2, 1.3
by Nicolas Chauvet
Author: kwizart
Update of /cvs/free/rpms/libdvbpsi/F-13
In directory se02.es.rpmfusion.net:/tmp/cvs-serv28095
Modified Files:
libdvbpsi.spec sources .cvsignore
Log Message:
Update to 0.1.7
Index: libdvbpsi.spec
===================================================================
RCS file: /cvs/free/rpms/libdvbpsi/F-13/libdvbpsi.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- libdvbpsi.spec 16 Oct 2009 22:16:03 -0000 1.4
+++ libdvbpsi.spec 1 May 2010 12:37:12 -0000 1.5
@@ -1,13 +1,11 @@
-%define real_name libdvbpsi5
-
Summary: Library for MPEG TS and DVB PSI tables decoding and generation
Name: libdvbpsi
-Version: 0.1.6
-Release: 6%{?dist}
+Version: 0.1.7
+Release: 1%{?dist}
License: GPLv2+
Group: System Environment/Libraries
URL: http://www.videolan.org/developers/libdvbpsi.html
-Source0: http://download.videolan.org/pub/libdvbpsi/%{version}/%{real_name}-%{vers...
+Source0: http://download.videolan.org/pub/libdvbpsi/%{version}/%{name}-%{version}....
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: graphviz doxygen
@@ -30,7 +28,7 @@
# -----------------------------------------------------------------------------
%prep
-%setup -q -n %{real_name}-%{version}
+%setup -q
@@ -68,10 +66,14 @@
%doc doc/doxygen/html
%{_includedir}/dvbpsi/
%{_libdir}/lib*.so
+%{_libdir}/pkgconfig/libdvbpsi.pc
# -----------------------------------------------------------------------------
%changelog
+* Sat Apr 24 2010 Nicolas Chauvet <kwizart(a)fedoraproject.org> - 0.1.7-1
+- Update to 0.1.7
+
* Sat Oct 17 2009 kwizart < kwizart at gmail.com > - 0.1.6-6
- Rebuild
Index: sources
===================================================================
RCS file: /cvs/free/rpms/libdvbpsi/F-13/sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sources 4 Aug 2008 19:00:28 -0000 1.2
+++ sources 1 May 2010 12:37:12 -0000 1.3
@@ -1 +1 @@
-bd2d9861be3311e1e03c91cd9345f542 libdvbpsi5-0.1.6.tar.bz2
+af419575719e356b908b0c6946499052 libdvbpsi-0.1.7.tar.bz2
Index: .cvsignore
===================================================================
RCS file: /cvs/free/rpms/libdvbpsi/F-13/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- .cvsignore 4 Aug 2008 19:00:28 -0000 1.2
+++ .cvsignore 1 May 2010 12:37:12 -0000 1.3
@@ -1 +1 @@
-libdvbpsi5-0.1.6.tar.bz2
+libdvbpsi-0.1.7.tar.bz2
14 years, 7 months
rpms/libdvbpsi/devel libdvbpsi.spec, 1.4, 1.5 sources, 1.2, 1.3 .cvsignore, 1.2, 1.3
by Nicolas Chauvet
Author: kwizart
Update of /cvs/free/rpms/libdvbpsi/devel
In directory se02.es.rpmfusion.net:/tmp/cvs-serv27979
Modified Files:
libdvbpsi.spec sources .cvsignore
Log Message:
Update to 0.1.7
Index: libdvbpsi.spec
===================================================================
RCS file: /cvs/free/rpms/libdvbpsi/devel/libdvbpsi.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- libdvbpsi.spec 16 Oct 2009 22:16:03 -0000 1.4
+++ libdvbpsi.spec 1 May 2010 12:36:28 -0000 1.5
@@ -1,13 +1,11 @@
-%define real_name libdvbpsi5
-
Summary: Library for MPEG TS and DVB PSI tables decoding and generation
Name: libdvbpsi
-Version: 0.1.6
-Release: 6%{?dist}
+Version: 0.1.7
+Release: 1%{?dist}
License: GPLv2+
Group: System Environment/Libraries
URL: http://www.videolan.org/developers/libdvbpsi.html
-Source0: http://download.videolan.org/pub/libdvbpsi/%{version}/%{real_name}-%{vers...
+Source0: http://download.videolan.org/pub/libdvbpsi/%{version}/%{name}-%{version}....
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: graphviz doxygen
@@ -30,7 +28,7 @@
# -----------------------------------------------------------------------------
%prep
-%setup -q -n %{real_name}-%{version}
+%setup -q
@@ -68,10 +66,14 @@
%doc doc/doxygen/html
%{_includedir}/dvbpsi/
%{_libdir}/lib*.so
+%{_libdir}/pkgconfig/libdvbpsi.pc
# -----------------------------------------------------------------------------
%changelog
+* Sat Apr 24 2010 Nicolas Chauvet <kwizart(a)fedoraproject.org> - 0.1.7-1
+- Update to 0.1.7
+
* Sat Oct 17 2009 kwizart < kwizart at gmail.com > - 0.1.6-6
- Rebuild
Index: sources
===================================================================
RCS file: /cvs/free/rpms/libdvbpsi/devel/sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sources 4 Aug 2008 19:00:28 -0000 1.2
+++ sources 1 May 2010 12:36:28 -0000 1.3
@@ -1 +1 @@
-bd2d9861be3311e1e03c91cd9345f542 libdvbpsi5-0.1.6.tar.bz2
+af419575719e356b908b0c6946499052 libdvbpsi-0.1.7.tar.bz2
Index: .cvsignore
===================================================================
RCS file: /cvs/free/rpms/libdvbpsi/devel/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- .cvsignore 4 Aug 2008 19:00:28 -0000 1.2
+++ .cvsignore 1 May 2010 12:36:28 -0000 1.3
@@ -1 +1 @@
-libdvbpsi5-0.1.6.tar.bz2
+libdvbpsi-0.1.7.tar.bz2
14 years, 7 months
rpms/xtables-addons-kmod/F-12 xtables-addons-kmod.spec,1.8,1.9
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/xtables-addons-kmod/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv10793
Modified Files:
xtables-addons-kmod.spec
Log Message:
* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 1.25-1.2
- rebuild for new kernel
Index: xtables-addons-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/xtables-addons-kmod/F-12/xtables-addons-kmod.spec,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- xtables-addons-kmod.spec 30 Apr 2010 02:10:25 -0000 1.8
+++ xtables-addons-kmod.spec 1 May 2010 10:11:12 -0000 1.9
@@ -10,7 +10,7 @@
Name: xtables-addons-kmod
Summary: Kernel module (kmod) for xtables-addons
Version: 1.25
-Release: 1%{?dist}.1
+Release: 1%{?dist}.2
License: GPLv2
Group: System Environment/Kernel
URL: http://xtables-addons.sourceforge.net
@@ -66,6 +66,9 @@
%changelog
+* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 1.25-1.2
+- rebuild for new kernel
+
* Thu Apr 29 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 1.25-1.1
- rebuild for new kernel
14 years, 7 months
rpms/west-chamber-kmod/F-12 west-chamber-kmod.spec,1.6,1.7
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/west-chamber-kmod/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv10671
Modified Files:
west-chamber-kmod.spec
Log Message:
* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 0.0.1-4.20100405svn.5
- rebuild for new kernel
Index: west-chamber-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/west-chamber-kmod/F-12/west-chamber-kmod.spec,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- west-chamber-kmod.spec 29 Apr 2010 08:10:57 -0000 1.6
+++ west-chamber-kmod.spec 1 May 2010 10:11:00 -0000 1.7
@@ -13,7 +13,7 @@
Name: west-chamber-kmod
Summary: Kernel module (kmod) for west-chamber
Version: 0.0.1
-Release: 4.%{?svndate}svn%{?dist}.4
+Release: 4.%{?svndate}svn%{?dist}.5
License: GPLv2+
Group: System Environment/Kernel
URL: http://code.google.com/p/scholarzhang/
@@ -78,6 +78,9 @@
%changelog
+* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 0.0.1-4.20100405svn.5
+- rebuild for new kernel
+
* Thu Apr 29 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 0.0.1-4.20100405svn.4
- rebuild for new kernel
14 years, 7 months
rpms/VirtualBox-OSE-kmod/F-12 VirtualBox-OSE-kmod.spec,1.57,1.58
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/VirtualBox-OSE-kmod/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv10546
Modified Files:
VirtualBox-OSE-kmod.spec
Log Message:
* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 3.1.4-1.11
- rebuild for new kernel
Index: VirtualBox-OSE-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/VirtualBox-OSE-kmod/F-12/VirtualBox-OSE-kmod.spec,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -r1.57 -r1.58
--- VirtualBox-OSE-kmod.spec 22 Apr 2010 09:20:08 -0000 1.57
+++ VirtualBox-OSE-kmod.spec 1 May 2010 10:10:47 -0000 1.58
@@ -11,7 +11,7 @@
Name: VirtualBox-OSE-kmod
Version: 3.1.4
-Release: 1%{?dist}.10
+Release: 1%{?dist}.11
Summary: Kernel module for VirtualBox-OSE
Group: System Environment/Kernel
@@ -91,6 +91,9 @@
%changelog
+* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 3.1.4-1.11
+- rebuild for new kernel
+
* Thu Apr 22 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 3.1.4-1.10
- rebuild for new kernel
14 years, 7 months
rpms/staging-kmod/F-12 staging-kmod.spec,1.39,1.40
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/staging-kmod/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv10411
Modified Files:
staging-kmod.spec
Log Message:
* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.6.32.8-1.11
- rebuild for new kernel
Index: staging-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/staging-kmod/F-12/staging-kmod.spec,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- staging-kmod.spec 29 Apr 2010 08:10:37 -0000 1.39
+++ staging-kmod.spec 1 May 2010 10:10:36 -0000 1.40
@@ -14,7 +14,7 @@
Name: staging-kmod
Version: 2.6.32.8
-Release: %{?prever:0.}1%{?prever:.%{prever}}%{?dist}.10
+Release: %{?prever:0.}1%{?prever:.%{prever}}%{?dist}.11
Summary: Selected kernel modules from linux-staging
Group: System Environment/Kernel
@@ -105,6 +105,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.6.32.8-1.11
+- rebuild for new kernel
+
* Thu Apr 29 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.6.32.8-1.10
- rebuild for new kernel
14 years, 7 months
rpms/rt3070-kmod/F-12 rt3070-kmod.spec,1.43,1.44
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/rt3070-kmod/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv10025
Modified Files:
rt3070-kmod.spec
Log Message:
* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.1.0-3.27
- rebuild for new kernel
Index: rt3070-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/rt3070-kmod/F-12/rt3070-kmod.spec,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- rt3070-kmod.spec 29 Apr 2010 08:10:24 -0000 1.43
+++ rt3070-kmod.spec 1 May 2010 10:10:23 -0000 1.44
@@ -7,7 +7,7 @@
Name: rt3070-kmod
Version: 2.1.1.0
-Release: 3%{?dist}.26
+Release: 3%{?dist}.27
Summary: Kernel module for wireless devices with Ralink's rt307x chipsets
Group: System Environment/Kernel
@@ -87,6 +87,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.1.0-3.27
+- rebuild for new kernel
+
* Thu Apr 29 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.1.0-3.26
- rebuild for new kernel
14 years, 7 months
rpms/rt2870-kmod/F-12 rt2870-kmod.spec,1.78,1.79
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/rt2870-kmod/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv9904
Modified Files:
rt2870-kmod.spec
Log Message:
* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.2.0-6.19
- rebuild for new kernel
Index: rt2870-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/rt2870-kmod/F-12/rt2870-kmod.spec,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -r1.78 -r1.79
--- rt2870-kmod.spec 29 Apr 2010 08:10:11 -0000 1.78
+++ rt2870-kmod.spec 1 May 2010 10:10:11 -0000 1.79
@@ -7,7 +7,7 @@
Name: rt2870-kmod
Version: 2.1.2.0
-Release: 6%{?dist}.18
+Release: 6%{?dist}.19
Summary: Kernel module for wireless devices with Ralink's rt2870 chipsets
Group: System Environment/Kernel
@@ -80,6 +80,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.2.0-6.19
+- rebuild for new kernel
+
* Thu Apr 29 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.2.0-6.18
- rebuild for new kernel
14 years, 7 months
rpms/rt2860-kmod/F-12 rt2860-kmod.spec,1.73,1.74
by Thorsten Leemhuis
Author: thl
Update of /cvs/free/rpms/rt2860-kmod/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv9781
Modified Files:
rt2860-kmod.spec
Log Message:
* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.2.0-3.27
- rebuild for new kernel
Index: rt2860-kmod.spec
===================================================================
RCS file: /cvs/free/rpms/rt2860-kmod/F-12/rt2860-kmod.spec,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- rt2860-kmod.spec 29 Apr 2010 08:09:58 -0000 1.73
+++ rt2860-kmod.spec 1 May 2010 10:09:58 -0000 1.74
@@ -7,7 +7,7 @@
Name: rt2860-kmod
Version: 2.1.2.0
-Release: 3%{?dist}.26
+Release: 3%{?dist}.27
Summary: Kernel module for RaLink 802.11 wireless devices rt2760/rt2790/rt2860/rt2890
Group: System Environment/Kernel
@@ -79,6 +79,9 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Sat May 01 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.2.0-3.27
+- rebuild for new kernel
+
* Thu Apr 29 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 2.1.2.0-3.26
- rebuild for new kernel
14 years, 7 months