diff --git a/multimedia/librtmp/Makefile b/multimedia/librtmp/Makefile index 0e4c073c5d4e..b9ad44ef5bb3 100644 --- a/multimedia/librtmp/Makefile +++ b/multimedia/librtmp/Makefile @@ -1,22 +1,23 @@ PORTNAME= librtmp PORTVERSION= 2.4.20190330 +PORTREVISION= 1 CATEGORIES= multimedia net MASTER_SITES= https://git.ffmpeg.org/gitweb/rtmpdump.git/snapshot/c5f04a58fc2aeea6296ca7c44ee4734c18401aa3.tar.gz?/ DISTNAME= rtmpdump-${PORTVERSION} MAINTAINER= hrs@FreeBSD.org COMMENT= RTMP stream library WWW= https://rtmpdump.mplayerhq.hu/ LICENSE= LGPL21+ LICENSE_FILE= ${WRKSRC}/COPYING USES= pkgconfig ssl USE_LDCONFIG= yes CFLAGS+= -I${OPENSSLINC} LDFLAGS+= -L${OPENSSLLIB} PATCH_WRKSRC= ${WRKDIR}/rtmpdump-c5f04a5 WRKSRC= ${WRKDIR}/rtmpdump-c5f04a5/${PORTNAME} .include diff --git a/multimedia/librtmp/files/patch-librtmp-Makefile b/multimedia/librtmp/files/patch-librtmp-Makefile index a3fdb32d2c96..c3337a8b97ed 100644 --- a/multimedia/librtmp/files/patch-librtmp-Makefile +++ b/multimedia/librtmp/files/patch-librtmp-Makefile @@ -1,83 +1,84 @@ ---- librtmp/Makefile.orig 2016-02-29 01:15:13 UTC +--- librtmp/Makefile.orig 2019-03-30 21:33:00 UTC +++ librtmp/Makefile -@@ -1,19 +1,21 @@ +@@ -1,19 +1,21 @@ VERSION=v2.4 VERSION=v2.4 -prefix=/usr/local +prefix=$(PREFIX) incdir=$(prefix)/include/librtmp bindir=$(prefix)/bin libdir=$(prefix)/lib +-mandir=$(prefix)/man +libdatadir=$(prefix)/libdata - mandir=$(prefix)/man ++mandir=$(prefix)/share/man BINDIR=$(DESTDIR)$(bindir) INCDIR=$(DESTDIR)$(incdir) LIBDIR=$(DESTDIR)$(libdir) +LIBDATADIR=$(DESTDIR)$(libdatadir) MANDIR=$(DESTDIR)$(mandir) -CC=$(CROSS_COMPILE)gcc -LD=$(CROSS_COMPILE)ld -AR=$(CROSS_COMPILE)ar +CC?=$(CROSS_COMPILE)gcc +LD?=$(CROSS_COMPILE)ld +AR?=$(CROSS_COMPILE)ar SYS=posix CRYPTO=OPENSSL -@@ -23,14 +25,14 @@ DEF_OPENSSL=-DUSE_OPENSSL +@@ -23,14 +25,14 @@ REQ_GNUTLS=gnutls,hogweed,nettle DEF_GNUTLS=-DUSE_GNUTLS DEF_=-DNO_CRYPTO REQ_GNUTLS=gnutls,hogweed,nettle -REQ_OPENSSL=libssl,libcrypto +#REQ_OPENSSL=libssl,libcrypto PUB_GNUTLS=-lgmp LIBZ=-lz LIBS_posix= LIBS_darwin= LIBS_mingw=-lws2_32 -lwinmm -lgdi32 LIB_GNUTLS=-lgnutls -lhogweed -lnettle -lgmp $(LIBZ) -LIB_OPENSSL=-lssl -lcrypto $(LIBZ) +LIB_OPENSSL=-L$(OPENSSLLIB) -lssl -lcrypto $(LIBZ) LIB_POLARSSL=-lpolarssl $(LIBZ) PRIVATE_LIBS=$(LIBS_$(SYS)) CRYPTO_LIB=$(LIB_$(CRYPTO)) $(PRIVATE_LIBS) -@@ -74,8 +76,9 @@ SO_INST=$(SOINST_$(SHARED)) +@@ -74,8 +76,9 @@ OPT=-O2 DEF=-DRTMPDUMP_VERSION=\"$(VERSION)\" $(CRYPTO_DEF) $(XDEF) OPT=-O2 -CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT) $(SO_DEF) -LDFLAGS=$(XLDFLAGS) +#CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT) $(SO_DEF) +CFLAGS+=$(DEF) $(SO_DEF) +#LDFLAGS=$(XLDFLAGS) OBJS=rtmp.o log.o amf.o hashswf.o parseurl.o @@ -102,20 +105,22 @@ librtmp.pc: librtmp.pc.in Makefile sed -e "s;@prefix@;$(prefix);" -e "s;@libdir@;$(libdir);" \ -e "s;@VERSION@;$(VERSION);" \ -e "s;@CRYPTO_REQ@;$(CRYPTO_REQ);" \ + -e "s;@OPENSSLLIB@;$(OPENSSLLIB);" \ + -e "s;@OPENSSLINC@;$(OPENSSLINC);" \ -e "s;@PUBLIC_LIBS@;$(PUBLIC_LIBS);" \ -e "s;@PRIVATE_LIBS@;$(PRIVATE_LIBS);" librtmp.pc.in > $@ install: install_base $(SO_INST) install_base: librtmp.a librtmp.pc - -mkdir -p $(INCDIR) $(LIBDIR)/pkgconfig $(MANDIR)/man3 $(SODIR) + -mkdir -p $(INCDIR) $(LIBDATADIR)/pkgconfig $(MANDIR)/man3 $(SODIR) cp amf.h http.h log.h rtmp.h $(INCDIR) cp librtmp.a $(LIBDIR) - cp librtmp.pc $(LIBDIR)/pkgconfig + cp librtmp.pc $(LIBDATADIR)/pkgconfig cp librtmp.3 $(MANDIR)/man3 install_so: librtmp$(SO_EXT) - cp librtmp$(SO_EXT) $(SODIR) + ${BSD_INSTALL_LIB} librtmp$(SO_EXT) $(SODIR) $(INSTALL_IMPLIB) cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX) diff --git a/multimedia/librtmp/files/patch-librtmp-hashswf.c b/multimedia/librtmp/files/patch-librtmp-hashswf.c index 6973abfd8968..2ee5b412ab45 100644 --- a/multimedia/librtmp/files/patch-librtmp-hashswf.c +++ b/multimedia/librtmp/files/patch-librtmp-hashswf.c @@ -1,93 +1,94 @@ ---- librtmp/hashswf.c.orig 2016-02-29 01:15:13 UTC +--- librtmp/hashswf.c.orig 2019-03-30 21:33:00 UTC +++ librtmp/hashswf.c @@ -37,10 +37,17 @@ #define SHA256_DIGEST_LENGTH 32 #endif #define HMAC_CTX sha2_context -#define HMAC_setup(ctx, key, len) sha2_hmac_starts(&ctx, (unsigned char *)key, len, 0) -#define HMAC_crunch(ctx, buf, len) sha2_hmac_update(&ctx, buf, len) -#define HMAC_finish(ctx, dig, dlen) dlen = SHA256_DIGEST_LENGTH; sha2_hmac_finish(&ctx, dig) -#define HMAC_close(ctx) +#define HMAC_setup(ctx, key, len) do { \ + if (ctx == NULL) \ + ctx = calloc(1, sizeof(*ctx)); \ + sha2_hmac_starts(ctx, (unsigned char *)key, len, 0); \ + } while (0); +#define HMAC_crunch(ctx, buf, len) sha2_hmac_update(ctx, buf, len) +#define HMAC_finish(ctx, dig, dlen) dlen = SHA256_DIGEST_LENGTH; sha2_hmac_finish(ctx, dig) +#define HMAC_close(ctx) do { \ + free(ctx); \ + ctx = NULL; \ + } while (0) #elif defined(USE_GNUTLS) #include #ifndef SHA256_DIGEST_LENGTH -@@ -48,19 +55,51 @@ +@@ -48,20 +55,52 @@ #endif #undef HMAC_CTX #define HMAC_CTX struct hmac_sha256_ctx -#define HMAC_setup(ctx, key, len) hmac_sha256_set_key(&ctx, len, key) -#define HMAC_crunch(ctx, buf, len) hmac_sha256_update(&ctx, len, buf) -#define HMAC_finish(ctx, dig, dlen) dlen = SHA256_DIGEST_LENGTH; hmac_sha256_digest(&ctx, SHA256_DIGEST_LENGTH, dig) -#define HMAC_close(ctx) +#define HMAC_setup(ctx, key, len) do { \ + if (ctx == NULL) \ + ctx = calloc(1, sizeof(*ctx)); \ + hmac_sha256_set_key(ctx, len, key); \ + } while (0) +#define HMAC_crunch(ctx, buf, len) hmac_sha256_update(ctx, len, buf) +#define HMAC_finish(ctx, dig, dlen) dlen = SHA256_DIGEST_LENGTH; hmac_sha256_digest(ctx, SHA256_DIGEST_LENGTH, dig) +#define HMAC_close(ctx) do { \ + free(ctx); \ + ctx = NULL; \ + } while (0) #else /* USE_OPENSSL */ #include #include #include #include -#define HMAC_setup(ctx, key, len) HMAC_CTX_init(&ctx); HMAC_Init_ex(&ctx, (unsigned char *)key, len, EVP_sha256(), 0) -#define HMAC_crunch(ctx, buf, len) HMAC_Update(&ctx, (unsigned char *)buf, len) -#define HMAC_finish(ctx, dig, dlen) HMAC_Final(&ctx, (unsigned char *)dig, &dlen); -#define HMAC_close(ctx) HMAC_CTX_cleanup(&ctx) +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) +#define HMAC_setup(ctx, key, len) do { \ + if (ctx == NULL) \ + ctx = calloc(1, sizeof(*ctx)); \ + HMAC_CTX_init(ctx); \ + HMAC_Init_ex(ctx, (unsigned char *)key, len, EVP_sha256(), 0); \ + } while (0) +#else +#define HMAC_setup(ctx, key, len) do { \ + if (ctx == NULL) \ + ctx = HMAC_CTX_new(); \ + HMAC_Init_ex(ctx, (unsigned char *)key, len, EVP_sha256(), 0); \ + } while (0); -+#endif + #endif +#define HMAC_crunch(ctx, buf, len) HMAC_Update(ctx, (unsigned char *)buf, len) +#define HMAC_finish(ctx, dig, dlen) HMAC_Final(ctx, (unsigned char *)dig, &dlen); +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) +#define HMAC_close(ctx) do { \ + HMAC_CTX_cleanup(ctx); \ + free(ctx); \ + ctx = NULL; \ + } while (0) +#else +#define HMAC_close(ctx) do { \ + HMAC_CTX_reset(ctx); \ + HMAC_CTX_free(ctx); \ + ctx = NULL; \ + } while (0) +#endif - #endif ++#endif extern void RTMP_TLS_Init(); -@@ -289,7 +328,7 @@ leave: + extern TLS_CTX RTMP_TLS_ctx; +@@ -298,7 +337,7 @@ struct info struct info { z_stream *zs; - HMAC_CTX ctx; + HMAC_CTX *ctx; int first; int zlib; int size; diff --git a/multimedia/librtmp/pkg-plist b/multimedia/librtmp/pkg-plist index 8c6e7dd7c06b..692f847a7e43 100644 --- a/multimedia/librtmp/pkg-plist +++ b/multimedia/librtmp/pkg-plist @@ -1,9 +1,9 @@ include/librtmp/amf.h include/librtmp/http.h include/librtmp/log.h include/librtmp/rtmp.h lib/librtmp.a lib/librtmp.so lib/librtmp.so.1 libdata/pkgconfig/librtmp.pc -man/man3/librtmp.3.gz +share/man/man3/librtmp.3.gz