opusfile: fix windows compilation

This commit is contained in:
Taeer Bar-Yam 2021-04-27 13:59:41 -04:00
parent 61a31ad3d6
commit e1b933ccdc
3 changed files with 45 additions and 6 deletions

View file

@ -1,23 +1,27 @@
{ lib, stdenv, fetchurl, pkg-config, openssl, libogg, libopus }:
stdenv.mkDerivation rec {
name = "opusfile-0.12";
pname = "opusfile";
version = "0.12";
src = fetchurl {
url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz";
url = "http://downloads.xiph.org/releases/opus/opusfile-${version}.tar.gz";
sha256 = "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl libogg ];
propagatedBuildInputs = [ libopus ];
patches = [ ./include-multistream.patch ];
patches = [ ./include-multistream.patch ]
# fixes problem with openssl 1.1 dependency
# see https://github.com/xiph/opusfile/issues/13
++ lib.optionals stdenv.hostPlatform.isWindows [ ./disable-cert-store.patch ];
configureFlags = [ "--disable-examples" ];
meta = with lib; {
description = "High-level API for decoding and seeking in .opus files";
homepage = "https://www.opus-codec.org/";
license = licenses.bsd3;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ ];
platforms = platforms.all;
maintainers = with maintainers; [ taeer ];
};
}

View file

@ -0,0 +1,35 @@
diff --git a/src/http.c b/src/http.c
index bd08562..3a3592c 100644
--- a/src/http.c
+++ b/src/http.c
@@ -327,10 +327,12 @@ static int op_poll_win32(struct pollfd *_fds,nfds_t _nfds,int _timeout){
typedef ptrdiff_t ssize_t;
# endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
/*Load certificates from the built-in certificate store.*/
int SSL_CTX_set_default_verify_paths_win32(SSL_CTX *_ssl_ctx);
# define SSL_CTX_set_default_verify_paths \
SSL_CTX_set_default_verify_paths_win32
+#endif
# else
/*Normal Berkeley sockets.*/
diff --git a/src/wincerts.c b/src/wincerts.c
index 409a4e0..c355952 100644
--- a/src/wincerts.c
+++ b/src/wincerts.c
@@ -33,6 +33,8 @@
# include <openssl/err.h>
# include <openssl/x509.h>
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+
static int op_capi_new(X509_LOOKUP *_lu){
HCERTSTORE h_store;
h_store=CertOpenStore(CERT_STORE_PROV_SYSTEM_A,0,0,
@@ -171,3 +173,4 @@ int SSL_CTX_set_default_verify_paths_win32(SSL_CTX *_ssl_ctx){
}
#endif
+#endif

View file

@ -24,6 +24,6 @@ stdenv.mkDerivation {
description = "Open, royalty-free, highly versatile audio codec";
license = lib.licenses.bsd3;
homepage = "https://www.opus-codec.org/";
platforms = platforms.unix;
platforms = platforms.all;
};
}