nss: Replace usleep with nanosleep
authorRosen Penev <rosenp@gmail.com>
Fri, 19 Jul 2019 07:34:09 +0000 (00:34 -0700)
committerRosen Penev <rosenp@gmail.com>
Fri, 19 Jul 2019 07:37:13 +0000 (00:37 -0700)
usleep is deprecated and is optionally not available with uClibc-ng.

Added PKG_LICENSE_FILES.

Added PKG_CPE_ID for proper CVE tracking.

Other minor cleanups.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
libs/nss/Makefile
libs/nss/patches/010-nanosleep.patch [new file with mode: 0644]

index 6f8fc62357349f2bdf426e40fa04dc6e8885d1f1..0289ed79078de7c2bc2d994e71f1f05f535eb652 100644 (file)
@@ -8,9 +8,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nss
 PKG_VERSION:=3.45
-PKG_RELEASE:=1
-PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
-PKG_LICENCE:=MPL-2.0
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
@@ -18,6 +16,11 @@ PKG_SOURCE_URL:= \
     https://archive.mozilla.org/pub/security/$(PKG_NAME)/releases/NSS_$(subst .,_,$(PKG_VERSION))_RTM/src
 PKG_HASH:=112f05223d1fde902c170966bfc6f011b24a838be16969b110ecf2bb7bc24e8b
 
+PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
+PKG_LICENCE:=MPL-2.0
+PKG_LICENSE_FILES:=nss/COPYING
+PKG_CPE_ID:=cpe:/a:mozilla:network_security_services
+
 PKG_BUILD_PARALLEL:=0
 
 include $(INCLUDE_DIR)/package.mk
@@ -40,7 +43,7 @@ define Package/nss-utils
 endef
 
 define Package/libnss/description
-  Network Security Services (NSS) is a set of libraries designed to support 
+  Network Security Services (NSS) is a set of libraries designed to support
   cross-platform development of security-enabled client and server applications.
   Applications built with NSS can support SSL v2 and v3, TLS, PKCS 5, PKCS 7,
   PKCS 11, PKCS 12, S/MIME, X.509 v3 certificates, and other security standards.
diff --git a/libs/nss/patches/010-nanosleep.patch b/libs/nss/patches/010-nanosleep.patch
new file mode 100644 (file)
index 0000000..2c32499
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/nss/lib/freebl/stubs.c
++++ b/nss/lib/freebl/stubs.c
+@@ -503,7 +503,8 @@ extern PRStatus
+ PR_Sleep_stub(PRIntervalTime ticks)
+ {
+     STUB_SAFE_CALL1(PR_Sleep, ticks);
+-    usleep(ticks * 1000);
++    const struct timespec req = {0, ticks * 1000 * 1000};
++    nanosleep(&req, NULL);
+     return PR_SUCCESS;
+ }
+--- a/nss/lib/sqlite/sqlite3.c
++++ b/nss/lib/sqlite/sqlite3.c
+@@ -33761,7 +33761,8 @@ static int proxyConchLock(unixFile *pFile, uuid_t myHostID, int lockType){
+       
+       if( nTries==1 ){
+         conchModTime = buf.st_mtimespec;
+-        usleep(500000); /* wait 0.5 sec and try the lock again*/
++        const struct timespec req = {0, 500 * 1000 * 1000};
++        nanosleep(&req, NULL); /* wait 0.5 sec and try the lock again*/
+         continue;  
+       }
+@@ -33787,7 +33788,7 @@ static int proxyConchLock(unixFile *pFile, uuid_t myHostID, int lockType){
+           /* don't break the lock on short read or a version mismatch */
+           return SQLITE_BUSY;
+         }
+-        usleep(10000000); /* wait 10 sec and try the lock again */
++        sleep(10); /* wait 10 sec and try the lock again */
+         continue; 
+       }
+