Hello community,

here is the log from the commit of package soapy-remote for openSUSE:Factory 
checked in at 2019-01-28 20:49:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/soapy-remote (Old)
 and      /work/SRC/openSUSE:Factory/.soapy-remote.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "soapy-remote"

Mon Jan 28 20:49:47 2019 rev:4 rq:669029 version:0.5.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/soapy-remote/soapy-remote.changes        
2018-11-12 09:45:01.860863657 +0100
+++ /work/SRC/openSUSE:Factory/.soapy-remote.new.28833/soapy-remote.changes     
2019-01-28 20:50:37.269767475 +0100
@@ -1,0 +2,15 @@
+Mon Jan 28 10:21:04 UTC 2019 - Jan Engelhardt <[email protected]>
+
+- Use noun phrase in descriptions.
+
+-------------------------------------------------------------------
+Sun Jan 27 09:30:08 UTC 2019 - Wojciech Kazubski <[email protected]>
+
+- Update to version 0.5.1
+  * Fix SoapyLogAcceptor not closing sockets on shutdown
+  * Report socket creation errors within SoapyRPCSocket
+  * MDNS timeout for OSX when no servers are available
+  * Added explicit compile flags for MSVC needed by common
+  * Compilation fixes for strerror_r API differences
+
+-------------------------------------------------------------------

Old:
----
  soapy-remote-0.5.0.tar.gz

New:
----
  soapy-remote-0.5.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ soapy-remote.spec ++++++
--- /var/tmp/diff_new_pack.B8DZs2/_old  2019-01-28 20:50:38.461766217 +0100
+++ /var/tmp/diff_new_pack.B8DZs2/_new  2019-01-28 20:50:38.461766217 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package soapy-remote
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2017, Martin Hauke <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
@@ -13,16 +13,17 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
+
 %define soapy_modver 0.7
 %define soapy_modname soapysdr%{soapy_modver}-module-remote
 
 Name:           soapy-remote
-Version:        0.5.0
+Version:        0.5.1
 Release:        0
-Summary:        Use any Soapy SDR remotely 
+Summary:        Remote device support for Soapy SDR
 License:        BSL-1.0
 Group:          Productivity/Hamradio/Other
 Url:            https://github.com/pothosware/SoapyRemote/wiki
@@ -34,15 +35,13 @@
 BuildRequires:  pkgconfig(SoapySDR)
 
 %description
-Soapy Remote - Remote device support for Soapy SDR.
 A Soapy module that supports remote devices within the Soapy API.
 
 %package -n %{soapy_modname}
-Summary:        Use any Soapy SDR remotely
+Summary:        Remote device support for Soapy SDR
 Group:          System/Libraries
 
 %description -n %{soapy_modname}
-Soapy Remote - Remote device support for Soapy SDR.
 A Soapy module that supports remote devices within the Soapy API.
 
 %prep

++++++ soapy-remote-0.5.0.tar.gz -> soapy-remote-0.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.0/CMakeLists.txt 
new/SoapyRemote-soapy-remote-0.5.1/CMakeLists.txt
--- old/SoapyRemote-soapy-remote-0.5.0/CMakeLists.txt   2018-10-25 
05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/CMakeLists.txt   2019-01-26 
19:21:42.000000000 +0100
@@ -52,11 +52,26 @@
 
 endif(CMAKE_COMPILER_IS_GNUCXX)
 
+#link threads in freebsd
+if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+    find_package(Threads)
+    message(STATUS "CMAKE_THREAD_LIBS_INIT: ${CMAKE_THREAD_LIBS_INIT}")
+    list(APPEND SoapySDR_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+endif()
+
 #enable c++11 extensions for OSX
 if (APPLE)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wc++11-extensions")
 endif(APPLE)
 
+if(MSVC)
+    #we always want to use multiple cores for compilation
+    add_compile_options(/MP)
+
+    #projects should be cross-platform and standard stl functions should work
+    add_definitions(-DNOMINMAX) #enables std::min and std::max
+endif()
+
 #common headers used by client and server
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/common)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.0/Changelog.txt 
new/SoapyRemote-soapy-remote-0.5.1/Changelog.txt
--- old/SoapyRemote-soapy-remote-0.5.0/Changelog.txt    2018-10-25 
05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/Changelog.txt    2019-01-26 
19:21:42.000000000 +0100
@@ -1,3 +1,12 @@
+Release 0.5.1 (2019-01-26)
+==========================
+
+- Fix SoapyLogAcceptor not closing sockets on shutdown
+- Report socket creation errors within SoapyRPCSocket
+- MDNS timeout for OSX when no servers are available
+- Added explicit compile flags for MSVC needed by common
+- Compilation fixes for strerror_r API differences
+
 Release 0.5.0 (2018-10-24)
 ==========================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.0/client/LogAcceptor.cpp 
new/SoapyRemote-soapy-remote-0.5.1/client/LogAcceptor.cpp
--- old/SoapyRemote-soapy-remote-0.5.0/client/LogAcceptor.cpp   2018-10-25 
05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/client/LogAcceptor.cpp   2019-01-26 
19:21:42.000000000 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2015-2018 Josh Blum
+// Copyright (c) 2015-2019 Josh Blum
 // SPDX-License-Identifier: BSL-1.0
 
 #include "LogAcceptor.hpp"
@@ -32,7 +32,7 @@
 
     ~LogAcceptorThreadData(void)
     {
-        this->shutdown();
+        if (thread != nullptr) this->shutdown();
     }
 
     void activate(void);
@@ -103,7 +103,7 @@
     done = true;
     thread->join();
     delete thread;
-    client = SoapyRPCSocket();
+    client.close();
 }
 
 void LogAcceptorThreadData::handlerLoop(void)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.0/common/CMakeLists.txt 
new/SoapyRemote-soapy-remote-0.5.1/common/CMakeLists.txt
--- old/SoapyRemote-soapy-remote-0.5.0/common/CMakeLists.txt    2018-10-25 
05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/common/CMakeLists.txt    2019-01-26 
19:21:42.000000000 +0100
@@ -41,6 +41,13 @@
 CHECK_INCLUDE_FILES(net/if.h HAS_NET_IF_H)
 CHECK_INCLUDE_FILES(fcntl.h HAS_FCNTL_H)
 
+include(CheckCXXSourceCompiles)
+CHECK_CXX_SOURCE_COMPILES("#include <cstring>
+int main(void){return strerror_r(0, NULL, 0);}" STRERROR_R_XSI)
+if (STRERROR_R_XSI)
+    add_definitions(-DSTRERROR_R_XSI)
+endif ()
+
 #network libraries
 if (WIN32)
     list(APPEND SoapySDR_LIBRARIES ws2_32)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.0/common/SoapyMDNSEndpointApple.cpp 
new/SoapyRemote-soapy-remote-0.5.1/common/SoapyMDNSEndpointApple.cpp
--- old/SoapyRemote-soapy-remote-0.5.0/common/SoapyMDNSEndpointApple.cpp        
2018-10-25 05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/common/SoapyMDNSEndpointApple.cpp        
2019-01-26 19:21:42.000000000 +0100
@@ -6,6 +6,7 @@
 #include <SoapySDR/Logger.hpp>
 #include "SoapyURLUtils.hpp"
 #include <dns_sd.h>
+#include <cerrno>
 #include <cstdlib> //atoi
 
 /***********************************************************************
@@ -222,7 +223,31 @@
     else DNSServiceProcessResult(sdRef);
 }
 
-std::map<std::string, std::map<int, std::string>> 
SoapyMDNSEndpoint::getServerURLs(const int ipVer, const long)
+static bool waitDNSServiceRef(DNSServiceRef sdRef, const long timeoutUs)
+{
+    //get the underlying Unix domain socket for timeout
+    auto sock = DNSServiceRefSockFD(sdRef);
+    if (sock == -1)
+    {
+        SoapySDR::logf(SOAPY_SDR_ERROR, "DNSServiceRefSockFD() failed %d", 
sock);
+        return false;
+    }
+
+    struct timeval tv;
+    tv.tv_sec = timeoutUs / 1000000;
+    tv.tv_usec = timeoutUs % 1000000;
+
+    fd_set readfds;
+    FD_ZERO(&readfds);
+    FD_SET(sock, &readfds);
+
+    const int ret = ::select(sock+1, &readfds, NULL, NULL, &tv);
+    if (ret == 0) SoapySDR::logf(SOAPY_SDR_DEBUG, 
"select(DNSServiceRefSockFD()) timeout");
+    if (ret == -1) SoapySDR::logf(SOAPY_SDR_ERROR, 
"select(DNSServiceRefSockFD()) failed %d", errno);
+    return ret == 1;
+}
+
+std::map<std::string, std::map<int, std::string>> 
SoapyMDNSEndpoint::getServerURLs(const int ipVer, const long timeoutUs)
 {
     SoapyMDNSBrowseResult result;
     result.ipVerRequest = ipVer;
@@ -238,7 +263,7 @@
 
     if (ret != kDNSServiceErr_NoError) SoapySDR::logf(
         SOAPY_SDR_ERROR, "DNSServiceBrowse() failed %d", ret);
-    else DNSServiceProcessResult(sdRef);
+    else if (waitDNSServiceRef(sdRef, timeoutUs)) 
DNSServiceProcessResult(sdRef);
     DNSServiceRefDeallocate(sdRef);
     return result.serverURLs;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.0/common/SoapyRPCSocket.cpp 
new/SoapyRemote-soapy-remote-0.5.1/common/SoapyRPCSocket.cpp
--- old/SoapyRemote-soapy-remote-0.5.0/common/SoapyRPCSocket.cpp        
2018-10-25 05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/common/SoapyRPCSocket.cpp        
2019-01-26 19:21:42.000000000 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2015-2018 Josh Blum
+// Copyright (c) 2015-2019 Josh Blum
 // SPDX-License-Identifier: BSL-1.0
 
 #include "SoapySocketDefs.hpp"
@@ -128,7 +128,11 @@
     }
 
     if (this->null()) _sock = ::socket(addr.addr()->sa_family, 
urlObj.getType(), 0);
-    if (this->null()) return -1;
+    if (this->null())
+    {
+        this->reportError("socket("+url+")");
+        return -1;
+    }
 
     //setup reuse address
     int one = 1;
@@ -184,7 +188,11 @@
     }
 
     if (this->null()) _sock = ::socket(addr.addr()->sa_family, 
urlObj.getType(), 0);
-    if (this->null()) return -1;
+    if (this->null())
+    {
+        this->reportError("socket("+url+")");
+        return -1;
+    }
     if (urlObj.getType() == SOCK_STREAM) this->setDefaultTcpSockOpts();
 
     int ret = ::connect(_sock, addr.addr(), addr.addrlen());
@@ -204,7 +212,11 @@
     }
 
     if (this->null()) _sock = ::socket(addr.addr()->sa_family, 
urlObj.getType(), 0);
-    if (this->null()) return -1;
+    if (this->null())
+    {
+        this->reportError("socket("+url+")");
+        return -1;
+    }
     if (urlObj.getType() == SOCK_STREAM) this->setDefaultTcpSockOpts();
 
     //enable non blocking
@@ -298,7 +310,11 @@
 
     //create socket if null
     if (this->null()) _sock = ::socket(addr.addr()->sa_family, SOCK_DGRAM, 0);
-    if (this->null()) return -1;
+    if (this->null())
+    {
+        this->reportError("socket("+group+")");
+        return -1;
+    }
     int ret = 0;
 
     int loopInt = loop?1:0;
@@ -496,7 +512,7 @@
     return buff;
     #else
     //http://linux.die.net/man/3/strerror_r
-    #if ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! 
_GNU_SOURCE) || __APPLE__
+    #ifdef STRERROR_R_XSI
     strerror_r(err, buff, sizeof(buff));
     #else
     //this version may decide to use its own internal string
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.0/debian/changelog 
new/SoapyRemote-soapy-remote-0.5.1/debian/changelog
--- old/SoapyRemote-soapy-remote-0.5.0/debian/changelog 2018-10-25 
05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/debian/changelog 2019-01-26 
19:21:42.000000000 +0100
@@ -1,3 +1,9 @@
+soapyremote (0.5.1-1) unstable; urgency=low
+
+  * Release 0.5.1 (2019-01-26)
+
+ -- Josh Blum <[email protected]>  Sat, 26 Jan 2019 12:21:39 -0000
+
 soapyremote (0.5.0-1) unstable; urgency=low
 
   * Release 0.5.0 (2018-10-24)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.0/debian/control 
new/SoapyRemote-soapy-remote-0.5.1/debian/control
--- old/SoapyRemote-soapy-remote-0.5.0/debian/control   2018-10-25 
05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/debian/control   2019-01-26 
19:21:42.000000000 +0100
@@ -1,5 +1,5 @@
 Source: soapyremote
-Section: libs
+Section: hamradio
 Priority: optional
 Maintainer: Josh Blum <[email protected]>
 Build-Depends:
@@ -16,21 +16,34 @@
 Architecture: any
 Multi-Arch: same
 Depends: ${shlibs:Depends}, ${misc:Depends}, avahi-daemon
-Description: Soapy Remote - Remote device support for Soapy SDR.
- A Soapy module that supports remote devices within the Soapy API.
+Description: Use SoapySDR devices over network (client module)
+ The SoapyRemote project provides a client module and a server that make it
+ possible on the client side to list and access hardware supported by SoapySDR
+ modules on the server as if they were local modules.
+ .
+ This package contains the client module.
 
 Package: soapysdr-module-remote
 Architecture: all
 Depends: soapysdr0.7-module-remote, ${misc:Depends}
-Description: Soapy Remote - Remote device support for Soapy SDR.
- A Soapy module that supports remote devices within the Soapy API.
+Description: Use SoapySDR devices over network (default client module)
+ The SoapyRemote project provides a client module and a server that make it
+ possible on the client side to list and access hardware supported by SoapySDR
+ modules on the server as if they were local modules.
  .
- This is an empty dependency package that pulls in the remote module
- for the default version of libsoapysdr.
+ This is an empty dependency package that pulls in the client module for the
+ default version of libsoapysdr.
 
 Package: soapysdr-server
 Section: libs
 Architecture: any
+Conflicts: soapyremote-server
+Replaces: soapyremote-server
+Provides: soapyremote-server
 Depends: ${shlibs:Depends}, ${misc:Depends}, init-system-helpers, avahi-daemon
-Description: Soapy Remote - Remote device support for Soapy SDR.
- The SoapySDRServer server application for remote devices.
+Description: Use SoapySDR devices over network (server)
+ The SoapyRemote project provides a client module and a server that make it
+ possible on the client side to list and access hardware supported by SoapySDR
+ modules on the server as if they were local modules.
+ .
+ This package contains the server.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.0/debian/copyright 
new/SoapyRemote-soapy-remote-0.5.1/debian/copyright
--- old/SoapyRemote-soapy-remote-0.5.0/debian/copyright 2018-10-25 
05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/debian/copyright 2019-01-26 
19:21:42.000000000 +0100
@@ -4,7 +4,7 @@
 
 Files: *
 Copyright:
-    Copyright (c) 2015-2018 Josh Blum <[email protected]>
+    Copyright (c) 2015-2019 Josh Blum <[email protected]>
     Copyright (c) 2016-2016 Bastille Networks
 License: BSL-1.0
  Boost Software License - Version 1.0 - August 17th, 2003
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.0/server/ServerStreamData.cpp 
new/SoapyRemote-soapy-remote-0.5.1/server/ServerStreamData.cpp
--- old/SoapyRemote-soapy-remote-0.5.0/server/ServerStreamData.cpp      
2018-10-25 05:45:39.000000000 +0200
+++ new/SoapyRemote-soapy-remote-0.5.1/server/ServerStreamData.cpp      
2019-01-26 19:21:42.000000000 +0100
@@ -127,6 +127,11 @@
                 endpoint->writeStatus(ret, chanMask, flags, timeNs);
                 break; //discard after error, this may have been invalid flags 
or time
             }
+            if (elemsLeft < (size_t)ret)
+            {
+                SoapySDR_logf(SOAPY_SDR_ERROR, "Server-side receive endpoint: 
device->writeStream wrote more elements than requested");
+                break; //stop after error
+            }
             elemsLeft -= ret;
             incrementBuffs(buffs, ret, elemSize);
             if (elemsLeft == 0) break;


Reply via email to